-
Notifications
You must be signed in to change notification settings - Fork 170
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
Process for handling major and minor changes #634
Comments
What if we focus more on deprecation. Until major release we keep both names, if we talk about changing the name of the signal/branch and then with major release we remove old name. |
Deprecation works good for changes like:
Deprecation does not work (easily) for:
A typical example would be if we would like to change unit of A thought that came to my mind is if we could support multiple versions of a signal in the same vspec. Taking the hypothetical unit change for Vehicle.Speed. If we would allow a syntax like below it would be possible for us to support multiple VSS-versions from the same file. I.e. let the tooling support a VSS version parameter and use it to select which definition to use. Then of course, we would still need to decide what to release when we do a release. Taking the hypothetical example below, we maybe do not think the change in itself merits us releasing v5.0, so we could possibly before next AMM release v4.1 (using the old definition) and a v5.0a1 as a pre-release using the new definition (Alpha release, based on https://peps.python.org/pep-0440/). If a signal/branch has no
|
Changing datatype or unit, i would keep for the next version minor or major. While name change you can keep always two in parallel until you find it comfortable to deprecate from the system, basically it gives you a bit more freedom when it comes to implementation. Also your proposal with tagging is quite similar to what we do with version release on git. |
Based on the discussion on the VSS meeting earlier this week I would say that changing unit from The final result would be exactly as you say, if you download a VSS 4.X release it would be km/h, and for a VSS 5.X release m/s, but the question is how to handle it in the source *.vspec files. If it is OK that no VSS 4.1 is ever released we can just say that the next release will be VSS 5.0 release. That is more or less how we have done it in the past, when it is time for release we check if there are any backward incompatible changes or not. If not we do a minor release, if yes we do a major release. But if we need to work with VSS 4.X releases and VSS 5.0 release in parallel we need to have a way to separate changes in *.vspec files, either by different branches or by metadata. |
I would suggest the following:
|
I agree on the comments from Sebastian above, but we should possibly discuss branch-naming. As of today we typically create a branch |
Meeting discussion:
|
A suggestion on how to handle major/minor created at https://github.com/COVESA/vehicle_signal_specification/wiki/VSS-Version-Governance-(Major-Minor) Some things to discuss:
|
Meeting notes:
|
We need to agree on a process for how to handle major vs minor releases.
Background
Now and then we see a need to do backward incompatible changes, like changing name of a signal or changing semantic meaning. That should only happen in a major release, but we do not want to keep minor changes waiting until we plan for a major release. The solution would be to work with two branches, compared to today when we only use one.
But then we need to find a good practice for handling those branches.
The text was updated successfully, but these errors were encountered: