-
Notifications
You must be signed in to change notification settings - Fork 60
Conversation
added image for versioning-guideline doc
In the example, is the last release really meant to be release-0.2.0 rather than release-2.0.0? It is possible that release-0.2.0 could come after release-1.0.0 of course, but it is a confusing example as it implies that patch-1.0.1 and subsequent patches lead to release-0.2.0. |
@eric-murray : The order is descending. On top you have latest=main, then 1.0.0 then 0.8.0, 02.0 and so on. So 0.2.0 is shown as the oldest release here. I will however change the patch direction (which probably was the reason for confusion) |
@@ -0,0 +1,20 @@ | |||
# Camara versioning guidelines | |||
|
|||
* Every release includes a **CHANGELOG.md** file. Please make sure that the content is structured in a format that is easy to read. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be good to agree on a common location for this file, for example code/API_definitions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jlurien CHANGELOG.md is normally at the root of the repo alongside README.md
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, maybe instead of having a CHANGELOG.md for each realease is more convenient actually, to have a common file in main
branch included all cumulative changes of each release/version i.e. actually each new release con just change that file adding the corresponding changes. Specific changes for each release could be included in the release notes, you could even include a link to the detailed change log using the compare
github feature (you can compare your release against any previous tag/release).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jpengar CHANGELOG.md will be made available in every release branch. It's location is right beside the README file. In the main branch the changelog file could either be kept empty or can be used to give an overview as you have stated above of the releases.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And we may think about using the github concept of pre-release if the release is not production ready.
# Camara versioning guidelines | ||
|
||
* Every release includes a **CHANGELOG.md** file. Please make sure that the content is structured in a format that is easy to read. | ||
* Release should follow the convention **\<subprj-name> \<tag-name>** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is <subprj-name>
here? Maybe providing an example would help
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
* Release should follow the convention **\<subprj-name> \<tag-name>** | ||
* Changelog content: | ||
* APIs/Software in alpha release needs to be clearly specified | ||
* API changes |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We could propose a template, and give some guidelines about the expected level of detail, for example:
Changelog
X.Y.Z [ALPHA] - YYYY-MM-DD
Added
- New property
new_name
- New endpoint
new_name
- Examples
Changed
- Property
old_name
renamed tonew_name
- Format for property
property
changed tonew_format
Fixed
- Typos fixed
- Reference corrected
Removed
- Deprecated field
old_field
- Deprecated endpoint
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jlurien Much appreciated! I can add this as a separate md file and refer it in this doc
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
doc and link are now added
to address #123 (comment)
# Camara versioning guidelines | ||
|
||
* Every release includes a **CHANGELOG.md** file. Please make sure that the content is structured in a format that is easy to read. | ||
* Release should follow the convention **\<subprj-name> \<tag-name>** for e.g. qod v0.8.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
May be we could explicitly mention that we mean to use releases
feature of github and link to the correpsonding documentation (https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point. Done
@@ -0,0 +1,20 @@ | |||
# Camara versioning guidelines | |||
|
|||
* Every release includes a **CHANGELOG.md** file. Please make sure that the content is structured in a format that is easy to read. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And we may think about using the github concept of pre-release if the release is not production ready.
added link to changelog template
formatting changes
formatting
I would reserve the "pre-release" feature of Github to release candidates (e.g. 0.9.0-rc) to mark releases as not yet final, e.g. that there could be minor corrections before the final release. My reasoning:
BTW: my "poster child" for a living versioning strategy in an open-source project is the Kubernetes Gateway API project: https://github.com/kubernetes-sigs/gateway-api/blob/main/CHANGELOG.md |
After looking at some ongoing discussions in issue - camaraproject/QualityOnDemand#96 and this PR, I would like to add my 2-cents here :
|
This is very relevant. As a WG/API "family" may include several API.yaml files and each one of these files may have a different version or stage of maturity, in general, a subproject relelease version does not have to always be the API version. Regarding changelogs, we may have a changelog per API just to document changes at API.yaml spec, and a changelog at root level to document changes between subproject releases. I know other people prefer to have a single changelog, but I think it is important to keep a track of changes per API spec as well. If we decide to have a single changelog per subproject, there should be a dedicated section documenting changes per API spec, in the format of the template. This is specially relevant once we reach maturity, from 1.0 specs, At some point we may need to publish the API specs somewehere out of github, and it will be convenient to have an explicit changelog per API spec, not relying on the commit history in Github. |
@jlurien I surely agree that API changes should be part of changelog and this is already specified in the doc under section "Changelog content" |
Yes, we all agree that "API changes" must be part of the release changelog. But I also think that the format of this section "API changes" within the release changelog should follow the format proposed in the changelog_template, detailing the changes within the API yaml. If an API familiy has several API yaml files, there should be a subsection within "API changes" per API with the changes in that API yaml. Not sure if all of us agree on the later. For v0.x versions is not that important. |
@jlurien I have added an explicit note in the versioning doc. Feel free to update the template file with the format of your choice. |
It may be required to validate how this may affect or not to what was agreed in API Design Guidelines https://github.com/camaraproject/WorkingGroups/blob/main/Commonalities/documentation/API-design-guidelines.md#5-versioning. |
Added note that commonalities will not impose restrictions regarding tags/branches not relevant for subproject releases
@jlurien @eric-murray @jpengar @jordonezlucena @FabrizioMoggio |
LGTM. It would be great though (at least for me ) to have a walk-through review (or similar) of the guidelines, just for everyone to know the recommended way of working for the CAMARA API/s subprojects. That way we could apply the same WoW in all subprojects. I mean WoW in terms of how to handle the branches and tags needed to create the releases according to the guidelines described here. e.g. when to create the realease branch and tag; whether the realease branch should be developed in parallel to the main branch and only merge it into the main branch when that release is closed (so that the main branch has the latest stable release); or whether the main branch should always contain the latest status, even when a release is not closed, and then create the release branch from the main branch when the release is closed... If I've understood it properly you are proposing the second approach in this guidelines, but for example, so far I was using the first approach in HomeDevicesQoD subproject |
@jpengar I will plan for a walkthrough in the next call as a part of the agenda |
Fixes #118