-
Notifications
You must be signed in to change notification settings - Fork 7
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
Use “Semantic Versioning" scheme for the format's metadata versions? #1
Comments
If acceptable then suggest change current value for
|
Well this is something we have discussed a few times with @puddly. While it would be nice to use semantic versioning (my idea previously as well) keeping the version number a single integer makes it easier to track and perform format migrations. In my opinion it's easier to track changes for low-level formats using simple numeric versioning. This way when there is a change/removal or addition to the format structure we can easily write one-by-one incremental version migrations which can be easily applied together. Eg Let's keep this open for a discussion. @puddly your thoughts? |
Then one DB or file format is not very likely being changes so frequently its more then OK have single numbers as version. |
My thought was only that Semantic Versioning scheme like X.Y.Z (Major.Minor.Patch) would make it more future proof for later use. I guess you could use a Semantic Versioning scheme like X.Y.Z (Major.Minor.Patch) and choose to only ever change the "Z" (Patch)? |
Then its the opposite then its not "patches" for one DB or file formats so only major is being used so back to point one. |
But that is exactly against semantic versioning. We would have to increase
|
@Hedda Its like the EZSP version 8 is not backward compatible with EZSP version 7 and earlier. |
All semantics in the end, as long as it does not break the applications from working without updates the devs could say it is a patch. Apploguise for bikeshedding this. It is not really important to implement any other version scheme until multiple applications use it. |
Even the Semver spec itself never set a minor or patch number, it just jumped from 1.0.0 to 2.0.0 😄 I believe the main purpose of Semver is to simplify package manager constraints (e.g. This was my original idea, to simplify parsing by the application: "version": [0, 1] We could also do: "version": {
"major": 0,
"minor": 1
} The addition of new keys can also be handled implicitly by just asking an application to ignore unknown keys and rely only on the major version, as we have it now. |
Okay, so maybe we should go for the middle ground. I suggest {
"version": [1, 0]
} But we need to declare strict rules on how and when the version changes, eg.:
Like for agreement 🙃 |
IMHO like that later idea as a more human-readable format |
or we could keep it simple, just as a version number and having a policy for the app to support current_version - 2 backward compatibility. After all it is not an app to warrant a sem. versioning. |
Suggest format use the latest “Semantic Versioning" scheme for versions from the very beginning, and if so maybe start with 0.0.1?
Please consider https://semver.org version format of X.Y.Z (Major.Minor.Patch) for metadata versions, or for application compatibity:
X = X indicate a change in the public API that introduce backward incompatibility.
Y = Y indicate an addition of some features or functions
Z = X indicate a fix (either fixing bug or build, either changing internal structure without impacting functionnality)
Summary
Given a version number MAJOR.MINOR.PATCH, increment the:
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.
The text was updated successfully, but these errors were encountered: