Releases: samvera/hyku
v6.0.0
What's Changed
Breaking Changes 🛠
- 🎁 Hyrax 5 upgrade by @kirkkwang in #2047
- Merge pals features in to main by @jeremyf in #2138
- ☄️ Valkyrize Hyku EPIC by @ShanaLMoore in #2129
- 🚧 Contribute Back from Knapsacking Pals by @jeremyf in #2178
- I350 Derivatives & Update IiifPrint by @laritakr in #2210
Exciting New Features 🎉
- knapsack gemfile additions or replacement by @orangewolf in #2139
- override gems from knapsack by @orangewolf in #2141
- Copy reprocessor script from GBH into Hyku by @bkiahstroud in #2166
- 🐛 Fix PDF.js for Valkyrie by @kirkkwang in #2176
- allow use of Google Analytics 4 by @orangewolf in #2231
- Update bulkrax by @laritakr in #2234
- Contribute back OER and ETD work types from Hyku Commons by @kirkkwang in #2237
Bug Fixes 🐞
- pin-json-canonicalization-0.3.1 by @aprilrieger in #2044
- commit-schema-updates by @aprilrieger in #2045
- update version to 6.0.0rc1 by @ShanaLMoore in #2137
- 🤖 Update charts for deploy by @kirkkwang in #2133
- 🎁 fixes to unblock deploys by @ShanaLMoore in #2140
- ♻️ Updating Gemfile to reflect pointing to main by @jeremyf in #2150
- 🧹 Specify knapsack required branch by @jeremyf in #2152
- 📚 Remove completed TODO item by @jeremyf in #2174
- remove sentry dependencies by @ShanaLMoore in #2175
- 🐛 Fix solr endpoint default issue by @laritakr in #2179
- 🐛 Another fix to the solr connection by @laritakr in #2180
- Fixes more solr uri issues by @laritakr in #2182
- the generate_work_url method from iiif print does not want a hash by @orangewolf in #2190
- I2194 address pr feedback and then some by @ShanaLMoore in #2195
- 🎁 Install and configure Willow Sword gem by @kirkkwang in #2196
- 🎁 Add
ActiveJob::Scheduler
by @kirkkwang in #2197 - Fix specs by @ShanaLMoore in #2198
- i1023/i1005 - set up maildev for staging by @ShanaLMoore in #2199
- 🐛 Update IiifPrint to permission propagation by @ShanaLMoore in #2201
- 🐛 i204-unable to import bulkrax csv fix by @ShanaLMoore in #2202
- 🐛 Bring back footer for splash page by @kirkkwang in #2205
- 🎁 1019 batch email notifications by @ShanaLMoore in #2200
- ⚙️ Use valkyrie and show backtrace on staging by @kirkkwang in #2208
- Update _logo.html.erb by @orangewolf in #2212
- Wrap willow_sword initializer in after_initialize by @kirkkwang in #2214
- change window size for selenium by @ShanaLMoore in #2213
- Remove Knapsack decorator from config/application by @kirkkwang in #2215
- 🚧 i205 - add ability to upload collection thumbnails by @ShanaLMoore in #2206
- contribute back theme spec files by @ShanaLMoore in #2217
- 🐛 Bring back catalog search constraints by @kirkkwang in #2218
- 🐛 Add guards for migrations by @kirkkwang in #2222
- Contribute directory_image_alt_text to Hyku by @kirkkwang in #2223
- Change Raven to Sentry by @kirkkwang in #2224
- 🎁 Modify yarn script to copy knapsack uv config by @kirkkwang in #2225
- 🎁 Adds symlink between samvera and hyrax-webapp branding directories by @ShanaLMoore in #2220
- ⬆️ Update WillowSword by @kirkkwang in #2227
- ⬆️ Update googleauth by @kirkkwang in #2228
- 🎁 Add Api-Key auth for WillowSword by @kirkkwang in #2229
- 🎁 documentation reorg per ryan-lang by @ShanaLMoore in #2232
- 🎁 Depositor notifications by @ShanaLMoore in #2226
- 🐛 Correct thumbnail_path_ss solr index value by @ShanaLMoore in #2230
- 🐛 [i37] - Fix syntax error on contact page by @ShanaLMoore in #2235
- 🐛 Fix collection search & facet by @laritakr in #2238
- Fix gallery and masonry catalog search results by @kirkkwang in #2239
- 🐛 Break long links in catalog search by @kirkkwang in #2240
- Some frontend fixes by @kirkkwang in #2241
- I205 collection thumbnail rework by @ShanaLMoore in #2242
- Branding fixes by @laritakr in #2244
- 🐛 [i51] Fix for collection sharing bug by @ShanaLMoore in #2236
- 🐛 Wrap quotes around ENV var by @ShanaLMoore in #2248
- 🐛 Bring over CsvParserDecorator fix from Pals by @kirkkwang in #2249
- 🐛 [i70] - Removes Show PDF options as form input fields by @ShanaLMoore in #2247
- 🐛 Fix Add Child link by @kirkkwang in #2252
- 🐛 Ensure
Hyku::Transactions
is loaded by @kirkkwang in #2253 - Fix duplicate thumbnails for PDFs by @laritakr in #2254
- Update Bulkrax by @kirkkwang in #2257
- 🐛 Fix Bulkrax issues for Knapsack applications by @kirkkwang in #2259
- Propagate locale between group form tabs by @bkiahstroud in #2262
- i51 - reverts accidental delete by @ShanaLMoore in #2261
- Styling updates by @kirkkwang in #2263
- ✅ Fix QuickClassificationQuery leaky spec by @kirkkwang in #2264
Other Changes
Full Changelog: v5.1.0...v6.0.0
v6.0.0.rc3
What's Changed
Breaking Changes 🛠
- 🎁 Hyrax 5 upgrade by @kirkkwang in #2047
- Merge pals features in to main by @jeremyf in #2138
- ☄️ Valkyrize Hyku EPIC by @ShanaLMoore in #2129
Exciting New Features 🎉
- knapsack gemfile additions or replacement by @orangewolf in #2139
- override gems from knapsack by @orangewolf in #2141
- Copy reprocessor script from GBH into Hyku by @bkiahstroud in #2166
Bug Fixes 🐞
- pin-json-canonicalization-0.3.1 by @aprilrieger in #2044
- commit-schema-updates by @aprilrieger in #2045
- update version to 6.0.0rc1 by @ShanaLMoore in #2137
- 🤖 Update charts for deploy by @kirkkwang in #2133
- 🎁 fixes to unblock deploys by @ShanaLMoore in #2140
- ♻️ Updating Gemfile to reflect pointing to main by @jeremyf in #2150
- 🧹 Specify knapsack required branch by @jeremyf in #2152
Other Changes
Full Changelog: v5.1.0...v6.0.0.rc3
v6.0.0.rc1
What's Changed
Breaking Changes 🛠
- 🎁 Hyrax 5 upgrade by @kirkkwang in #2047
Bug Fixes 🐞
- pin-json-canonicalization-0.3.1 by @aprilrieger in #2044
- commit-schema-updates by @aprilrieger in #2045
- update version to 6.0.0rc1 by @ShanaLMoore in #2137
- 🤖 Update charts for deploy by @kirkkwang in #2133
- 🎁 fixes to unblock deploys by @ShanaLMoore in #2140
Full Changelog: v5.1.0...v6.0.0.rc1
v5.1.0
What's Changed
Exciting New Features 🎉
- Extended oai by @sephirothkod in #1934
- upgrade to bulkrax 5.2 by @labradford in #1939
- Iiif av by @labradford in #1942
- update-bin-web-script-for-analytics by @aprilrieger in #1937
- Improve accessibility by @kirkkwang in #1977
- SSO Interface and Setup for SAML, OpenID Connect and CAS by @orangewolf in #1976
- Sidekiq jobs dashboard improvements by @orangewolf in #1972
- Bulkrax importing work by @orangewolf in #1970
- account elevator clear especially when on proprieter view by @orangewolf in #1986
- view updates for devise from adventist by @orangewolf in #1990
- make indexing records more resiliant and uniform by @orangewolf in #1991
- make sure layers are flattened to fix pdf tripple issue by @orangewolf in #1988
- use partent title instead of filename in uv by @orangewolf in #1987
- Schemas and timeouts by @orangewolf in #1992
- iiif rodeo includes by @orangewolf in #1985
- ability to mark during importing for actor stack by @orangewolf in #1989
- 🐛 font inputs rendered twice fix by @ShanaLMoore in #2014
- run asset build later in process to allow knapsack to run it only one time by @orangewolf in #2022
- 🧹 Update contact email descriptions by @ShanaLMoore in #2027
- upgrade bulkrax to 5.4.0 by @ShanaLMoore in #2003
- 🎁 Superadmins can activate users by @kirkkwang in #2037
- 🐛 Fix duplicating slider icons in IR theme by @ShanaLMoore in #2021
- Experimental Iiif print support. This is off by default and can be turned on by setting by HYKU_IIIF_PRINT=true in your environment @ShanaLMoore in #1926
Bug Fixes 🐞
- solr build improvements by @orangewolf in #1925
- Update script grants admins manage access to Collections by @bkiahstroud in #1927
- upgrade hyrax docker image and remove malloc env var. by @sephirothkod in #1933
- update iiif-print by @summer-cook in #1945
- Fixes work/edit form error flash messages by @summer-cook in #1947
- Adds code comment and reverts a rubocop change that breaks theming by @labradford in #1950
- Copyright year by @summer-cook in #1951
- 🐛 Addressing Psych::DisallowedClass error with YAML changes by @jeremyf in #1948
- update color labels and help text by @alishaevn in #1957
- 🐛 Adding conditional when Devise is non-registerable by @jeremyf in #1964
- Downgrade sidekiq until redis is upgraded by @DeonFranklin in #1963
- bump browser tools so that chrome downloads for CI by @orangewolf in #1974
- Move view file to correct place by @summer-cook in #1975
- User invite email has html tag by @labradford in #1999
- ⚙️ Add bundle as part of docker-compose by @jeremyf in #2005
- 🐛 subject can't be blank for the contact form by @ShanaLMoore in #2009
- Inviting existing users fails by @bkiahstroud in #2025
- 🐛 Correct contact_email and contact_email_to descriptions by @ShanaLMoore in #2031
- 🐛 Fix depositor role issue by @ShanaLMoore in #2032
Other Changes
- add a reset task that wraps the task from bulkrax by @orangewolf in #1840
- Bump rack from 2.2.6.2 to 2.2.7 by @dependabot in #1941
- Some Build Adjustments by @orangewolf in #1946
- Bump semver from 7.3.8 to 7.5.4 by @dependabot in #1965
- Bump word-wrap from 1.2.3 to 1.2.4 by @dependabot in #1969
- Bump puma from 4.3.12 to 5.6.7 by @dependabot in #1978
New Contributors
- @DeonFranklin made their first contribution in #1963
Full Changelog: v5.0.1...v5.1.0
v5.0.1
What's Changed
Bug Fixes 🐞
- refactor CollectionPresenterDecorator to use #decorate by @bkiahstroud in #1913
- bring back a production worthy docker-compose example by @orangewolf in #1918
Full Changelog: v5.0.0...v5.0.1
v5.0.0
Migration Procedures from Hyku 4.0 to 5.0
Graph Nested Indexer
We can use Solr graph queries to skip having to do nested indexing. This speeds up adding and editing items to large collections substantially. The only downside is that this method does not work if your Solr Cloud shard size is set to > 1. If you do not use Solr Cloud or if you use the default shard size of 1, this will work wonderfully. If you do need a higher shard size set HYRAX_USE_SOLR_GRAPH_NESTING
explictly to false
and also open an issue in Hyku as the next version of Hyrax makes Graph Nesting the only option.
Bulkrax is Enabled by Default
It can be disabled by setting the HYKU_BULKRAX_ENABLED environment variable to false, but the gem will still be included in your gem path and the scoped Bulkrax JS and CSS files will still be included unless you manually remove them.
Groups with Roles feature
Please refer to the Setup an Existing Application to use Groups with Roles section in the Groups with Roles Feature Wiki article.
Hyrax Upgrade Changes
The vast majority of Hyrax upgrade issues are simply resolved in Hyku for you with this upgrade. You do need to run rails db:migrate
to update your database schema.
However, if you have custom overrides, you should probably review the following to make sure nothing has moved out from under your code.
- v3.0.0 section titled "Incompatible API Changes"
- V3.1.0 section titled "Refactors"
- V3.2.0 section titled "Refactors"
Analytics
New analytics features are enabled in the application. In order to take full advantage of the in application reporting you need to set up a Google API access. See https://github.com/samvera/hyku#analytics-feature for details.
Environment variable changes
Several environment variables have changed names to more closely align with Hyrax and to remove redundancy. Checking any deployment scripts or .env
files against the current list in the README is advised.
What's Changed
PURL and and CSV importers are deprecated
The built in PURL and CSV command line importers are supplanted Bulkrax feature wise. They have not been maintained and will are expected to be removed in the next release.
Breaking Changes 🛠
- Upgrade to Hyrax 3.5.0 by @orangewolf in #1907
- Upgrade to Hyrax 3.4.0 by @orangewolf in #1811
- Groups with Roles feature by @bkiahstroud in #1859
- Use main docker images for zookeeper and solr for development. by @orangewolf in #1809
- uv not rendering by @ShanaLMoore in #1829
- align-fcrepo-variables-to-hyrax by @aprilrieger in #1878
- make env vars consistent by @ShanaLMoore #1831
- removing-lingering-settings-envs by @aprilrieger #1832
Exciting New Features 🎉
- add-pagination-to-proprietor-account-show-tables by @aprilrieger in #1798
- add favicon uploads to appearance dashboard (#313) by @labradford in #1868
- add filesets to search for collection show page by @labradford in #1876
- add-google-analytics by @aprilrieger in #1882
- Contributing back negative captcha by @aprilrieger in #1877
Bug Fixes 🐞
- fix single tenant catalog links by @orangewolf in #1801
- Fix shared search links by @laritakr in #1823
- 83 datacite endpoint credentials save error by @selamhabteab in #1824
- Resolved mixed content error due to insecure XMLHttpRequest endpoint … by @selamhabteab in #1822
- rename fedora_url to fcrepo_url for consistency by @ShanaLMoore in #1827
- Fix Shared Tenant Theme Urls by @laritakr in #1835
- add checked option to radio button by @kirkkwang in #1833
- 1837 better user error handling by @alishaevn in #1838
- contribute_back_i541-featured-works-save by @aprilrieger in #1841
- Fix shared search URLs by @laritakr in #1844
- Move Blacklight URL Helper overrides by @laritakr in #1847
- use same uploader for banner as other items. fix from british library by @orangewolf in #1852
- Fix typos by @cclauss in #1849
- add-clause-to-account-settings-for-google_analytics_id by @aprilrieger in #1845
- Backport fix from UTK by @laritakr in #1861
- Moving ContentBlock methods by @jeremyf in #1853
- moves share your work button outside of featured works partial by @labradford in #1866
- workflow actions header color by @labradford in #1864
- adds libreoffice to Dockerfile by @labradford in #1870
- fix embargo and lease date time issue by @labradford in #1872
- fixes neutral repo home page collections by @labradford in #1874
- Fix sign up link not rendering by @bkiahstroud in #1880
- Remove unnecessary equality check by @bkiahstroud in #1881
- add-worker-script-executable-update-dockerfile-cmd by @aprilrieger in #1843
- disable-analytics-env-also-dont-error-if-not-enabled by @aprilrieger in #1887
- add conditional to account for when iiif print gem is installed by @kirkkwang in #1886
- Image magick and build fixes by @orangewolf in #1900
Dependency updates
- upgrade Hyrax to v3.4.2 by @bkiahstroud in #1855
- Bump jmespath from 1.4.0 to 1.6.1 by @dependabot in #1808
- Bump rack from 2.2.3 to 2.2.3.1 by @dependabot in #1802
- Bump nokogiri from 1.12.5 to 1.13.6 by @dependabot in #1810
- Bump tzinfo from 1.2.9 to 1.2.10 by @dependabot in #1828
- Bump loofah from 2.18.0 to 2.19.1 by @dependabot in #1858
- Bump nokogiri from 1.13.6 to 1.13.10 by @dependabot in #1856
New Contributors
- @ShanaLMoore made their first contribution in #1827
- @alishaevn made their first contribution in #1838
- @cclauss made their first contribution in #1849
Full Changelog: v4.0.0...v5.0.0
v4.0.0
This release adds several large features (Cross Site Search, Custom Themes, Multiple Domains Per Tenant and Private Tenant Support) along with a substantial overhaul in to how settings are managed. This is packaged along with quite a few bug fixes and improvements.
Please see the Migrations section below.
Features
Cross Site Search
Hyku now has the ability to create search only tenants. A search only tenant searches 1 or more other tenants and displays results from all of them in a unified interface. These tenants are manageable in the admin interface. This work was contributed as part of the Advancing Hyku Project done by Ubiquity Press with special thanks to @mankind for the majority of this code. The British Libraries sponsored work for Notch8 to integrate the cross site search and the new settings UI in to Hyku's main repository. You can see a basic demo of this feature here https://share.getcloudapp.com/RBunGOYP
Theming
Hyku now ships with 3 custom home page themes, 2 custom show page themes and 2 search results themes. There is a new tab on the admin dashboard (settings/appearance) which allows admins to select themes. This opens the door for additional themes to be developed that include custom views, css and javascript. This change also add feature flags for Featured Researcher, Recently uploaded, Featured Works, Share your work button. This work was sponsored by the Hyku for Consortia project from PALNI and PALCI, under their IMLS grant, "Scaling Up a Collaborative Consortial Institutional Repository." This presentation from Samvera Virtual Connect 2021 provides an excellent walk-through of this functionality. Detailed instructions on adding and selecting themes are provided at the links below:
Support Multiple Domains per Tenant
Previously only one domain name could point at a given tenant. We now support multiple domain names and make adding additional domains available from the UI. For example both samvera.hykuup.com
and repo.samvera.org
can render the same content.
Private Tenant Support
Tenants can be marked as private in the proprietor UI. Doing so prevents them from being listed on any public facing list of accounts and puts a simple http basic auth in front of the site. This allows for underdevelopment accounts to be set up with out being public or being indexed by search engines and prevents the public from wandering in to demo or staging sites.
Featured Collections
Users previously could not specify which collections they wanted to appear on the homepage, and collections appeared in order of whichever was the most recently added. There was also no way to prevent a collection from appearing on the homepage besides making it private. Hyku now utilizes the code for Featured Works, and adapts it so that users can select, feature and reorder whichever collections they would like to show on the homepage.
Use Hyrax Docker / Helm Base Setup
Hyrax now provides a minimal base docker image, intended to be reused and extended by applications. this is a proposal to replace the existing Dockerfile with one based on that image.
this would switch the application server to puma
. our thinking is that real containerized deployments (e.g. via the Helm chart) are likely to be behind a load balancer and an nginx
(an ingress controller).
the image is kept minimal with the idea that a smaller set of system dependencies means a lower footprint for security risks, besides the bandwidth and storage convenince. Hyrax's setup definitely has space to improve here, but the idea is greater consolidation will help the community maintain something really solid.
This release removes the custom chart code that Hyku was maintaining, but few if any people were using.
Settings and Configuration Overhaul
Configuration settings were available in too many places and with too many names. In order to consolidate and modernize this approach the following refactoring has been done. All "global" configuration now happens in ENV vars. The ruby-config gem has been removed and settings in config/settings.yml
, `config/settings/production.yml', etc are completely removed in this version. The ENV vars have been updated to match Hyrax and Rails standards wherever possible. See # Migration Instructions for more information on updating your application.
A new settings interface was added to the account. This interface allows for tenants to override settings in their admin UI or in the proprietor UI where appropriate. Setting specified at the account level can have a specified default. The precedence is that if a settings value is set that is used. If not, and an ENV var matches, then the ENV var is used. If not and a default is coded in, then the default is used. Lastly if none of those 3 are true, the value is nil.
Special thanks to Ubiquity for doing the initial implementation on this feature and to the British Library to supporting Notch8's work to extract it in to Hyku and expand its scope.
Make Account Switching Simpler
Previously switch accounts was accomplished in the console or in scripts by called AccountElevator.switch!(CNAME). This is still supported, but becomes tedious due to how frequently switching tenants is needed. Devs can now call switch!(X)
where X is any of the following:
- Account object
- cname
- name of an account object
This changed also allowed us to consolidate several code paths which previously handled account switching.
Bugs
- Disabling a work type causes errors
- Update links for Samvera wiki move
- Remove coveralls gem from CI, it was flaky and no longer helpful
- Set default scope for users to exclude guests, remove old guests (#1720)
- Non-ACL file system support. Azure and other network file systems do not support setting file permissions. This sets up a flag to disable file permission setting if needed
- Don't try to assign registered role on global tenant (#1712)
- Branding images should be served from public, not tmp
- Move dory domain to .test since Google is resolving .docker now
- Solve issue where apartment initializer would not allow migrations before seeds had been run
Migration Instructions
This is a major release. There are several database migrations to run, but more importantly there are major changes to the way settings are handled. All items previously controlled via the ruby config gem are now controlled via either environment variables or in tenant settings. Environment variable names have been remapped to match Hyrax where possible, simplified where possible and to clearly distinguish them where not possible.
For example:
SETTINGS__SOLR__URL (or the solr url field in the settings.yml file) is now SOLR_URL
SETTINGS__JOB__QUEUE is now HYRAX_ACTIVE_JOB_QUEUE.
Settings set at the tenant level will override their environment set defaults. See https://github.com/samvera/hyku/blob/main/app/models/concerns/account_settings.rb and the README for examples of available variables.
The development environment is also more closely aligned with Hyrax, but most of these changes are abstracted under the Docker configuration.
v3.0.2
Update to Rails 5.2.5 and fix Mimemagic
This release upgrades to Rails 5.2.5 to fix issues around mimemagic. See this summary for background information. Previous versions will likely be broken without upgrading their Gemfile along with every other Rails application in existence.
v3.0.1
Security Patch
This is a single security item patch release. This release, or an upgrade to blacklight-oai-provider
>= 6.1.1, is recommended for anyone with blacklight-oai-provider
installed. Previous versions of blacklight-oai-provider
did not properly check security on GetRecord calls. This could lead to access of a private item, via OAI, if the attacker knew the identifier for that item. This release is otherwise the same as v3.0.0.
v3.0.0
This is our first release in over a year. We are increasing the major version do to the user elevation being a breaking change for Hyku consumers who have local (non-sso) based user logins. We don't anticipate this being a massive effort to migrate users, but want to signal clearly to folks that it is something that needs to be done. There are lots of notable features below and our hope is that the next few releases will focus on being smaller, more incremental feature releases and bug fixes.
Features
Theming Improvements
- Customizable CSS in interface
- More individual colors
- Font selection tool
- Ability to set the default images and logos on a per tenant basis from within the UI
Bulkrax Import and Export
- Optional dependency behind feature flipper
- Connected to Browse Everything
- Status dashboard and individual tenant user self service
Contact page customizable email per tenant
Upgrade to Hyrax 2.9.1, Rails 5.2, Ruby 2.7, removed now redundant code
User management improvements, including elevating the users site wide
- User management available as superuser
- Users do not need to register for each tenant enabling Single Sign On functionality
- Roles remain per tenant
- Stepping stone to a more comprehensive and solid permissions structure site wide
- This is a breaking change for anyone with users in individual tenants as those user accounts will need to be migrated out to the 'public' users table before an upgrade to Hyku 3.0. No migration is provided at this time due to no one having a case for it. If you do need help with a migration path for users, please contact us.
Background jobs to automatic embargo release
Local docker development speed improvements using volume caches
Helm chart kubernetes deployment for Hyku
Collection thumbnail path fixes
This release is identical to Pre-release 2 only the version number has been changed to protect the innocent.