Skip to content

Versioning and releases

Finn Lewis edited this page Nov 11, 2021 · 1 revision

Following the new Drupal version release policy LocalGov Drupal uses Semantic Versioning.

{major}.{minor}.{patch}

  • {major} => Full release with potentially breaking changes
  • {minor} => New features with non-breaking changes
  • {patch} => Bug fix

How a release is made

Practically speaking, all releases are made by:

  1. making a documented Merge Request from the main development branch (1.x, 2.x...) into the relevant release branch
  2. receiving approval from at least one other contributor from another organisation
  3. merging the approved changes to the release branch
  4. tagging the release branch with the new release tag

Release branch naming

We name release branches in line with the main branch to which they pertain.

  • For a 1.x branch, the release branch will be called release-1.x
  • For a 2.x branch, the release branch will be called release-2.x

Communications around a release

Some releases will involve the discussion with the Product Group as well as the Technical Group. Major releases will defintely require discusison between the Product Group and Techincal Group to co-ordinate and notify as many stakeholders as possible. Minor releases may or may not require discussion with the Product Group.

Project and module versions

Each project or module maintains its own version number, including major and minor, independently of each other and independently of the installation profile as appropriate, depending on changes made to that project.

When code is accepted into the profile, and so used in production, even when still in 'beta' or development, straight Semantic Versioning will be used without pre-release identifiers, so production sites can manage their updates using composer correctly.

See also https://github.com/localgovdrupal/localgov/wiki/Testing-branches-and-PRs

Drupal 8 and Drupal 9 releases

The localgov_project and localgov_profile projects have two main branches:

  • 1.x branch that continues to support Drupal 8
  • 2.x branch that support Drupal 9

There is now a 2.0.0 release at https://github.com/localgovdrupal/localgov/releases/tag/2.0.0 and https://github.com/localgovdrupal/localgov_project/releases/tag/2.0.0. Running the composer install will default to Drupal 9.

Some projects will support both Drupal 8 and Drupal 9 on their main 1.x branch. For example https://github.com/localgovdrupal/localgov_alert_banner

Other projects required different dependencies and patches to support Drupal 9, and have a 2.x branch that supports Drupal 9 and a 1.x branch that supports Drupal 8. For example https://github.com/localgovdrupal/localgov_events/tree/2.x for Drupal 9 and https://github.com/localgovdrupal/localgov_events/tree/1.x for Drupal 8.