Giter Club home page Giter Club logo

samvera-circleci-orb's People

Contributors

cjcolvar avatar jrgriffiniii avatar orangewolf avatar phuongdh avatar revgum avatar rotated8 avatar tpendragon avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

samvera-circleci-orb's Issues

Extend integration tests

After #36 is merged, the orb will have a straightforward place to preform integration testing, but does not currently have any tests.

Previous discussion has suggested running tests against Hyrax, or another core component.

Fix issues with shellcheck

Shellcheck is a job in Cirlcle's orb-tools orb. It runs the shellcheck utility against the run statements within our jobs and commands.

Shellcheck fails on the orb because we use CircleCI parameters in shell commands, among other reasons. It'd be nice to check our shell commands whenever the orb is updated.

Don't assume default working directory in bundle commands

bundle and bundle_for_gem cache ~/project/vendor/bundle which assumes the job running this command is using the default working directory (~/project). These commands should be generalized so they work with any working_directory.

I ran into this when modifying the example ruby config.yml when setting up a project, which sets working_directory: ~/repo, to use this orb.

Change default solr image

I ran into a weird CI build issue where one of the 10 parallelized containers failed with error starting container solr:7-alpine: Error: No such image: solr:7-alpine. I went looking on dockerhub and sure enough it looks like there isn't a 7-alpine anymore only 7 and 7-slim. I wonder if circleci is pulling from cache which will go away at some point and kill all of our builds. It would be nice to change the default in the orb before 1.0.

Here is the failed build: https://app.circleci.com/pipelines/github/samvera/hyrax/3587/workflows/52f26ad0-121b-4fa2-bfe0-3f090856d2b3/jobs/23332

Prepare for promotion to core component

Code Requirements

  • Code must be released at version >= 1.0
  • Good unit test coverage measured by community (e.g. 100% or 75% of what’s important)
    • Is this relevant?
  • uses CI (Preferably CircleCI, unless there is a compelling reason to do something else)
    • Is this relevant?
  • uses Coverage tool (coveralls or simplecov)
    • Is this relevant?
  • 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.
  • Hierarchy of promises asserted in clearly defined acceptance tests

Documentation Requirements

  • LICENSE file, Apache 2 (or compatible)
  • README.md
  • Statement of purpose
  • Basic install steps
  • Identify any volatile/experimental features
  • How to contribute -> CONTRIBUTING.md
  • How/Who to contact for help -> push out to all gems like CONTRIBUTING.md
  • Known issues documented in github Issues tickets (not just listed in text)
  • Tutorial / Walkthrough / Example usage
  • Resolve TODO items in documents and remove them
  • All Contributors should have signed Hydra Contibutor License Agreement (CLA)

Use Requirements

  • Community use by three or more institutions
    • All core components use the orb now.
  • In active use for six months
    • ActiveFedora started using it on March 20th.
  • Has an ongoing maintenance plan.

Add caching to rubocop?

I wonder if it makes sense to cache the output of rubocop to reduce the time it takes to run since our files aren't usually changing that much and it can save significant amount of time locally. I'm not sure exactly how rubocop's caching works and if it would work to do it in a CI environment or what exactly the cache key should look like.

See https://docs.rubocop.org/rubocop/usage/caching.html

AUTHORIZATION_FAILURE when trying to publish dev builds

The build attempts to publish a dev:alpha tag of the orb but this is currently failing with an AUTHORIZATION_FAILURE message. I'm also unable to publish locally either using my preconfigured token or manually specifying the token used by the build.

Generate `bundle list` artificat for each build

This week, I spent quite a bit of time tracking down what dependencies were used with build. I ended up writing a script that uses bundle list and determines the date of each gem version's release. (see https://github.com/samvera/maintenance/blob/master/script/bundled-gem-release-dates.rb)

The problem is exacerbated with our EngineCart practice, when we push up sometimes we bundle update other times we use the cache. Knowing what's in play for a given build takes considerable sleuthing.

What I am looking for is a simple way to look at a build and see the list of bundled gems used. We can kind of do this by looking at the bundle install, but with caching that may not be in each build. Ideally, we'd have a file that could say "these were the gem versions used for this build."

On my machine, bundle list takes 0.31s for Hyrax. I do not believe the generation of this artifact would add much more than 1s to a Hyrax build.

Releasing 1.0.0

  • Draft release notes for distribution.
  • Announce release plans on Samvera Tech listserv, Tech call, and #dev Slack channel.
  • Check for samvera/circleci-orb@0 in Samvera repos and create PRs for the current version, 0.3.2.
  • Check for samvera/circleci-orb@0 outside of Samvera and create issue for upcoming release.
  • Attempt PR for current dev version for Hyrax (this is expected to break).
  • Release the thing!
  • Announce the release on Samvera Tech and Tech call.

The goal is to finish the release before the end of March.

Related to #19

As part of build, generate and store list of gem versions used

This week, I spent quite a bit of time tracking down what dependencies were used with build. I ended up writing a script that uses bundle list and determines the date of each gem version's release. (see https://github.com/samvera/maintenance/blob/master/script/bundled-gem-release-dates.rb)

The problem is exacerbated with our EngineCart practice, when we push up sometimes we bundle update other times we use the cache. Knowing what's in play for a given build takes considerable sleuthing.

What I am looking for is a simple way to look at a build and see the list of bundled gems used. We can kind of do this by looking at the bundle install, but with caching that may not be in each build. Ideally, we'd have a file that could say "these were the gem versions used for this build."

On my machine, bundle list takes 0.31s for Hyrax. I do not believe the generation of this artifact would add much more than 1s to a Hyrax build.

Add support for Fedora 6

The orb currently uses the samvera/fcrepo4 image to setup Fedora for testing. For applications moving to Hyrax v5 for instance, and using Fedora 6 and Valkyrie, the orb currently does not provide any simple method to spin up a Fedora 6 container.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.