From 93fe0c9a4524d378196d49bc5b07ff6e3dcaa3d5 Mon Sep 17 00:00:00 2001 From: jrgriffiniii Date: Wed, 11 May 2022 13:51:32 -0400 Subject: [PATCH 1/4] Adding a section defining common GitHub issue labels for components --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index 3b0cc3a..6780312 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,22 @@ Currently, there are eighteen Samvera Core Components maintained by the communit | [samvera-circleci-orb](https://github.com/samvera/samvera-circleci-orb) | [![Build Status](https://circleci.com/gh/samvera/samvera-circleci-orb.svg?style=svg)](https://circleci.com/gh/samvera/samvera-circleci-orb) | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | | [valkyrie](https://github.com/samvera/valkyrie) | [![Build Status](https://circleci.com/gh/samvera/valkyrie.svg?style=svg)](https://circleci.com/gh/samvera/valkyrie) | | | 2.7.5 | 2.6.5 | | | 6.0.5 | 5.2.8 | +## Samvera Component Repository Labels + +The following common set of standard GitHub issue labels are available for each repository, and their usage is encouraged please: + +| Label | Description | +| ----- | ----------- | +| a11y | Compliance with accessibility (a11y) standards | +| bug | Unexpected feature behavior or software error | +| ci | Continuous integration | +| code-coverage | Coverage of the code base using unit, integration, or automated acceptance test suites | +| documentation | Documentation in the form of GitHub Markdown, GitHub Wiki, or code comments (e. g. rdoc or Yard) | +| enhancement | Feature improvement or a new feature | +| maintenance | A task or action delegated to the Component Interest Group | +| question | A discussion regarding any aspect of the code base (including documentation or continuous integration) | +| security | An update addressing a known vulnerability in the code base (or in a dependency) | + ## Samvera Component Templates [README.md](./templates/README.md) - The elements in this template should be in From 1768c9190c986fc1a84882d6fd37ce84e2a23e7e Mon Sep 17 00:00:00 2001 From: jrgriffiniii Date: Thu, 12 May 2022 16:44:44 -0400 Subject: [PATCH 2/4] Updating the documentation with updated guidelines for promoting core components --- README.md | 63 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 27 deletions(-) diff --git a/README.md b/README.md index 6780312..23bce9c 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,41 @@ Currently, there are eighteen Samvera Core Components maintained by the communit | [samvera-circleci-orb](https://github.com/samvera/samvera-circleci-orb) | [![Build Status](https://circleci.com/gh/samvera/samvera-circleci-orb.svg?style=svg)](https://circleci.com/gh/samvera/samvera-circleci-orb) | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | | [valkyrie](https://github.com/samvera/valkyrie) | [![Build Status](https://circleci.com/gh/samvera/valkyrie.svg?style=svg)](https://circleci.com/gh/samvera/valkyrie) | | | 2.7.5 | 2.6.5 | | | 6.0.5 | 5.2.8 | +## Promoting Samvera Projects to Core Components + +In order for Samvera GitHub repositories to become components, a process of promotion is in place. Prior to being considered for promotion, the repository must first be migrated to [Samvera Labs](https://github.com/samvera-labs). Alternatively, one may also create an entirely new project within Samvera Labs (there are no restrictions for creating GitHub repositories within this organization). + +The established requirements for promoting a project to a core component are the following: + +### Code Quality Requirements +- Good software test coverage measured using a tool such as [simplecov for Ruby](https://github.com/simplecov-ruby/simplecov) or [Jest for JavaScript](https://jestjs.io/docs/configuration#collectcoverage-boolean) (e.g. 100% or 75% of what’s important) +- Employs a source code linting tool such as [bixby](https://github.com/samvera/bixby) or [prettier](https://github.com/prettier/prettier) in order to enforce style guidelines within the source code base +- Uses continuous integration to automate the execution of test suites (Preferably CircleCI, unless there is a compelling reason to do something else) +- Demonstrates compatibility with the latest releases of Ruby (and, where appropriate, Rails and JavaScript) +- Code must features releases using RubyGems or the NPM, and offer a release version >= 1.0.0 +- Code releases must follow the [Semantic Versioning specification](https://semver.org/) standards + +### Documentation Requirements + +Currently, the documentation files for each core component are derived from templates tracked within this repository: + +- [README.md](./templates/README.md) - The elements in this template should be in every repository. Additional elements may be added. +- [SUPPORT.md](./templates/SUPPORT.md) - Copy this and replace `{{library}}` with the repository name. This is linked from the README and has information on how to create an issue, email the list, and connect to Slack. +- [CONTRIBUTING.md](./templates/CONTRIBUTING.md) - Contribution guidelines for Samvera projects. Should be included. Minimal customization should be necessary. +- [CODE_OF_CONDUCT.md](./templates/CODE_OF_CONDUCT.md) - Should be included verbatim in every Samvera repository. If this is updated, it needs to be distributed to all Samvera organization repositories. +- [LICENSE](./templates/LICENSE) - Should be included in every Samvera repository. The copyright statements may change as appropriate. This template was taken from guidelines found on the [wiki](https://wiki.duraspace.org/display/samvera/Code+Copyright+Statement). +- [MAILMAP](./templates/MAILMAP) - A master template for [git mailmap](https://www.git-scm.com/docs/git-check-mailmap). This template is something to push to all samvera repositories. The goal in applying a common mailmap is to help understand contributions as people move and change roles/functions/laptops. + +### Community Use Requirements + +- Community use by three or more Samvera institutions or organizations +- In active use for six months +- Offers an ongoing maintenance roadmap + +### Proposing a Project to the Community for Promotion + +As needed or requested, code repositories are reviewed for promotion. To start this process, email [the Samvera Tech Google Group](https://groups.google.com/g/samvera-tech) with a request. Provide documentation that all of the above requirements have been met. Ask for a spot on the next developer’s call to discuss the issue. Once the promotion has been decided, another email should go out to the list with an announcement. + ## Samvera Component Repository Labels The following common set of standard GitHub issue labels are available for each repository, and their usage is encouraged please: @@ -49,33 +84,7 @@ The following common set of standard GitHub issue labels are available for each | question | A discussion regarding any aspect of the code base (including documentation or continuous integration) | | security | An update addressing a known vulnerability in the code base (or in a dependency) | -## Samvera Component Templates - -[README.md](./templates/README.md) - The elements in this template should be in -every repository. Additional elements may be added. - -[SUPPORT.md](./templates/SUPPORT.md) - Copy this and replace `{{library}}` with -the repository name. This is linked from the README and has information on how -to create an issue, email the list, and connect to Slack. - -[CONTRIBUTING.md](./templates/CONTRIBUTING.md) - Contribution guidelines for -Samvera projects. Should be included. Minimal customization should be necessary. - -[CODE_OF_CONDUCT.md](./templates/CODE_OF_CONDUCT.md) - Should be included -verbatim in every Samvera repository. If this is updated, it needs to be -distributed to all Samvera organization repositories. - -[LICENSE](./templates/LICENSE) - Should be included in every Samvera -repository. The copyright statements may change as appropriate. This template -was taken from guidelines found on the -[wiki](https://wiki.duraspace.org/display/samvera/Code+Copyright+Statement). - -[MAILMAP](./templates/MAILMAP) - A master template for [git mailmap](https://www.git-scm.com/docs/git-check-mailmap). -This template is something to push to all samvera repositories. The goal in -applying a common mailmap is to help understand contributions as people move -and change roles/functions/laptops. - -## Ruby Scripts +## Core Component Utilities in Ruby There exist Ruby scripts in this repository that can be used to propagate some of these templates: From 297cf8f9241b9a5fbb32f331b416b926171ce89e Mon Sep 17 00:00:00 2001 From: jrgriffiniii Date: Tue, 17 May 2022 09:39:37 -0400 Subject: [PATCH 3/4] Adding version release badges to the core component table --- README.md | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 23bce9c..d1cbc6d 100644 --- a/README.md +++ b/README.md @@ -12,26 +12,26 @@ _Please reference [A Guide for the Samvera Community](https://samvera.github.io/ Currently, there are eighteen Samvera Core Components maintained by the community: -| Component | CircleCI Status | Ruby 3.1 Support | Ruby 3.0 Support | Ruby 2.7 Support | Ruby 2.6 Support | Rails 7.0 Support | Rails 6.1 Support | Rails 6.0 Support | Rails 5.2 Support | -| --------- | ---------------- | ---------------- | ---------------- | ---------------- | ----------------- | ---------------- | ---------------- | ---------------- | --------------- | -| [active_fedora](https://github.com/samvera/active_fedora) | [![Build Status](https://circleci.com/gh/samvera/active_fedora.svg?style=svg)](https://circleci.com/gh/samvera/active_fedora) | | | 2.7.0 | 2.6.5 | | | 6.0.2 | 5.2.4 | -| [bixby](https://github.com/samvera/bixby) | [![Build Status](https://circleci.com/gh/samvera/bixby.svg?style=svg)](https://circleci.com/gh/samvera/bixby) | 3.1.1 | 3.0.3 | 2.7.5 | 2.6.9 | N/A | N/A | N/A | N/A | -| [browse-everything](https://github.com/samvera/browse-everything) | [![Build Status](https://circleci.com/gh/samvera/browse-everything.svg?style=svg)](https://circleci.com/gh/samvera/browse-everything) | | | 2.7.5 | 2.6.9 | | | 6.0.4.7 | 5.2.4 | -| [hydra-derivatives](https://github.com/samvera/hydra-derivatives) | [![Build Status](https://circleci.com/gh/samvera/hydra-derivatives.svg?style=svg)](https://circleci.com/gh/samvera/hydra-derivatives) | | | 2.7.5 | 2.6.9 | N/A | N/A | N/A | N/A | -| [hydra-editor](https://github.com/samvera/hydra-editor) | [![Build Status](https://circleci.com/gh/samvera/hydra-editor.svg?style=svg)](https://circleci.com/gh/samvera/hydra-editor) | | | 2.7.5 | 2.6.9 | | | 6.0.3.4 | 5.2.3 | -| [hydra-file_characterization](https://github.com/samvera/hydra-file_characterization) | [![Build Status](https://circleci.com/gh/samvera/hydra-file_characterization.svg?style=svg)](https://circleci.com/gh/samvera/hydra-file_characterization) | | 3.0.3 | 2.7.5 | 2.6.9 | 7.0.2.3 | 6.1.5 | 6.0.4.7 | 5.2.7 | -| [hydra-head](https://github.com/samvera/hydra-head) | [![Build Status](https://circleci.com/gh/samvera/hydra-head.svg?style=svg)](https://circleci.com/gh/samvera/hydra-head) | | | 2.7.3 | 2.6.7 | | | 6.0.3.7 | 5.2.6 | -| [hydra-pcdm](https://github.com/samvera/hydra-pcdm) | [![Build Status](https://circleci.com/gh/samvera/hydra-pcdm.svg?style=svg)](https://circleci.com/gh/samvera/hydra-pcdm) | | | 2.7.5 | 2.6.9 | | | 6.0.2 | 5.2.4 | -| [hydra-role-management](https://github.com/samvera/hydra-role-management) | [![Build Status](https://circleci.com/gh/samvera/hydra-role-management.svg?style=svg)](https://circleci.com/gh/samvera/hydra-role-management) | | | 2.7.5 | 2.6.9 | | | 6.0.2 | 5.2.4 | -| [hydra-works](https://github.com/samvera/hydra-works) | [![Build Status](https://circleci.com/gh/samvera/hydra-works.svg?style=svg)](https://circleci.com/gh/samvera/hydra-works)| | | 2.7.5 | 2.6.9 | | | 6.0.3.1 | 5.2.4.3 | [![Build Status](https://circleci.com/gh/samvera/hydra-works.svg?style=svg)](https://circleci.com/gh/samvera/hydra-works) | -| [iiif_manifest](https://github.com/samvera/iiif_manifest) | [![Build Status](https://circleci.com/gh/samvera/iiif_manifest.svg?style=svg)](https://circleci.com/gh/samvera/iiif_manifest) | | 3.0.3 | 2.7.5 | 2.6.9 | N/A | N/A | N/A | N/A | -| [ldp](https://github.com/samvera/ldp) | [![Build Status](https://circleci.com/gh/samvera/ldp.svg?style=svg)](https://circleci.com/gh/samvera/ldp) | | | 2.7.5 | 2.6.9 | | | 6.0.4.4 | 5.2.0 | -| [noid-rails](https://github.com/samvera/noid-rails) | [![Build Status](https://circleci.com/gh/samvera/noid-rails.svg?style=svg)](https://circleci.com/gh/samvera/noid-rails) | | | 2.7.5 | 2.6.9 | | 6.1.3.2 | 6.0.3.2 | 5.2.4.3 | -| [questioning_authority](https://github.com/samvera/questioning_authority) | [![Build Status](https://circleci.com/gh/samvera/questioning_authority.svg?style=svg)](https://circleci.com/gh/samvera/questioning_authority) | | | 2.7.5 | 2.6.9 | | 6.1.1 | 6.0.2 | 5.2.4 | -| [rubydora](https://github.com/samvera/rubydora) | [![Build Status](https://circleci.com/gh/samvera/rubydora.svg?style=svg)](https://circleci.com/gh/samvera/rubydora) | | | 2.7.5 | 2.6.9 | | | 6.0.2 | 5.2.4 | -| [samvera.github.io](https://github.com/samvera/samvera.github.io) | [![Build Status](https://circleci.com/gh/samvera/samvera.github.io.svg?style=svg)](https://circleci.com/gh/samvera/samvera.github.io) | 3.1.1 | 3.0.3 | 2.7.5 | 2.6.9 | N/A | N/A | N/A | N/A | -| [samvera-circleci-orb](https://github.com/samvera/samvera-circleci-orb) | [![Build Status](https://circleci.com/gh/samvera/samvera-circleci-orb.svg?style=svg)](https://circleci.com/gh/samvera/samvera-circleci-orb) | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | -| [valkyrie](https://github.com/samvera/valkyrie) | [![Build Status](https://circleci.com/gh/samvera/valkyrie.svg?style=svg)](https://circleci.com/gh/samvera/valkyrie) | | | 2.7.5 | 2.6.5 | | | 6.0.5 | 5.2.8 | +| Component | Latest Release | CircleCI Status | Ruby 3.1 Support | Ruby 3.0 Support | Ruby 2.7 Support | Ruby 2.6 Support | Rails 7.0 Support | Rails 6.1 Support | Rails 6.0 Support | Rails 5.2 Support | +| --------- | -------------- |---------------- | ---------------- | ---------------- | ---------------- | ----------------- | ---------------- | ---------------- | ---------------- | --------------- | +| [active_fedora](https://github.com/samvera/active_fedora) | [![Version](https://img.shields.io/gem/v/active-fedora)](https://rubygems.org/gems/active-fedora) | [![Build Status](https://circleci.com/gh/samvera/active_fedora.svg?style=svg)](https://circleci.com/gh/samvera/active_fedora) | | | 2.7.0 | 2.6.5 | | | 6.0.2 | 5.2.4 | +| [bixby](https://github.com/samvera/bixby) | [![Version](https://img.shields.io/gem/v/bixby)](https://rubygems.org/gems/bixby) | [![Build Status](https://circleci.com/gh/samvera/bixby.svg?style=svg)](https://circleci.com/gh/samvera/bixby) | 3.1.1 | 3.0.3 | 2.7.5 | 2.6.9 | N/A | N/A | N/A | N/A | +| [browse-everything](https://github.com/samvera/browse-everything) | [![Version](https://img.shields.io/gem/v/browse-everything)](https://rubygems.org/gems/browse-everything) | [![Build Status](https://circleci.com/gh/samvera/browse-everything.svg?style=svg)](https://circleci.com/gh/samvera/browse-everything) | | | 2.7.5 | 2.6.9 | | | 6.0.4.7 | 5.2.4 | +| [hydra-derivatives](https://github.com/samvera/hydra-derivatives) | [![Version](https://img.shields.io/gem/v/hydra-derivatives)](https://rubygems.org/gems/hydra-derivatives) | [![Build Status](https://circleci.com/gh/samvera/hydra-derivatives.svg?style=svg)](https://circleci.com/gh/samvera/hydra-derivatives) | | | 2.7.5 | 2.6.9 | N/A | N/A | N/A | N/A | +| [hydra-editor](https://github.com/samvera/hydra-editor) | [![Version](https://img.shields.io/gem/v/hydra-editor)](https://rubygems.org/gems/hydra-editor) | [![Build Status](https://circleci.com/gh/samvera/hydra-editor.svg?style=svg)](https://circleci.com/gh/samvera/hydra-editor) | | | 2.7.5 | 2.6.9 | | | 6.0.3.4 | 5.2.3 | +| [hydra-file_characterization](https://github.com/samvera/hydra-file_characterization) | [![Version](https://img.shields.io/gem/v/hydra-file_characterization)](https://rubygems.org/gems/hydra-file_characterization) | [![Build Status](https://circleci.com/gh/samvera/hydra-file_characterization.svg?style=svg)](https://circleci.com/gh/samvera/hydra-file_characterization) | | 3.0.3 | 2.7.5 | 2.6.9 | 7.0.2.3 | 6.1.5 | 6.0.4.7 | 5.2.7 | +| [hydra-head](https://github.com/samvera/hydra-head) | [![Version](https://img.shields.io/gem/v/hydra-head)](https://rubygems.org/gems/hydra-head) | [![Build Status](https://circleci.com/gh/samvera/hydra-head.svg?style=svg)](https://circleci.com/gh/samvera/hydra-head) | | | 2.7.3 | 2.6.7 | | | 6.0.3.7 | 5.2.6 | +| [hydra-pcdm](https://github.com/samvera/hydra-pcdm) | [![Version](https://img.shields.io/gem/v/hydra-pcdm)](https://rubygems.org/gems/hydra-pcdm) | [![Build Status](https://circleci.com/gh/samvera/hydra-pcdm.svg?style=svg)](https://circleci.com/gh/samvera/hydra-pcdm) | | | 2.7.5 | 2.6.9 | | | 6.0.2 | 5.2.4 | +| [hydra-role-management](https://github.com/samvera/hydra-role-management) |[![Version](https://img.shields.io/gem/v/hydra-role-management)](https://rubygems.org/gems/hydra-role-management) | [![Build Status](https://circleci.com/gh/samvera/hydra-role-management.svg?style=svg)](https://circleci.com/gh/samvera/hydra-role-management) | | | 2.7.5 | 2.6.9 | | | 6.0.2 | 5.2.4 | +| [hydra-works](https://github.com/samvera/hydra-works) | [![Version](https://img.shields.io/gem/v/hydra-works)](https://rubygems.org/gems/hydra-works) | [![Build Status](https://circleci.com/gh/samvera/hydra-works.svg?style=svg)](https://circleci.com/gh/samvera/hydra-works)| | | 2.7.5 | 2.6.9 | | | 6.0.3.1 | 5.2.4.3 | [![Build Status](https://circleci.com/gh/samvera/hydra-works.svg?style=svg)](https://circleci.com/gh/samvera/hydra-works) | +| [iiif_manifest](https://github.com/samvera/iiif_manifest) | [![Version](https://img.shields.io/gem/v/iiif_manifest)](https://rubygems.org/gems/iiif_manifest) | [![Build Status](https://circleci.com/gh/samvera/iiif_manifest.svg?style=svg)](https://circleci.com/gh/samvera/iiif_manifest) | | 3.0.3 | 2.7.5 | 2.6.9 | N/A | N/A | N/A | N/A | +| [ldp](https://github.com/samvera/ldp) | [![Version](https://img.shields.io/gem/v/ldp)](https://rubygems.org/gems/ldp) | [![Build Status](https://circleci.com/gh/samvera/ldp.svg?style=svg)](https://circleci.com/gh/samvera/ldp) | | | 2.7.5 | 2.6.9 | | | 6.0.4.4 | 5.2.0 | +| [noid-rails](https://github.com/samvera/noid-rails) | [![Version](https://img.shields.io/gem/v/noid-rails)](https://rubygems.org/gems/noid-rails) | [![Build Status](https://circleci.com/gh/samvera/noid-rails.svg?style=svg)](https://circleci.com/gh/samvera/noid-rails) | | | 2.7.5 | 2.6.9 | | 6.1.3.2 | 6.0.3.2 | 5.2.4.3 | +| [questioning_authority](https://github.com/samvera/questioning_authority) | [![Version](https://img.shields.io/gem/v/questioning_authority)](https://rubygems.org/gems/questioning_authority) | [![Build Status](https://circleci.com/gh/samvera/questioning_authority.svg?style=svg)](https://circleci.com/gh/samvera/questioning_authority) | | | 2.7.5 | 2.6.9 | | 6.1.1 | 6.0.2 | 5.2.4 | +| [rubydora](https://github.com/samvera/rubydora) | [![Version](https://img.shields.io/gem/v/rubydora)](https://rubygems.org/gems/rubydora) | [![Build Status](https://circleci.com/gh/samvera/rubydora.svg?style=svg)](https://circleci.com/gh/samvera/rubydora) | | | 2.7.5 | 2.6.9 | | | 6.0.2 | 5.2.4 | +| [samvera.github.io](https://github.com/samvera/samvera.github.io) | N/A | [![Build Status](https://circleci.com/gh/samvera/samvera.github.io.svg?style=svg)](https://circleci.com/gh/samvera/samvera.github.io) | 3.1.1 | 3.0.3 | 2.7.5 | 2.6.9 | N/A | N/A | N/A | N/A | +| [samvera-circleci-orb](https://github.com/samvera/samvera-circleci-orb) | [![Version](https://badges.circleci.com/orbs/samvera/circleci-orb.svg)](https://circleci.com/developer/orbs/orb/samvera/circleci-orb) | [![Build Status](https://circleci.com/gh/samvera/samvera-circleci-orb.svg?style=svg)](https://circleci.com/gh/samvera/samvera-circleci-orb) | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | +| [valkyrie](https://github.com/samvera/valkyrie) | [![Version](https://img.shields.io/gem/v/valkyrie)](https://rubygems.org/gems/valkyrie) | [![Build Status](https://circleci.com/gh/samvera/valkyrie.svg?style=svg)](https://circleci.com/gh/samvera/valkyrie) | | | 2.7.5 | 2.6.5 | | | 6.0.5 | 5.2.8 | ## Promoting Samvera Projects to Core Components From ee63d52e8746040d989ae07ca4d4e6b05ec794ee Mon Sep 17 00:00:00 2001 From: jrgriffiniii Date: Tue, 17 May 2022 11:37:12 -0400 Subject: [PATCH 4/4] Drafting a Releases and Milestones section for discussing milestone and branch naming practices --- README.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/README.md b/README.md index d1cbc6d..f979c6a 100644 --- a/README.md +++ b/README.md @@ -68,6 +68,41 @@ Currently, the documentation files for each core component are derived from temp As needed or requested, code repositories are reviewed for promotion. To start this process, email [the Samvera Tech Google Group](https://groups.google.com/g/samvera-tech) with a request. Provide documentation that all of the above requirements have been met. Ask for a spot on the next developer’s call to discuss the issue. Once the promotion has been decided, another email should go out to the list with an announcement. +## Releases and GitHub Milestones + +Releases for core components must please follow the [Semantic Versioning specification](https://semver.org/). Releases must be addressed using both [GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository) and, where appropriate, [RubyGems](https://guides.rubygems.org/publishing/). Further it is recommended that a `CHANGELOG` please also be updated to document the most recent changes (please see URL and URL for an outline of best practices). + +Releasing involves creating a git tag tracking the last git commit to be included within the new release. As each release is published, it may be helpful to track GitHub issues tied using [Milestones](https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/about-milestones) specifying the next potential release in each series of releases. For example, say that there exists a component with three major releases: + +- 3.0.0 +- 2.2.1 +- 1.1.2 + +Following this approach, at minimum, three milestones would then exist for the next successive `PATCH` release in each series: + +- 3.0.1 +- 2.2.2 +- 1.1.3 + +There is no required number of series of releases which must actively remain supported beyond the current series. Further, one may also wish to take a more proactive approach, and manage future `MINOR` releases as well: + +- 3.1.0 +- 3.0.2 +- 2.3.0 +- 2.2.2 +- 1.2.0 +- 1.1.3 + +### Branches + +Often times when maintaining multiple series of releases, it is quite helpful to have a set of matching `git branches` for these releases. Returning to this example case, one could have the following branches: + +- `3.x-stable` +- `2.x-stable` +- `1.x-stable` + +Further branches should not be necessary, as `MINOR` releases should always be backwards compatible (i. e. those using release 2.2.1 should be able to upgrade to 2.3.0 without encountering errors). + ## Samvera Component Repository Labels The following common set of standard GitHub issue labels are available for each repository, and their usage is encouraged please: