Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Integrating Bixby into maintenance as a part of the Core Component reorganization #145

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 107 additions & 7 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,25 @@ version: 2.1
orbs:
samvera: samvera/circleci-orb@1.0
jobs:
bundle_and_test:
lint:
parameters:
ruby_version:
type: string
bundler_version:
type: string
default: 2.3.11

executor:
name: "samvera/ruby"
ruby_version: << parameters.ruby_version >>

environment:
WAIT_FOR_JEKYLL: 10
NOKOGIRI_USE_SYSTEM_LIBRARIES: true

steps:
- samvera/cached_checkout

- run:
name: Check for a branch named 'master'
command: |
Expand All @@ -27,27 +31,103 @@ jobs:
echo "$(git branch --all --list master */master)"
fi
[[ -z "$(git branch --all --list master */master)" ]]

- run:
name: Install the NPM dependencies using Yarn
command: |
yarn install -D

- run:
name: Lint the formatting of source code files using Prettier
command: |
yarn run prettier --check .

- persist_to_workspace:
root: ~/
paths:
- project/*
- project/**/*

bixby:
parameters:
ruby_version:
type: string
bundler_version:
type: string
default: 2.3.11

executor:
name: "samvera/ruby"
ruby_version: << parameters.ruby_version >>

environment:
WAIT_FOR_JEKYLL: 10
NOKOGIRI_USE_SYSTEM_LIBRARIES: true
BUNDLE_PATH: ./vendor/bixby/bundle

steps:
- restore_cache:
name: Restore code from cache
keys:
- v1-source-bixby-{{ .Branch }}-{{ .Revision }}

- checkout

- save_cache:
name: Save code cache
key: v1-source-bixby-{{ .Branch }}-{{ .Revision }}
paths:
- ".git"

- run:
name: Update bundler
command: |
echo 'export BUNDLER_VERSION=<< parameters.bundler_version >>' >> $BASH_ENV
gem install bundler -v << parameters.bundler_version >>

- run:
name: Install dependencies
working_directory: ~/project/bixby
command: bundle check || bundle install --jobs=4 --retry=3

- run:
name: Call Rubocop in parallel
working_directory: ~/project/bixby
command: bundle exec rubocop --parallel

- persist_to_workspace:
root: ~/
paths:
- project/bixby/*
- project/bixby/**/*

workflows:
version: 2
ci:
jobs:
- bundle_and_test:
name: ruby3-1
ruby_version: 3.1.1
- lint:
name: lint
ruby_version: 3.2.0
- bixby:
name: bixby-ruby3-2
ruby_version: 3.2.0
requires:
- lint
- bixby:
name: bixby-ruby3-1
ruby_version: 3.1.3
requires:
- lint
- bixby:
name: bixby-ruby3-0
ruby_version: 3.0.5
requires:
- lint
- bixby:
name: bixby-ruby2-7
ruby_version: 2.7.7
requires:
- lint

nightly:
triggers:
Expand All @@ -58,6 +138,26 @@ workflows:
only:
- main
jobs:
- bundle_and_test:
name: ruby3-1
ruby_version: 3.1.1
- lint:
name: lint
ruby_version: 3.2.0
- bixby:
name: bixby-ruby3-2
ruby_version: 3.2.0
requires:
- lint
- bixby:
name: bixby-ruby3-1
ruby_version: 3.1.3
requires:
- lint
- bixby:
name: bixby-ruby3-0
ruby_version: 3.0.5
requires:
- lint
- bixby:
name: bixby-ruby2-7
ruby_version: 2.7.7
requires:
- lint
3 changes: 2 additions & 1 deletion .prettierignore
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
README.md
README.md
bixby/
73 changes: 39 additions & 34 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,44 @@
# Component Maintenance Interest Group

This repository holds templates and guidelines to support the maintenance of projects in the [Samvera](https://github.com/samvera) Github organization.
This repository contains [bixby](./bixby), documentation, and templates to support the maintenance of projects in the [Samvera](https://github.com/samvera) Github organization.

## Maintenance Projects

Within this repository are maintained the following Ruby Gems used for the administration and quality assurance of source code projects:

- [bixby](./bixby) - A Ruby Gem containing the default configuration settings for [RuboCop](https://github.com/rubocop/rubocop) used to enforce common Ruby style guidelines across Samvera community projects.

## Maintenance Documentation

- [ORGS](./ORGS.md) - Reference guide for the structure of GitHub Organizations (`samvera`, `samvera-labs`, and `samvera-deprecated`)
- [TEAMS](./TEAMS.md) - Reference guide for the structure of GitHub Teams within the `samvera`, `samvera-labs`, and `samvera-deprecated` Organizations
- [RELEASES](./ruby/RELEASES.md) - Reference guide for the releasing Ruby Gem components maintained by the Samvera Community

## 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.

## Samvera Core Components

Expand All @@ -17,7 +55,6 @@ 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](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 |
Expand All @@ -42,38 +79,6 @@ Currently, there are twenty Samvera Core Components maintained by the community:
| [node-iiif](https://github.com/samvera/node-iiif) | [![Build Status](https://circleci.com/gh/samvera/node-iiif.svg?style=svg)](https://circleci.com/gh/samvera/node-iiif) | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |
| [serverless-iiif](https://github.com/samvera/serverless-iiif) | [![Build Status](https://circleci.com/gh/samvera/serverless-iiif.svg?style=svg)](https://circleci.com/gh/samvera/serverless-iiif) | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A |

## Maintenance Documentation

- [ORGS](./ORGS.md) - Reference guide for the structure of GitHub Organizations (`samvera`, `samvera-labs`, and `samvera-deprecated`)
- [TEAMS](./TEAMS.md) - Reference guide for the structure of GitHub Teams within the `samvera`, `samvera-labs`, and `samvera-deprecated` Organizations
- [RELEASES](./ruby/RELEASES.md) - Reference guide for the releasing Ruby Gem components maintained by the Samvera Community

## 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

There exist Ruby scripts in this repository that can be used to propagate some of these templates. These are located within `ruby/scripts/`:
Expand Down
2 changes: 2 additions & 0 deletions bixby/.github_changelog_generator
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
unreleased=true
future-release=3.0.1
51 changes: 51 additions & 0 deletions bixby/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
*.gem
*.rbc
/.config
/coverage/
/InstalledFiles
/pkg/
/spec/reports/
/spec/examples.txt
/test/tmp/
/test/version_tmp/
/tmp/

# Used by dotenv library to load environment variables.
# .env

## Specific to RubyMotion:
.dat*
.repl_history
build/
*.bridgesupport
build-iPhoneOS/
build-iPhoneSimulator/

## Specific to RubyMotion (use of CocoaPods):
#
# We recommend against adding the Pods directory to your .gitignore. However
# you should judge for yourself, the pros and cons are mentioned at:
# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control
#
# vendor/Pods/

## Documentation cache and generated files:
/.yardoc/
/_yardoc/
/doc/
/rdoc/

## Environment normalization:
/.bundle/
/vendor/bundle
/lib/bundler/man/

# for a library or gem, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# Gemfile.lock
# .ruby-version
# .ruby-gemset

# unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
.rvmrc
Gemfile.lock
1 change: 1 addition & 0 deletions bixby/.rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
inherit_from: bixby_default.yml
Loading