Savant Build Tool: Dependency Management

Brian Pontarelli

When we first started writing Savant, we realized that the first requirement was a dependency management system. This is necessary for nearly every feature in a good build tool. We wanted Savant plugins to be resolved as dependencies and to be loaded into separate classloaders along with their dependencies. We also knew that the Java compiler plugin would need the project’s dependencies for the compiler classpath and the TestNG plugin would need the dependencies to run the tests.

Savant Dependency Management BlocksFor years we had been using a strict versioning system that broke versions into 4 different groups:

  • Major
  • Minor
  • Patch
  • Pre-release

This versioning is expressed as <major>.<minor>.<patch>-<pre-release>

We found that the Semantic Versioning (SemVer) specification was nearly identical to our versioning methodology. Rather than continue to use our own system, we fully embraced SemVer. The problem was that no other dependency management system implemented SemVer.

Continue reading

Tags:
Savant

Savant Build Tool: Dependencies & Build Targets

Brian Pontarelli

Savant Build Files: Define Dependencies & Build Targets

In this post we'll cover Savant build files and how to define your dependencies and build targets. First, let's set up a simple build file for a new project called HelloWorld. Here is how we define this project and its version:

project(group: "org.inversoft.savant.example", name: "HelloWorld", version: "1.0", licenses: ["ApacheV2_0"]) {
}

To define a project you need a group, name, version and a license. You can ignore the licenses definition for now, we'll cover that in a future post. The group name is usually a reverse DNS name (notice that the org is first not last) that identifies the owners of the project. The name is the project's formal name and the version is the project’s Semantic Version.

Next we can define the other libraries and frameworks that our project depends on. We place the dependencies inside the project definition and break them into groups. It looks like this:

project(group: "org.inversoft.savant.example", name: "HelloWorld", version: "1.0", licenses: ["ApacheV2_0"]) {
  dependencies {
    group(name: "compile") {
      dependency(id: "org.apache.commons:commons-collections:3.1")
    }
    group(name: "test-compile") {
      dependency(id: "org.testng:testng:6.8.7")
    }
  }
}

These dependency directives tell Savant that in order to compile our source code Savant needs to include Commons Collections version 3.1. Likewise, in order to compile our test source code, Savant will need to include TestNG version 6.8.7.

Continue reading

Tags:
Savant

Inversoft Announces the Launch of Savant

Brian Pontarelli

Savant Build ToolInversoft Launches Savant Build Tool

The Inversoft dev team is excited to announce the first preview release of the Savant build tool. Savant is written in Java and uses a Groovy DSL for the build files providing the power of the Groovy programming language for your builds.

We have been working to define the concepts of our ideal build tool for nearly a decade. By using a wide variety of other build tools including Ant, Maven, and Gradle, we have learned that dependency management, versioning and compatibility are some of the most complex problems in building software, and all of the existing build tools don’t solve these problems well. We realized that the build tool should be handling all of these concepts in the most complete way possible. To solve these problems, we adopted the Semantic Versioning standard and built Savant as a complete implementation of it.

 

Continue reading

Tags:
Savant

Inversoft CEO Nominated for APEX Awards Entrepreneur of the Year

Mike King

Brian Pontarelli APEX Awards Entrepreneur of the YearBrian Pontarelli is a moneymaker. That’s why he is an outstanding businessman and why he was nominated for the APEX Entrepreneur of the Year award. In a time when many entrepreneurs come up with an idea, secure funding and then build a product hoping to create a market, Brian flipped the script. He built a product the market needs, secured paying customers and built a cash-flow-positive business to lay the foundation for future product development and consistent growth.

A solution to a problem

Brian built the software called CleanSpeak to solve the problem of offensive and unwanted user-generated content on the Internet and then founded his company, Inversoft. This enterprise software is an intelligent filtering and moderation solution used by brands like Disney, Activision and E-Trade to protect their users online from profanity, bullying and other offensive behavior. CleanSpeak is an on-premise solution that works consistently providing the ultimate in security, performance and customizability.

Tweet this : Who needs funding? Bootstrap baby. Inversoft CEO, Brian Pontarelli Nominated ...

Continue reading

Tags:

Importance of Win Loss Analysis by Mike King

Mike King

A company should evaluate how it is performing in key areas of their business – whether business is bad or even if it’s good.  We recently asked some clients and prospects – people who chose CleanSpeak and people who haven’t yet – what they think about Inversoft, our product and our customer service approach.

Win Loss Analysis

This kind of inquiry can be uncomfortable to make, but the feedback helped us understand our customers better, which led us to make further improvements to our technology and our service.

What's to be learned

What we learned about the opportunities we lost was revealing in some very positive ways.  We discovered there were some companies who simply couldn’t incur the cost of a premium enterprise technology.  In some cases, they

chose not to implement filtering and moderation technology, while others opted to build a very simple solution internally.  The best part is that there was only one lost opportunity that selected a competitor over us.  In this case, they wanted the comfort of a vendor located in the same time zone.  By contrast, the companies that recently switched to Inversoft’s CleanSpeak solution from our competitors came for reasons they consider critical to their business.

The companies that chose Inversoft did so because they wanted a solution that was reliable, had a comprehensive set of useful tools, and was as quick and easy to implement as enterprise software can be.  Some of the newly converted customers told us the integration process with competing technologies was so painful that they never got the value they sought from the other offerings.  The clients indicated that integration of the competitive solutions took many months to install and configure while the process of integrating with CleanSpeak only took a couple weeks in total.

Continue reading

Tags: