Releases: samvera/hyrax
v2.8.0
This release includes an important expansion of support for Ruby and Rails. We recommend adopters make plans to upgrade Rails to 5.2.
It should also substantially improve response times for object show pages for images.
IIIF Performance
- Introduces optimizations to IIIF manifest generation, reducing the number of Solr and Fedora requests needed to populate a manifest (#4353)
Expanded Dependency Support
- Adds support for Ruby 2.7
- Adds support for Rails 5.2 (#4330)
- Adds support for ActiveFedora 12.x (#4330)
- Adds support for
dry-validation
1.x ( #4379)
Bugfixes
- Locks version of
rdf-vocabs
gem to prevent disappearance of required EBUCore terms (#4366)
v2.7.2
v2.7.1
Bug Fix
Fixing logic around deleting nested membership for:
Fixes #4269 - CollectionsMembershipActor adds a previously unadded the collection when the _destroy flag is true.
Test Enhancements/Fixes
v2.7.0
This release backports some updates for the master Hyrax branch. We have deprecated the collection size calculation behavior. The calculation of file size for a collection "means touching a potentially huge portion of the repository—iterating over all files in all works in a collection." This should improve performance of collections.
Enhancement
Remove collection size feature
Bug Fix
Backport support for non-ascii character in filenames
Reworking how collection edit thumbnail URL is computed
Maintenance and Development
Removing spec files from gem distribution…
Fixing spec that intermittently fails
v2.6.0
Hyrax 2.6 is a maintenance release containing the following:
Dependencies
2019-10-21: Support upgrade to Hydra Editor to 5.0.x and Simple Form 5.0.x
2019-07-03: Support upgrade to Browse Everything to 1.0.x
Features
2019-06-27: Index original_file.id in solr to allow for accessing the property without using the FileSet object directly.
Bug Fixes
2019-06-25: In the case that a request to the actor stack tries to add a work to a parent that the current ability cannot edit, we want to avoid doing so. Previously the stack would carry on creating the new work, only to fail at the end with an incomplete work.
Documentation
2019-09-09: Update homebrew ffmpeg install instructions; Drop references to Hydra vagrant
Testing
Various fixes and improvements to circleci
v3.0.0-rc1
Hyrax 3.0.0 is a substantial release featuring a wide variety of UI improvements, metadata updates, and bugfixes as well as significant internal improvements.
The highlights for this release include:
- Support for Rails 5.2 and Ruby 2.6 are added; we now recommend Rails 5.2 for all applications.
- Out-of-the-box metadata schemas are updated to more closely align with the recommendations of the Samvera Metadata Interest Group.
- File versions and transparent PNGs are now supported by our IIIF installation. Universal Viewer's install process is improved to use
yarn
. - Valkyrie is introduced as a production dependency and a custom adapter (
Wings
) is introduced to handle backward-compatible use of Valkyrie within Hyrax. (see more on this below)
Wings/Valkyrie
This release marks a major milestone in the transition from ActiveFedora
to Valkyrie
as Hyrax's persistence middleware. The introduction of Wings has allowed us to transition some portions of the Hyrax codebase to using Valkyrie natively. Likewise it allows adopters to begin the transition to Valkyrie within their own applications in a limited fashion.
At this point, we encourage early-adopters to explore using Wings
through native Valkyrie interfaces and provide feedback about its suitability in Hyrax-based applications. Existing ActiveFedora models can be cast to auto-generated Valkyrie resource classes by using resource = my_object.valkyrie_resource
.
A broader usage guide for Wings and Valkyrie is provided at https://github.com/samvera/hyrax/wiki/Hyrax-Valkyrie-Usage-Guide
Currently, the internal Wings
adapter is the only supported Valkyrie adapter. We expect to support other adapters, and eventually deprecate Wings
in future releases.
CircleCI
In support of development efforts, we migrated our CI builds from Travis to CircleCI. This has allowed us to substantially reduce build times, increasing developer productivity. It has also allowed us to expand Hyrax's build matrix: we now run builds for Ruby 2.4, 2.5 and 2.6 in parallel, helping us ensure comprehensive support for those Ruby versions.
Migration Procedures from Hyrax 2.x to 3.0
The following steps describe the process for migrating to Hyrax 3. The steps should be run in the order presented.
Update gem
Edit Gemfile or gemspec to update the version of hyrax.
gem 'hyrax', '3.0.0.pre.beta2`
and run
bundle update hyrax
Database: Application DB changes are all covered by db:migrate
Run migrations to get database changes...
rails hyrax:install:migrations
rails db:migrate
IIIF & Universal Viewer
The Universal Viewer install is now managed by yarn
. Ensure UV is installed correctly by running the provided install rake task:
rake hyrax:universal_viewer:install
The number of arguments needed by the iiif_image_url_builder
lambda changed.
Applications that use the riiif gem for IIIF will need to add format
to the iiif_image_url_builder lambda in config/initializers/hyrax.rb.
config.iiif_image_url_builder = lambda do |file_id, base_url, size, format|
Changes
Incompatible API changes
- Dropped support for Ruby 2.3 (#3566)
- Show for license has moved from
app/views/hyrax/base/_metadata.html.erb
toapp/views/hyrax/base/_attribute_rows.html.erb
(#3153).- If you have local view overrides for
_attribute_rows.html.erb
but not_metadata.html.erb
, this will orphan the license field in the show view. Fix this by adding<%= presenter.attribute_to_html(:license, render_as: :license, html_dl: true) %>
to your custom_attribute_rows.html.erb
.
- If you have local view overrides for
- Renames two database columns to names to avoid camelCase:
itemId
->item_id
,downloadKey
->download_key
(#3121) - Removes
Solrizer::Common
from theHyrax::WorkBehavior
ancestor tree (#3399) - Deprecated
member_of_collection_ids
interface removed fromCollectionsMembershipActor
; usemember_of_collections_attributes
instead (#3428) - Removes code deprecated during the Hyrax 2.x series (#3401)
- Use
Hydra.config.user_key_field
to determineUser#user_key
(#3480) - Change Solr search builders to use
[* TO *]
for date range searches (#3559) - Solr configuration is now loaded from
./solr/conf
by default, matching the Blacklight approach (#3915) - Drop support for
browse everything
versions older than 0.16, add support for 1.0+ (#3879, #3645) - Drop support for
hydra-head
releases older than 10.6.1(#3495) - The universal viewer install process has changed to use
yarn
/rake assets:precompile
(#3765, #3761, #3696) config.iiif_image_url_builder
's method signature has changed (#3760)
User Interface
- Improve Generic Work layout and button organization (#3374)
- Use versioned images in IIIF and universal viewer (#3764)
- Support rendering PNGs with alpha channels with IIIF and universal viewer (#3760)
- Improve thumbnail cache behavior (#3764)
- Makes Admin Sets Participants tab consistent with Collections Sharing tab (#3384)
- Fixes punctuation error in help text (#3368)
- Generic Login Form employs Bootstrap conventions (#3362)
- Make thumbnails the same size as thumbnails in Works list view (#3446)
- Ensure dashboard collection list item thumbnails don't overlap with title (#3446)
- Change
description
label from "Abstract or Summary" to "Description" (#3449) - Ensure collection thumbnails show properly in search results (#3291)
- Remove
Hyrax::Actors::TransactionalRequest
from default middleware (#3482) - Backport of #3164 - Collection Thumbnails don't show in search results (#3658)
- Add new option for how to contribute (#3751)
- Relabel the links for private child works from 'File' (#3740)
- When downloading from Box, use label for filename (#3718)
- When tabbing in relationship tab, allow user to reach "Add" buttons. (#3709)
- Avoid silent removal of unsaved form changes when changing tabs in 'Edit Collection' by prompting the user (#3942)
- Improve padding for the navbar on mobile devices (#3944)
- Improve breadcrumbs on work pages (#3914)
- Improve display of collection item lists to avoid overlapping elements (#3913)
- Remove Google+ from sharing buttons (#3894)
- Make Add files and Add folder buttons to work with tab key navigation (#3488)
- Fix display of feature/unfeature buttons (#3776)
- Center headings in work listed in dashboard. (#3759)
Metadata
- Add
rights_notes
metadata toBasicMetadata
(#3550) - Add access rights metadata to a work. (#3749)
- Remove keyword from required fields (#3747)
- Add abstract metadata to work (#3680)
- Change predicate used by keyword (#3748)
- Map
license
todcterms:license
(#3293) - Limit
#title
to single use, introducedc:alternative
for additional titles (#3554)
Solr field names
- Replace use of
set_fields
with direct references to literal solr field names (#3831).- If you've been customizing index keys by overriding methods in
ActiveFedora::Indexing::Fieldmapper
or other Solrizer-related functionality, we recommend using a custom indexer or overriding a hyrax indexer instead.
- If you've been customizing index keys by overriding methods in
Bug Fixes
- Prevents creation of multiple
FileSet
s whenAttachFilesToWorkJob
is retried after an uncaught error (#3407) - Sanitize IIIF manifest output (#3395)
- Fix template url and update rails version (#3755)
- Add mime_type to the Riiif info_service (#3752)
- Increase Google Analytics download limit to 10,000, supporting usage stats from more than 1000 days ago (#3926)
- Fix generator for analytics configuration to use
ENV
variables correctly (#3934) - Prevent users from making themselves a proxy depositor (#3909)
- Verifiy the validity of the URL supplied by users for the collection logo (#3789)
- Use the original file's width and height instead of assuming 640x480 (#3772)
Internationalization
- Improve coverage of i18n keys (#3535, #3564, #3898)
- New form hint translation (#3396)
- Email text are moved to locales (#3383)
- Extract and translate strings. (#3708)
- use explicit utf-8 character for German Guillemets' (#3786)
Refactors
- Homepage layout includes more room for customization and nav pills have been changed to tabs (#3375)
- Extract
VisibilityIntention
class fromInterpretVisibilityActor
(#3462) - Remove unneeded
#save
of embargoes and leases during InterpretVisibilityActor (#3462) - Make
CreateWithRemoteFilesOrderedMembersActor
thread safe (#3477)- Reverted with "Move instance variable out of actor and into environment" (#3703)
- Add
DestroyWork
transaction to experimentalDry::Transactions
actor stack alternative (#3473) - Remove conditional from user partial (#3380)
- Remove internal references to
ActiveFedora::Base.logger
, useHyrax.logger
instead (#3901) - Replace
Hydra::Works::VirusCheck
andHydra::Works::VirusScanner
withHyrax::VirusCheck
andHyrax::VirusScanner
(#3901) - Raise
Hyrax::ObjectNotFoundError
in place ofActiveFedora::ObjectNotFoundError
. Applications should move to catching the former. (#3840) - Don't short-circut actor Environment when interpreting visibility (#3892)
- Support custom dashboard sidebar partials rendered using sidebar_partials class attribute (#3878)
- Refactor
WorkForm#agreement_accepted
toagreement_accepted?
(#3890) - Use
Arel.sql
to wrap a known safe SQL string in PermissionsService (#3888) - Add original_file.id to FileSetIndexer (#3864)
- Remove direct dependency on
ActiveFedora.id_field
(#3809) - Refactor for configurable
ActiveFedora.index_field_mapper
(#3802) - Extract Visibility application to a
Hyrax::VisibilityIntentionApplicator
service for reusability (#3468)
Deprecations
- Deprecate
ActiveFedora::SolrService
in favor ofHyrax::SolrService
(#3943)
Dependencies
- Added support for Ruby 2.6; dropped 2....
v3.0.0.pre.beta3
Incompatible API changes
- Dropped support for Ruby 2.3 (#3566)
- Show for license has moved from
app/views/hyrax/base/_metadata.html.erb
toapp/views/hyrax/base/_attribute_rows.html.erb
(#3153).- If you have local view overrides for
_attribute_rows.html.erb
but not_metadata.html.erb
, this will orphan the license field in the show view. Fix this by adding<%= presenter.attribute_to_html(:license, render_as: :license, html_dl: true) %>
to your custom_attribute_rows.html.erb
.
- If you have local view overrides for
- Renames two database columns to names to avoid camelCase:
itemId
->item_id
,downloadKey
->download_key
(#3121) - Removes
Solrizer::Common
from theHyrax::WorkBehavior
ancestor tree (#3399) - Deprecated
member_of_collection_ids
interface removed fromCollectionsMembershipActor
; usemember_of_collections_attributes
instead (#3428) - Removes code deprecated during the Hyrax 2.x series (#3401)
- Use
Hydra.config.user_key_field
to determineUser#user_key
(#3480) - Change Solr search builders to use
[* TO *]
for date range searches (#3559)
User Interface
- Generic Work layout and button organization (#3374)
- Makes Admin Sets Participants tab consistent with Collections Sharing tab (#3384)
- Fixes punctuation error in help text (#3368)
- Generic Login Form employs Bootstrap conventions (#3362)
- Make thumbnails the same size as thumbnails in Works list view (#3446)
- Ensure dashboard collection list item thumbnails don't overlap with title (#3446)
- Change
description
label from "Abstract or Summary" to "Description" (#3449) - Ensure collection thumbnails show properly in search results (#3291)
- Remove
Hyrax::Actors::TransactionalRequest
from default middleware (#3482) - Backport of #3164 - Collection Thumbnails don't show in search results (#3658)
- Add new option for how to contribute (#3751)
- Relabel the links for private child works from 'File' (#3740)
- When downloading from Box, use label for filename (#3718)
Metadata
- Add
rights_notes
metadata toBasicMetadata
(#3550) - Add access rights metadata to a work. (#3749)
- Remove keyword from required fields (#3747)
- Add abstract metadata to work (#3680)
- Change predicate used by keyword (#3748)
Solr field names
- Replace use of
set_fields
with direct references to literal solr field names (#3831). If you've been customizing index keys by overriding methods inActiveFedora::Indexing::Fieldmapper
or other Solrizer-related functionality, we recommend using a custom indexer or overriding a hyrax indexer instead.
Bug Fixes
- Prevents creation of multiple
FileSet
s whenAttachFilesToWorkJob
is retried after an uncaught error (#3407) - Sanitize IIIF manifest output (#3395)
- Fix template url and update rails version (#3755)
- Add mime_type to the Riiif info_service (#3752)
Internationalization
- Improve coverage of i18n keys (#3535, #3564)
- New form hint translation (#3396)
- Email text are moved to locales (#3383)
- Extract and translate strings. (#3708)
Refactors
- Homepage layout includes more room for customization and nav pills have been changed to tabs (#3375)
- Extract
VisibilityIntention
class fromInterpretVisibilityActor
(#3462) - Remove unneeded
#save
of embargoes and leases during InterpretVisibilityActor (#3462) - Make
CreateWithRemoteFilesOrderedMembersActor
thread safe (#3477)- Reverted with "Move instance variable out of actor and into environment" (#3703)
- Add
DestroyWork
transaction to experimentalDry::Transactions
actor stack alternative (#3473) - Add
Wings
as an internalActiveFedora
/Valkyrie
bridge module (#3486, #3494, #3492, #3496, #3497, #3498, #3515, #3503, #3519, #3522, #3529) - Remove conditional from user partial (#3380)
Dependencies
- Added support for Ruby 2.6; dropped 2.3 (#3565, #3566)
- Add
valkyrie
(2.0.0-rc3
) as a production dependency (#3563) - Upgrade
riif
gem to 2.0 (#3390) - Upgrade to
ActiveFedora
12.0 (#3425) - Upgrade
hydra-head
to releases 10.6.1 or later (#3495) - Removes unnecessary check for Rails < 5 (#3391)
- Move internal dependencies into the main Engine body (#3686)
Documentation
- Adds class level documentation for
Hyrax::CatalogSearchBuilder
(#3388) - Add new option for how to contribute (#3751)
CircleCI
- Backport current CircleCI config to 2.0-stable (#3545)
- Remove Travis CI (#3651)
- Run Circle at 10x concurrency (#3688)
- Run RSPEC at 4x parallelism in Circle CI (#3683)
- Reinstate workflows (#3732)
- Use samvera circle ci orb (#3731)
- Fix flaky collection type spec (#3730)
- Clear cache and force building internal test app (#3715)
- Revert build job to always build (#3702)
Migration Procedures from Hyrax 2.x to 3.0
The following steps describe the process for migrating to Hyrax 3. The steps should be run in the order presented.
Update gem
Edit Gemfile or gemspec to update the version of hyrax.
gem 'hyrax', '3.0.0.pre.beta2`
and run
bundle update hyrax
Database: Application DB changes are all covered by db:migrate
Run migrations to get database changes...
rails hyrax:install:migrations
rails db:migrate
You will also need to run migrate for tests to update your test database.
rails db:migrate RAILS_ENV=test
Initializers
Add format
to the iiif_image_url_builder lambda in config/initializers/hyrax.rb
config.iiif_image_url_builder = lambda do |file_id, base_url, size, format|
v2.5.1
v2.5.0
Bug Fixes
- Ldp::Conflict occurring on all new works once it starts (#3128)
- Collection Thumbnails don't show in search results (#3164)
Full Release Notes
2019-03-18: Prep for a Hyrax 2.5.0 release [Bess Sadler]
2018-09-19: backport: Fixes #3164 - Collection Thumbnails don't show in search results [Huawei Weng]
2019-02-20: backport: Forcing the reinstallation of chromedriver-helper [Tom Johnson]
2019-02-19: Backport current CircleCI config to 2.x-stable [Tom Johnson]
2019-02-04: Switches back to create from build in order to get the tests to pass for now. Will need to problem solve and update in the near future. [Chris Colvard]
2019-01-31: Runs through the spec tests and replaces create with build and collection with collection_lw where it can be done. [Chris Colvard]
2019-01-30: Fixes a couple leftover collection refs, replaces build with create where it can be done, and replaces create_user for with_permission_template. [Chris Colvard]
2019-01-30: Updates the references to private_collection and replaces it with the new factory private_collection_lw. [Chris Colvard]
2019-01-29: Replaces create with build for better performance with the collection_lw factory and replaces public_collection with public_collection_lw. [Chris Colvard]
2019-01-29: Replaces create with build for better performance with the collection_lw factory. [Chris Colvard]
2019-01-28: Replaces collection, public, and private collection with new collection_lw, public_collection_lw, private_collection_lw [Chris Colvard]
2019-02-13: Use version of sqlite that works with rails [Chris Colvard]
2019-02-06: Allow localhost connections in WebMock after view tests [Chris Colvard]
2019-02-01: Parallelism can be extended to 4 containers on free CircleCI 2.0 accounts [Chris Colvard]
2019-01-31: Restoring the gemspec statement in the Gemfile; Using
chromium-chromedriver on Travis CI for trusty for ensuring that headless tests
are run [Chris Colvard]
2019-01-31: Remove bundle clean
from the CircleCI config. (these are no longer
needed when the bundle dependencies are not cached) [Chris Colvard]
2019-01-31: Do not cache Bundler dependencies [Chris Colvard]
2019-01-31: Extending Selectors::Dashboard#select_member_of_collection in order
to loop for the .select2-results elements in order to prevent JS feature tests
from failing [Chris Colvard]
2019-01-31: Updating to hydra-head releases 10.6.1 or later [Chris Colvard]
2019-01-30: Uses the hydra-head master branch in order to ensure that ACL
resources are not persisted when Works/Collections are only built (please see
samvera/hydra-head#469); Resolves issues with the
Collection and Hyrax::Collections::Migration::Service test suites (given that
ACL permissions are now persisted when Collections are created); Resolves issues
with the terms requestHandler for Solr in the Hyrax::Statistics::Works::ByResourceType test suite (see #3491); Resolves issues with race conditions found within the Hyrax::ResourceSync::ChangeListWriter test suite (factories were originally persisted using sleep invocations) [Chris Colvard]
2018-11-13: Use hydra-head
branch no-extra-acls
(#469) [Chris Colvard]
2019-01-30: Updating the chromedriver-helper dependency to 2.1 releases; Removing the CircleCI step for running headless Chrome manually [Chris Colvard]
2019-02-13: Make Hyrax::Actors::TransactionRequest a no-op actor. Backwards-compatible backport of #3482 [Chris Colvard]
2019-01-25: Remove Hyrax::Actors::TransactionalRequest
from default middleware [Chris Colvard]
v3.0.0-beta2
Incompatible API changes
- Dropped support for Ruby 2.3 (#3566)
- Show for license has moved from
app/views/hyrax/base/_metadata.html.erb
toapp/views/hyrax/base/_attribute_rows.html.erb
(#3153).- If you have local view overrides for
_attribute_rows.html.erb
but not_metadata.html.erb
, this will orphan the license field in the show view. Fix this by adding<%= presenter.attribute_to_html(:license, render_as: :license, html_dl: true) %>
to your custom_attribute_rows.html.erb
.
- If you have local view overrides for
- Renames two database columns to names to avoid camelCase:
itemId
->item_id
,downloadKey
->download_key
(#3121) - Removes
Solrizer::Common
from theHyrax::WorkBehavior
ancestor tree (#3399) - Deprecated
member_of_collection_ids
interface removed fromCollectionsMembershipActor
; usemember_of_collections_attributes
instead (#3428) - Removes code deprecated during the Hyrax 2.x series (#3401)
- Use
Hydra.config.user_key_field
to determineUser#user_key
(#3480) - Change Solr search builders to use
[* TO *]
for date range searches (#3559)
User Interface
- Generic Work layout and button organization (#3374)
- Makes Admin Sets Participants tab consistent with Collections Sharing tab (#3384)
- Fixes punctuation error in help text (#3368)
- Generic Login Form employs Bootstrap conventions (#3362)
- Make thumbnails the same size as thumbnails in Works list view (#3446)
- Ensure dashboard collection list item thumbnails don't overlap with title (#3446)
- Change
description
label from "Abstract or Summary" to "Description" (#3449) - Ensure collection thumbnails show properly in search results (#3291)
- Remove
Hyrax::Actors::TransactionalRequest
from default middleware (#3482)
Metadata
- Add
rights_notes
metadata toBasicMetadata
(#3550)
Bug Fixes
- Prevents creation of multiple
FileSet
s whenAttachFilesToWorkJob
is retried after an uncaught error (#3407) - Sanitize IIIF manifest output (#3395)
Internationalization
- Improve coverage of i18n keys (#3535, #3564)
- New form hint translation (#3396)
- Email text are moved to locales (#3383)
Refactors
- Homepage layout includes more room for customization and nav pills have been changed to tabs (#3375)
- Extract
VisibilityIntention
class fromInterpretVisibilityActor
(#3462) - Remove unneeded
#save
of embargoes and leases during InterpretVisibilityActor (#3462) - Make
CreateWithRemoteFilesOrderedMembersActor
thread safe (#3477) - Add
DestroyWork
transaction to experimentalDry::Transactions
actor stack alternative (#3473) - Add
Wings
as an internalActiveFedora
/Valkyrie
bridge module (#3486, #3494, #3492, #3496, #3497, #3498, #3515, #3503, #3519, #3522, #3529) - Remove conditional from user partial (#3380)
Dependencies
- Added support for Ruby 2.6; dropped 2.3 (#3565, #3566)
- Add
valkyrie
(2.0.0-rc3
) as a production dependency (#3563) - Upgrade
riif
gem to 2.0 (#3390) - Upgrade to
ActiveFedora
12.0 (#3425) - Upgrade
hydra-head
to releases 10.6.1 or later (#3495) - Removes unnecessary check for Rails < 5 (#3391)
Documentation
- Adds class level documentation for
Hyrax::CatalogSearchBuilder
(#3388)
Migration Procedures from Hyrax 2.x to 3.0
The following steps describe the process for migrating to Hyrax 3. The steps should be run in the order presented.
Update gem
Edit Gemfile or gemspec to update the version of hyrax.
gem 'hyrax', '3.0.0.pre.beta2`
and run
bundle update hyrax
Database: Application DB changes are all covered by db:migrate
Run migrations to get database changes...
rails hyrax:install:migrations
rails db:migrate
You will also need to run migrate for tests to update your test database.
rails db:migrate RAILS_ENV=test