Hyrax: How should we use the installation template?

Created on 27 Feb 2017  路  10Comments  路  Source: samvera/hyrax

How should Hyrax use the installation template? @jcoyne and I went back and forth on this for Sufia 7.x, with the two options being:

  1. README always points at the template in the master branch, and the template is updated with each release to point at the latest release. This means that the README will always install the latest stable release of Hyrax.
  2. README always points at the template corresponding to the current release. So if you're reading the README for Hyrax 1.2.0, you get Hyrax 1.2.0 installed. If you're reading the README for 0.1.0, you get 0.1.0 installed. If you're reading the README in master, you get the latest stable release of Hyrax. (In order to do this, we'd need to update the README and the template with each release, as ticketed here: projecthydra/sufia#2784)

I'd welcome @projecthydra-labs/hyrax-code-reviewers thoughts on this.

Past discussions

administrivia question

Most helpful comment

All, given the discussion and voting above, I'm going to say we're going with option 2 -- I don't see a downside, other than a very small cost (a few extra seconds) at the time we cut a release, which isn't that often.

I hope that will prevent the Tom Johnsons of the future from getting bitten by the template. I will update our release management documentation so that it includes the necessary steps.

Thanks for the discussion, y'all.

All 10 comments

I vote for #2.

+1 on #2. Seems like a reasonable step in the release workflow, and I (personally) like that it's more explicit.

I'm for #1. I don't believe there is a use case where someone wants to use the template, knows the version they want to install, and it's not the most recent version.

I'm actually going to propose a 1.1 option. The template should just say gem 'hyrax'. Bundler will grab the most up to date version.

@jcoyne It seems like you're (perhaps reasonably) making a YAGNI argument. But, given the :+1:s above (and my own :+1:), and the very low cost of going with option number 2, is there another reason not to do this?

Yes, YAGNI. It's just one more little thing to do. It's fine to outvote me, but now you know my mind

.

As one of the 馃憤 'ers, I should say I'm also happy to help with this process also. Wouldn't be very fair to say "yes, someone else should do this extra thing" :)

I'm currently trying to start a new project based on 1.0.0.rc1. The template included in that tag points to 2.0.0.alpha in conflict with the Gemfile version. The error output I get is:

Fetching dependency metadata from https://rubygems.org/..
Could not find gem 'hyrax (= 1.0.0.alpha)' in https://github.com/projecthydra-labs/hyrax.git (at master@a8ee769).
Source contains 'hyrax' at: 2.0.0.alpha ruby
    generate    hyrax:install
The git source https://github.com/projecthydra-labs/hyrax.git is not yet checked out. Please run `bundle install` before trying to start your application
       rails    db:migrate
The git source https://github.com/projecthydra-labs/hyrax.git is not yet checked out. Please run `bundle install` before trying to start your application
       rails    hyrax:workflow:load
The git source https://github.com/projecthydra-labs/hyrax.git is not yet checked out. Please run `bundle install` before trying to start your application
         run  bundle install
Fetching https://github.com/projecthydra-labs/hyrax.git
The dependency tzinfo-data (>= 0) will be unused by any of the platforms Bundler is installing for. Bundler is installing for ruby but the dependency is only for x86-mingw32, x86-mswin32, x64-mingw32, java. To add those platforms to the bundle, run `bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java`.
Fetching gem metadata from https://rubygems.org/.......
Fetching version metadata from https://rubygems.org/...
Fetching dependency metadata from https://rubygems.org/..
Could not find gem 'hyrax (= 1.0.0.alpha)' in https://github.com/projecthydra-labs/hyrax.git (at master@a8ee769).
Source contains 'hyrax' at: 2.0.0.alpha ruby
         run  bundle exec spring binstub --all
The git source https://github.com/projecthydra-labs/hyrax.git is not yet checked out. Please run `bundle install` before trying to start your application

The README.md also simply points to the current master, which successfully installs Hyrax 2.0.0.alpha, so users need to know to update that template to the tagged ref manually in order to even reach the above error state.

Essentially, I think I need option 2 even before we have a real release of the project. I only expect this to become more complicated as more releases appear.

@no-reply if you install the template on master (which is 2.0.0.alpha) it will install 1.0.0.rc1 (the most recent release. This is how I believe you should do it.

All, given the discussion and voting above, I'm going to say we're going with option 2 -- I don't see a downside, other than a very small cost (a few extra seconds) at the time we cut a release, which isn't that often.

I hope that will prevent the Tom Johnsons of the future from getting bitten by the template. I will update our release management documentation so that it includes the necessary steps.

Thanks for the discussion, y'all.

Was this page helpful?
0 / 5 - 0 ratings