From 93fe0c9a4524d378196d49bc5b07ff6e3dcaa3d5 Mon Sep 17 00:00:00 2001 From: jrgriffiniii Date: Wed, 11 May 2022 13:51:32 -0400 Subject: [PATCH 1/3] 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/3] 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 0dda89ac72ef415e0a7ca6a73c08f2d6b18bf0ec Mon Sep 17 00:00:00 2001 From: jrgriffiniii Date: Thu, 23 Jun 2022 14:02:24 -0400 Subject: [PATCH 3/3] Updating the Core Components promotion guidelines with the further revised improvements --- README.md | 47 ++++++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 23bce9c..05d18dd 100644 --- a/README.md +++ b/README.md @@ -40,33 +40,46 @@ In order for Samvera GitHub repositories to become components, a process of prom 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 + 1. Software unit and integration test suites using a framework such as [RSpec](https://rspec.info/) or [Jest for JavaScript](https://jestjs.io/). While there is no minimum threshold for test coverage, usage of tools such as [SimpleCov for Ruby](https://github.com/simplecov-ruby/simplecov) or [Jest test coverage analysis features](https://jestjs.io/docs/configuration#collectcoverage-boolean) are encouraged (but not required) -### Documentation Requirements + 1. 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 + + 1. Show compatibility with current Ruby and Rails versions and other dependencies, when was it last tested. Note compatibility with prior versions when available. Compatibility can be specified in the gemspec(s) or verified within the CI configuration + + 1. Uses continuous integration to automate the execution of test suites (preferably CircleCI, unless there is a compelling reason to do something else). For CircleCI, also strongly encouraged would be the usage of [Samvera CircleCI Orb](https://github.com/samvera/samvera-circleci-orb) + + 1. Code must feature releases using [RubyGems](https://rubygems.org/) or the [NPM](https://www.npmjs.com/), and offer a release version >= 1.0.0 + 1. 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. + 1. [`README.md`](https://github.com/samvera/maintenance/blob/main/templates/README.md) + + 1. [`LICENSE`](https://github.com/samvera/maintenance/blob/main/templates/LICENSE) + + 1. [`CODE_OF_CONDUCT.md`](https://github.com/samvera/maintenance/blob/main/templates/CODE_OF_CONDUCT.md) + + 1. [`SUPPORT.md`](https://github.com/samvera/maintenance/blob/main/templates/SUPPORT.md) + + 1. [`CONTRIBUTING.md`](https://github.com/samvera/maintenance/blob/main/templates/CONTRIBUTING.md) + + 1. Known issues documented in GitHub Issues + + 1. Resolve any `TODO` comments within the code base (or, remove the comments and please create these as GitHub Issues) ### Community Use Requirements -- Community use by three or more Samvera institutions or organizations -- In active use for six months -- Offers an ongoing maintenance roadmap + 1. Community use by three or more organizations + + 1. In active use for six months + + 1. Has an ongoing maintenance plan ### 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. +As needed or requested, code repositories are reviewed for promotion and deprecation. 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. Then propose an agenda item on the next [Samvera Tech Call](https://samvera.atlassian.net/wiki/spaces/samvera/pages/405211059/Notes+from+Tech+Meetings+and+Calls) to discuss the issue. Once the promotion has been decided, another email should go out to the group with an announcement. ## Samvera Component Repository Labels