Skip to content
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

docs/dev-proc/versioning.md: versioning guidelines RFC #655

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

macpijan
Copy link
Contributor

No description provided.

* MINOR version
- release contains at least one new feature
* PATCH version
- release contains only fixes, not a single new feature
Copy link
Contributor

Choose a reason for hiding this comment

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

@macpijan I feel it partially clashes with semantic and DES versioning. In the case of DES, we increase patch version with multiple new features. I like above division, but how to align that with DES versioning, or how to change DES versioning to satisfy your needs and DES/Dasharo Community Release needs?

Copy link
Contributor

Choose a reason for hiding this comment

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

Patch version could be for both features and fixes. Some time ago my idea was to make minor version indicate backwards incompatibility resulting in flashing full image or BIOS region.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@pietrushnic

I feel it partially clashes with semantic

How it clashes with:

    MAJOR version when you make incompatible API changes
    MINOR version when you add functionality in a backward compatible manner
    PATCH version when you make backward compatible bug fixes

We link to semver and claim to use it, but never have.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Some time ago my idea was to make minor version indicate backwards incompatibility resulting in flashing full image or BIOS region.

It is also already in conflict with: https://docs.dasharo.com/dev-proc/versioning/#dasharo-community-releases

Copy link
Contributor

Choose a reason for hiding this comment

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

We link to semver and claim to use it, but never have.

The question is why?

We can have a discussion about interleaving assumptions about versioning, but IMHO, this is a waste of time because of reasons which were already discussed (not used semver, lack of compatibility with our other claims about versioning). The problem is proposing a versioning scheme that will work for all options. The above proposal does not consider previous assumptions. Even abandoning or modifying those cannot be accepted, IMHO.

Maybe something like this would address most of the problems? Please note that in relation to semver changing from using to adhering.

Dasharo Versioning Scheme

Dasharo adheres to Semantic Versioning and utilizes the Keep A Changelog framework to document the changes introduced in each new release.

The versioning structure is defined as follows:

  • MAJOR version (X.y.z)

    • Significant changes in the firmware update method.
    • Changes that require different flashing procedures compared to previous releases.
  • MINOR version (x.Y.z)

    • The introduction of at least one new feature.
    • Applicable to both Dasharo Entry Subscription Releases and Dasharo Community Releases.
  • PATCH version (x.y.Z)

    • Includes only fixes, with no new features introduced.
    • Primarily for Dasharo Entry Subscription Releases.

Initial Development Phase (0.y.z)

  • Reserved for initial development or the first release.
  • May not fulfill all Dasharo Quality Criteria.

Mapping Dasharo Versions

  • Dasharo versions correlate with the details mentioned in the release notes.
  • Find the release notes for your hardware platform under the respective section in the menu (Supported Hardware → Hardware Model → Releases).

Dasharo releases fall into two categories:

  1. Dasharo Entry Subscription Releases
  2. Dasharo Community Releases

Dasharo Entry Subscription Releases

Subscribers receive firmware updates more frequently compared to the community releases. The frequency of updates is contingent upon the number of subscriptions sold and other funding avenues. However, it guarantees no less than two updates per year.

  • Version Characteristic: Changing patch version (z).
  • Benefits: Early access to the latest features and fixes.
  • Subscription Details: Find out how to subscribe here.

Dasharo Community Releases

Community releases occur annually, incorporating all the features and fixes introduced in the Entry Subscription Releases over the year.

  • Version Characteristic: Zero patch version (x.y.0) with a changing minor version (y).
  • Update Notifications: Subscribe to the free mailing list for your hardware platform to stay updated. Find the link in the menu (Supported Hardware → Hardware Model → Releases).

Copy link
Contributor

Choose a reason for hiding this comment

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

Semantic Versioning: Strict semantic versioning does not include the "v" prefix in the version number.

Copy link
Contributor

Choose a reason for hiding this comment

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

Semantic Versioning: Strict semantic versioning does not include the "v" prefix in the version number.

Ohh I recall arguing about it, that we should not include v prefix

@@ -4,6 +4,17 @@ Dasharo Releases are versioned using [Semantic Versioning](https://semver.org/)
and [Keep A Changelog](https://keepachangelog.com/en/1.0.0/) to document
changes introduced in new releases.

We apply following guidelines for incrementing the Dasharo Release version:

* MAJOR version
Copy link
Contributor

Choose a reason for hiding this comment

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

I wanted to use the major version for Dasharo v2 (which would keep all board on a single branch).

Copy link
Contributor Author

@macpijan macpijan Sep 15, 2023

Choose a reason for hiding this comment

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

In that way we leave bumping MAJOR to our arbitrary decision when we fell it's time (e.g. some technical goals are met).
This is also fine for me, as long as we apply something like: https://github.com/Dasharo/docs/pull/655/files#r1326944982

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants