diff --git a/pages/samvera/developer_community/git_structure/core_components.md b/pages/samvera/developer_community/git_structure/core_components.md index 07d9bc9..c782fae 100644 --- a/pages/samvera/developer_community/git_structure/core_components.md +++ b/pages/samvera/developer_community/git_structure/core_components.md @@ -2,16 +2,12 @@ title: Core Samvera Code Repository permalink: core_components.html keywords: [ 'Components', 'Labs', 'Community', 'Development', 'Maintenance' ] -last_updated: May 9, 2022 +last_updated: June 23, 2022 folder: samvera/developer_community/git_structure/ --- # Samvera Code Repository -The [primary Samvera code repository](https://github.com/samvera) 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. Anything -that falls into disuse should be a candidate for [deprecation](deprecation.html). +The [primary Samvera GitHub Organization](https://github.com/samvera) 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. Anything that falls into disuse should be a candidate for [deprecation](deprecation.html). ## Requirements for a Core Component diff --git a/pages/samvera/developer_community/git_structure/samvera_labs.md b/pages/samvera/developer_community/git_structure/samvera_labs.md index 8cc705c..104c0d2 100644 --- a/pages/samvera/developer_community/git_structure/samvera_labs.md +++ b/pages/samvera/developer_community/git_structure/samvera_labs.md @@ -2,79 +2,64 @@ title: Samvera Labs permalink: samvera_labs.html keywords: ["Labs", "Experiments", "Starting a Project", "Development"] -last_updated: February 2, 2022 +last_updated: June 23, 2022 folder: samvera/developer_community/git_structure/ sidebar: samvera_sidebar toc: true --- # What is Samvera-Labs? -The [`samvera-labs` Github repository](https://github.com/samvera-labs) is for +The [`samvera-labs` Github Organization](https://github.com/samvera-labs) is for Samvera Experiments, Works-in-progress, and Beta versions of gems and apps. Projects here may be suitable for production use, but awaiting broader adoption. ## Requirements for creating a project -The samvera-labs repository is meant to be a true lab, and experimentation is to -be encouraged as much as possible. The committers may accept any any contributions -to samvera-labs by any Samvera Licensed Contributors wishing to offer their work. +The samvera-labs repository is meant to be a true lab, and experimentation is to be encouraged as much as possible. The committers may accept any any contributions to samvera-labs by any Samvera Contributors wishing to offer their work. ## Guidelines for Promotion to Samvera from Labs You may utilize this [template](https://docs.google.com/document/d/1pq80frBACLzA_q9cE1ZnMZh4WTiBv6iMUXELligbcv0/edit?usp=sharing) to display how your repository meets each criteria -To move from `samvera-labs` to the core `samvera` code organization, the following -requirements must be met: +To move from `samvera-labs` to the core `samvera` code organization, the following requirements must be met: ### Code Requirements - 1. Code must be released at version >= 1.0 + 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) - 1. Good unit test coverage measured by community (e.g. 100% or 75% of what’s important) + 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 CI (Preferably CircleCI, unless there is a compelling reason to do something else) + 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. uses Coverage tool (coveralls or simplecov) + 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. Show compatibility with current 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 via CI matrix. - - 1. [Hierarchy of promises](https://samvera.atlassian.net/wiki/spaces/samvera/pages/405211336/Hydra+Stack+-+The+Hierarchy+of+Promises) asserted in clearly defined acceptance tests + 1. Code releases must follow the [Semantic Versioning specification](https://semver.org/) standards ### Documentation Requirements +These document files are derived from the templates managed within [the Samvera Maintenance repository](https://github.com/samvera/maintenance). - 1. LICENSE file, Apache 2 (or compatible) - - 1. README.md - - 1. Statement of purpose + 1. [`README.md`](https://github.com/samvera/maintenance/blob/main/templates/README.md) - 1. Basic install steps + 1. [`LICENSE`](https://github.com/samvera/maintenance/blob/main/templates/LICENSE) - 1. Identify any volatile/experimental features + 1. [`CODE_OF_CONDUCT.md`](https://github.com/samvera/maintenance/blob/main/templates/CODE_OF_CONDUCT.md) - 1. How to contribute -> CONTRIBUTING.md + 1. [`SUPPORT.md`](https://github.com/samvera/maintenance/blob/main/templates/SUPPORT.md) - 1. How/Who to contact for help -> push out to all gems like CONTRIBUTING.md + 1. [`CONTRIBUTING.md`](https://github.com/samvera/maintenance/blob/main/templates/CONTRIBUTING.md) - 1. Known issues documented in github Issues tickets (not just listed in text) + 1. Known issues documented in GitHub Issues - 1. Tutorial / Walkthrough / Example usage - - 1. Resolve TODO items in documents and remove them - - 1. All Contributors should have signed Hydra Contibutor License Agreement (CLA) + 1. Resolve any `TODO` comments within the code base (or, remove the comments and please create these as GitHub Issues) ### Use Requirements -1. Community use by three or more institutions - -1. In active use for six months + 1. Community use by three or more organizations -1. Has an ongoing maintenance plan. + 1. In active use for six months + 1. Has an ongoing maintenance plan ## Mechanism for Promotion -As needed or requested, code repositories are reviewed for promotion / deprecation. -To start this process, email the Samvera Tech list 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.