Skip to content
This repository has been archived by the owner on Sep 2, 2024. It is now read-only.

Draft release guidelines doc #123

Merged
merged 20 commits into from
Mar 15, 2023
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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.
Copy link

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

Copy link
Contributor Author

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

Copy link
Contributor

@jpengar jpengar Jan 17, 2023

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).

Copy link
Contributor Author

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.

Copy link
Contributor

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.

* Release should follow the convention **\<subprj-name> \<tag-name>**
Copy link

@jlurien jlurien Jan 17, 2023

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

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

* Changelog content:
* APIs/Software in alpha release needs to be clearly specified
* API changes
Copy link

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 to new_name
  • Format for property property changed to new_format

Fixed

  • Typos fixed
  • Reference corrected

Removed

  • Deprecated field old_field
  • Deprecated endpoint

Copy link
Contributor Author

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

Copy link
Contributor Author

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

* New features
* Fixes
* Deprecation (if any)
* Release branches should have naming convention **release-x.y.z**
* Tags should follow the naming conventions <strong>vx.y.z</strong> for versions
* Adding relevant annotations to tags will be useful for later reference.
* Bugfix branches can follow, naming as **patch-x.y.z**
* Provider implementation repos can have their own naming conventions with regard to branches, tags etc. It is however mandatory to provide as a part of the  CHANGELOG.md - the API release version, capabilities and changes that are a part of the respective provider implementation release.
* Main branch is assumed to be the latest.
* Camara subproject will have frequent updates to the main branch. There are no compatibility guarantees associated with code in any branch, including main, until it has been released. For example, changes may be reverted before a release is published. For the best results, use the latest published release of any given subproject within Camara.

<img src="../images/versioning-pic.png" alt="Ver"
title="Versioning Sample"/>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.