You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

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.MM.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 November. 
  • Patch: Fortnightly releases, or whenever non-quarterly releases happen Ideally, no breaking changes, like our current policy is.

The YY.MM.0 release indicates a release that underwent harsher than normal QA processes and testing, and is also a release where users should be sure to check for breaking changes.

Breaking Changes Policy

  • No intentional backwards incompatible breaking changes should occur within a MM.YY release cycle
    • Java Plugin APIs
    • CLI flags
    • 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 cycle. 
  • Examples of such changes:
    • Changing the required JDK.  (such as when we went form Java 8 to Java 11).
    • Removing storage formats, or required migrations.
  • This breaking change policy will not prohibit rapid release of security related updates.
  • No labels