This repository holds templates and guidelines to support the maintenance of projects in the Samvera Github organization.
Tasks for the ongoing maintenance efforts currently being undertaken by members of the Samvera Community are tracked and regularly updated using the Samvera Component Maintenance Project.
Samvera Core Components are defined as the following:
The primary Samvera code repository contains the Samvera community’s current consensus on what we are using, maintaining, and recommending. Ideally, this repository only contains code modules that are being actively used and maintained.
Please reference A Guide for the Samvera Community for further information.
Currently, there are twenty 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 | 2.7.0 | 2.6.5 | 6.0.2 | 5.2.4 | |||||
bixby | 3.1.1 | 3.0.3 | 2.7.5 | 2.6.9 | N/A | N/A | N/A | N/A | |
browse-everything | 2.7.5 | 2.6.9 | 6.0.4.7 | 5.2.4 | |||||
hydra-derivatives | 2.7.5 | 2.6.9 | N/A | N/A | N/A | N/A | |||
hydra-editor | 2.7.5 | 2.6.9 | 6.0.3.4 | 5.2.3 | |||||
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 | 2.7.3 | 2.6.7 | 6.0.3.7 | 5.2.6 | |||||
hydra-pcdm | 2.7.5 | 2.6.9 | 6.0.2 | 5.2.4 | |||||
hydra-role-management | 2.7.5 | 2.6.9 | 6.0.2 | 5.2.4 | |||||
hydra-works | 2.7.5 | 2.6.9 | 6.0.3.1 | 5.2.4.3 | |||||
iiif_manifest | 3.0.3 | 2.7.5 | 2.6.9 | N/A | N/A | N/A | N/A | ||
ldp | 2.7.5 | 2.6.9 | 6.0.4.4 | 5.2.0 | |||||
noid-rails | 2.7.5 | 2.6.9 | 6.1.3.2 | 6.0.3.2 | 5.2.4.3 | ||||
questioning_authority | 2.7.5 | 2.6.9 | 6.1.1 | 6.0.2 | 5.2.4 | ||||
rubydora | 2.7.5 | 2.6.9 | 6.0.2 | 5.2.4 | |||||
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 | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | |
valkyrie | 2.7.5 | 2.6.5 | 6.0.5 | 5.2.8 |
Component | CircleCI Status | Node.js 18.x Support | Node.js 16.x Support | Node.js 14.x Support |
---|---|---|---|---|
node-iiif | N/A | N/A | N/A | |
serverless-iiif | N/A | N/A | N/A |
- ORGS - Reference guide for the structure of GitHub Organizations (
samvera
,samvera-labs
, andsamvera-deprecated
) - TEAMS - Reference guide for the structure of GitHub Teams within the
samvera
,samvera-labs
, andsamvera-deprecated
Organizations - RELEASES - Reference guide for the releasing Ruby Gem components maintained by the Samvera Community
README.md - The elements in this template should be in every repository. Additional elements may be added.
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 - Contribution guidelines for Samvera projects. Should be included. Minimal customization should be necessary.
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 - Should be included in every Samvera repository. The copyright statements may change as appropriate. This template was taken from guidelines found on the wiki.
MAILMAP - A master template for git 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.
There exist Ruby scripts in this repository that can be used to propagate some of these templates. These are located within ruby/scripts/
:
This queries for and prints to the STDOUT
Gem metadata for each Samvera repository:
$ bundle exec ruby ./ruby/script/bundled-gem-release-dates.rb
The output is formatted using the following structure:
# Read through the current directories list of bundled gems. Capture
# each gem's specification. Sort the specifications by version release
# date, and print one line per gem. Note, this takes some time to run.
#
# Example:
#
# 2020-06-11 1.40.0 rubocop-rspec
# 2020-06-11 1.329.0 aws-partitions
# 2020-06-12 3.99.2 aws-sdk-core
# 2020-06-12 1.0.1 ldp
This ensures that a list maintained within this repository have the proper permissions for all Samvera repositories:
$ bundle exec ruby ./ruby/script/grant_revoke_gem_authority.rb
One may also explicitly request that all existing ownership permissions be revoked before adding permissions for each Gem:
$ WITH_REVOKE=true bundle exec ruby ./ruby/script/grant_revoke_gem_authority.rb
If you're working on PR for this project, create a feature branch off of main
.
This repository follows the Samvera Community Code of Conduct and language recommendations. Please do not create a branch called master
for this repository or as part of your pull request; the branch will either need to be removed or renamed before it can be considered for inclusion in the code base and history of this repository.