We recently finished an RFP submission with a question that asked:
Describe your version numbering system, and how well your product keeps to it
I thought the answer might be useful to all customers.
Our version numbering system
The Ajilius release number is comprised of three elements – major version, minor version, and point version. For example, in version 3.2.1, the major version is 3, the minor version is 2, and the point version is 1. But what do the various types of version mean?
A major version represents an architectural change. For example, Python to Java was a major version. the CTAS engine was a major version.
A minor version represents a metadata change, or a module-level change. Metadata changes are where we alter the structure of the metadata repositories used by Ajilius. Module changes are where we introduce major blocks of functionality. Incremental deployments were a minor version, SSAS integration was a major version.
Point versions are where we make relatively minor changes to the application code. These may be error corrections, or enhancements that build on existing functions or metadata.
How well do we keep it?
When I look back over the Mercurial logs for Ajilius, I’d have to say that we’ve only been 60-70% compliant in our numbering scheme. We’re always correct with Major versions, always correct with minor versions, but we’ve often let small metadata changes slip through in point versions.
From now on, though, we’re going to be 100% compliant with this structure.
Why bother? Simpler upgrades.
Better adherence to our release structure will help us to simplify our upgrades. We’ll make it faster and easier for you to download and apply new code.
- We’ll always offer a full installer. This will create a completely new installation.
- We’ll always offer an upgrade installer. This will upgrade any earlier release to the current release, including metadata structure changes and library dependency updates.
- Now, we’re going to simplify point releases, as just the Ajilius executable program. Point releases will comprise only ajilius.jar program, currently around 400k in size. This will be faster to download, and more simple to copy to the Ajilius folder.
So when you get release 3.3.2 later this week, you’ll know that it is a code-only change to Release 3.3, and makes no changes to metadata or libraries.
Ajilius. The best development cycle in data warehouse automation.