The CodeCharta version number is inspired by Semantic Versioning 2.0.0. The format is BREAKING.FEATURE.HOTFIX. We increment the
- BREAKING version when we make incompatible API changes
- FEATURE version when we add functionality in a backwards compatible manner
- HOTFIX version when we make backwards compatible bug fixes
But what is our API? For CodeCharta it is the .cc.json
and to a lesser degree the interface of the analysis.
We'll increment the BREAKING version only if our .cc.json
schema changes in a backwards-incompatible way. That means analysis version 1.x as well as visualization version 1.x will always work with a .cc.json
version 1.x. For example a file you generated in 2017 can still be compared or merged with a file from 2019 and you are able to do long-term delta compares. Please note that the .cc.json
has a FEATURE version separate from the analysis/visualization because we don't often add to its schema.
We consider the analysis to also be an API, but one that is less protected. Don't expect a new BREAKING version should we ever change the ccsh parameters or remove an importer. We think that is acceptable because you probably only need to change a couple of words in your script if we change the ccsh slightly. This method leaves us flexible to correct unclear interfaces but still present a single version to users for both CodeCharta parts.