Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

On 17 Sep 2020 the Hyperledger TSC voted to Allow projects to use CalVer or SemVer.  This proposal would be for Besu to switch to CalVer for the next quarterly release.  

General background on Calendar Versioning (CalVer) - https://calver.org/

CalVer taxonomy: YY.

...

M.patch

  • YY: Year (20, 21, 22, etc.)
  • MM: The month of the current “quarterly” release. NOT the current month. For example, if we release 20.10.0 in late October, then the next patch release will be 20.10.1, even if it is in NovemberM: Month (1, 2, 3, ..., 11, 12)
  • Patch: Fortnightly releases, or whenever nonsub-quarterly month releases happen Ideally, no breaking changes, like our current policy is.

...

  • YY.

...

  • M.patch: The year and month are from thecurrent month.

Breaking Changes Policy

  • No intentional backwards incompatible breaking changes should occur within a MM.YY release cyclewithout 3 months of prior notice via the deprecation policy.
    • Java Plugin APIs
    • CLI flags and configuration files
    • On-disk storage compatibility
    • JSON-RPC APIs
  • Patches may introduce forwards compatible changes, such as (but not limited to) new features, new fork or chain support, and new JSON-RPC apis.
  • A notice for an intentional breaking change should be in the CHANGELOG.md file for at least a full quarterly release cycle3 months
  • Examples of such changes:
    • Changing the required JDK.  (such as when we went form Java 8 17 to Java 1121).
    • Removing storage formats, or required migrations.
    • Dropping obsolete CLI flags, such as the whitelist series flags (replaced by the allowlist series)
  • This breaking change policy will not prohibit rapid release of security related updates.