Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a compatibility version #980

Closed
andrewkaufman opened this issue Sep 5, 2014 · 0 comments · Fixed by #983
Closed

Add a compatibility version #980

andrewkaufman opened this issue Sep 5, 2014 · 0 comments · Fixed by #983
Assignees

Comments

@andrewkaufman
Copy link
Contributor

This is so we can keep the major version 0, but increase another version when compatibility actually changes.

@andrewkaufman andrewkaufman added this to the Caribou in Production milestone Sep 5, 2014
johnhaddon added a commit to johnhaddon/gaffer that referenced this issue Sep 8, 2014
We always intended to use the semantic versioning scheme as defined at http://semver.org. However, in practice, we've kept the major version at 0 to indicate that we haven't yet fully locked down compatibility on anything, and we've compiled and installed all dependent tools separately for each and every version of Gaffer installed. We're releasing new versions of Gaffer sufficiently regularly that this is becoming too much of an overhead - particularly when combined with IE's "dev" version suffixes, which force a developer to have local installs of all dependent projects.

This commit marks major version 1, and we will now always increment the major version whenever introducing any backwards-incompatible change. As we may break compatibility fairly regularly, and often breaks due to refactoring don't actually provide significant functionality, standard semantic versioning would lead to version numbers which aren't particularly useful to the casual user - they would increment regularly but the user would see little change in practice. We've therefore adopted an additional version prefix - the "milestone" version. We'll bump this whenever Gaffer reaches significant milestones in terms of functionality and we wish to shout about it and otherwise draw attention to ourselves. The current version is 0.1.0.0, indicating that we don't have much to shout about yet.

It's critical going forwards that we correctly increment the right version numbers, and describe thoroughly the nature of incompatible changes in commit messages so that they can be collated into a suitable section of the subsequent release notes.

A new Version.h header file provides a GAFFER_COMPATIBILITY_VERSION macro, which combines GAFFER_MILESTONE_VERSION and GAFFER_MAJOR_VERSION into a single number suitable for use in conditional compilation.

At Image Engine we can now create a $GAFFER_COMPATIBILITY_VERSION environment variable (which would initially be 0.1), and use that for the installation of dependent tools, reducing the overhead in managing development builds.

Fixes GafferHQ#980.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants