Skip to content

hyrax-v4.0.0

Compare
Choose a tag to compare
@dlpierce dlpierce released this 30 May 19:30
· 2 commits to 4.x-stable since this release
815e0ab

Hyrax 4.0 Highlights

Hyrax 4 has seen major upgrades to its dependencies. It now runs on Ruby 3.2 and Rails 6.1. Blacklight has been updated to version 7, and the Bootstrap style framework to version 4.

What's Changed

Major Changes (Potentially breaking changes)

  • Min Ruby version, CircleCI updates, Jasmine refactor in #5665
    • Minimum Ruby version is now 2.7
  • Upgrade to Blacklight 7, Bootstrap 4 and Rails 6.0 in #5730
  • Favoring Hyrax.logger over Rails.logger in #5880
  • Use solr's graph query builder for nested collection queries in #5850
    • The graph parser only works in single node Solr installations, or with SolrCloud collections that use exactly 1 shard. See Solr Graph Query documentation.

New Features

  • correctly derive paths for UploadedFileUploader in #5755
  • Add a generic interface for ACL keys to Group and User in #5761
  • test model sensitive collection behavior for relationships views in #5759
  • Require rubygems multi-factor authentication in #5754
  • don't show analytics in the sidebar if it is turned off in #5769
  • update Samvera copyright date to 2022 in #5767
  • comet: decouple Derivatives from Characterization in #5778
  • add bibliographic_citation to work form in #5774
  • raise a useful error when setting an unknown visibility in #5801
  • Pessimistic handling of non-Date objects in #5819
  • Upgrade to rails 6.1 in #5786
  • Exposing Hyrax.config.derivative_services in #5867
  • Convert dashboard facets to use Dropdown facet components instead of overriding upstream in #5785
  • Use VisibilityComponent for FileSet permissions in #5892
  • reinstate support for ActiveFedora to WorkflowActionsController in #5915
  • Hyrax config option for solr http method in #5937
  • Expanding method interface in #5941
  • support enumerators in FindFiles "navigator" queries in #6054
  • add pool based redis connections #6056 in #6060
  • Migrate LockManager to #then for better ConnectionPool support in #6061
  • Make Google Private Key accessible from the ENV. in #6063
  • Add a note containing the configured file upload limits in #6079
  • make the VisibilityMap configurable in #6009

Deprecations

  • remove deprecated transaction code in #5725
  • remove deprecated code from PermissionTemplate in #5726
  • wings: remove deprecated classes in #5723
  • remove deprecated WithFileSets module in #5745
  • remove deprecated InitializeWorkflowActor in #5741
  • remove deprecated ContentDepositorChangeEventJob in #5739
  • remove deprecated methods from Hyrax::Configuration in #5737
  • remove deprecated use_valkyrie argument from InheritPermissionsJob in #5738
  • remove deprecated #whitelisted? method in #5740
  • remove deprecated method from InAdminSet in #5743
  • remove deprecated argument/attribute from GraphExporter in #5747
  • remove WorksControllerBehavior#curation_concern_from_search_results in #5750
  • remove deprecated MyController#query_solr method in #5751
  • remove deprecated methods from NestCollectionsController in #5752
  • always pull repo file if filepath param is missing in #5694
  • remove deprecated method from CollectionsControllerBehavior in #5748
  • Use FileSetsController to access the presenter and deprecate FileSetBehavior#to_presenter in #5895
  • remove deprecated code from FileMetadata in #5727
  • remove deprecated class attribute from CollectionType in #5742
  • remove deprecated methods from CollectionBehavior in #5744
  • Remove deprecated power_converters gem in #5980
  • remove deprecated #to_sipity_entity in #5746
  • remove Blacklight 6 compatibility methods in #5749

Bug Fixes

  • CharacterizeJob non-ASCII filename bug in #5673
  • make CollectionsSearchBuilder tests less strict in #5762
  • Fix application generation in #5765
  • hard code collection model in actor stack in #5760
  • Unpin Blacklight in #5784
  • AdminSet needs to fall back to an id if noid is false in #5790
  • soften dependendy on search_state_class for app generation in #5808
  • support newer versions of FactoryBot in #5806
  • don't load_and_authorize a model when indexing Embargoes in #5809
  • provide default PermissionBadge presenter behavior when nil in #5807
  • Remove whitespace from jsonld spec in #5821
  • check json, not string equality for JSON-LD output in #5822
  • Improving file handle life cycle in #5831
  • add an explicit dependency on Redis in #5838
  • stop using separate JS uploader configuration in development in #5855
  • Switch to parameters required by selenium 4 in #5872
  • Ensuring Hyrax::UserStatImporter returns false on exception in #5874
  • Remove unneeded variables in FileSet permission_form in #5889
  • remove dependency on dry-transaction in #5901
  • Adjust size of collection input in #5908
  • Pin view_component pending updated blacklight in #5910
  • Fix misspelling bug in propagator in #5917
  • Fixes the missing sort call in add_sorting_to_solr (#5905). in #5920
  • 401 if an unauthorized user attempts to download a workflow restricted file in #5921
  • Refreeze FileMetadata type with note to not << in #5944
  • Don't throw an error if depositor field isn't present in #5952
  • always force original_name to UTF-8 encoding in #5942
  • Limit redlock to versions < 2.0, as these cause sidekiq jobs to fail in #5961
  • Require rails/generators explicitly in #5967
  • display on work page bibliographic_citation in #5964
  • Hyrax-5856 - Collection and Work count numbers not displaying correct… in #5965
  • Hyrax-151 - I can add a proxy that already exists when I accept a tra… in #5966
  • add alternative_title to item and collection view. in #5968
  • Hyrax-5969 - Fix dashboard Works page "Add to collection" issue in #5972
  • Fix missing work id in file-set-in-work-download events in #5959
  • remove funny display when batch loading files. in #5973
  • display banner and logo file and info at file selection. in #5974
  • place radio button to right of collection type in modal. in #5975
  • Updates to CircleCI config in #5981
  • update the cc license config file for koppie in #5977
  • Fix method not found error for File analytics page in #5958
  • place save work section on right side of page regardless of language in #5978
  • support flipflop 2.7.1 in #6003
  • remove unused Samevera::NestingIndexer dependency in #6010
  • Fix missing metadata in IIIF manifest in #6053
  • reinstate breadcrumb styling in #6055
  • remove unneeded config[:thread_safe] = true from redis config in #6062
  • Versioning form style in #6077

Valkyrie Progress

  • add Hyrax::FileMetadata(file) caster in #5720
  • wings: fix string interpolation in persister errors in #5758
  • Support embargo & lease in valkyrie forms in #5803
  • helperize Embargo edit view dependencies on ActiveFedora behavior in #5814
  • get a minimal passing EmbargoController for Valkyrie in #5810
  • Allow some specs to run with Wings undefined in #5834
  • Rename image resource model to monograph to match dassie in #5837
  • Use docker postgres to match dassie's environment in #5840
  • Factory method for finding collection type from collection in #5835
  • index embargoes and leases when using valkyrie infrastructure in #5847
  • Index member_of_collection_ids for PcdmCollection in #5852
  • Don't default member_of_collection_ids in collection_params in #5851
  • Proxy deposit requests use valkyrie-specific query service when use_valkyrie? is true in #5857
  • Hyrax 5795 works view item action file set delete throws error in #5859
  • Hyrax-5844 - Cannot remove embargo from work in #5865
  • Present error to user if trying to add a work to 2 single membership collections. in #5861
  • Koppie fixes in #5868
  • allow rights_statement to show up in the work show page. in #5869
  • Add service to get original file from FileSet in #5878
  • Resource permission persisting in #5863
  • Update koppie catalog controller for blacklight 7 in #5893
  • Update versioning service to support Valkyrie in #5886
  • valkyrie: use storage adapters for derivatives in #5626
  • Use the ResourceForm for FileSets in #5894
  • use valkyrie 3.x in #5948

Documentation

  • add some basic documentation for CustomQueries in #5757
  • Add descriptions to migration tasks in #5793
  • Fix link to support guide in #5883
  • Adding documentation to Hyrax::DerivativeService in #5866
  • Adds info to CONTAINERS about running koppie in #5891
  • fix Samvera Slack badge in README in #5931
  • Updates samvera logo in #5936
  • Add maintenance policy document in #5950
  • Readme update per Developer Onboarding Working Group recommendations in #5953
  • Updated old URLs in #5960
  • fix github issues link in #5939
  • Update .github/CONTRIBUTING.md in #6015
  • Update ISSUE_TEMPLATE.md in #6070
  • docker-compose-v2 in #6072
  • Pull request template update in #6078

Containerization

  • Create .koppie (.dassie without Fedora) in #5830
  • Run gem update --system in hyrax-base image & set ACL on gem location in #5833
  • Enable koppie and dassie to run concurrently in #5841
  • build amd64 and arm64 images on release and push to ghcr.io in #5870
  • Support alternative solr ports in #5885
  • [Helm] separate the worker and web selectors in #5907
  • ci: update to 2.7.7 in #5949
  • Dispatch workflow events to samvera-labs/nurax instead of curationexperts/nurax in #5982
  • chart: bump the solr version for current kubernetes support in #5983
  • chart: update CronJob api version in #5984
  • bump jvm to 17. this fixes a problem where fits freezes randomly on arm64 in #5986
  • chart: upgrade dependencies in #5985
  • chart: update helpers and secrets configs for dependency updates in #5988
  • helm: fix more helper values, bump chart version to 3.0.1 in #5991
  • Only trigger nurax deploy for main branch in #5992
  • Deploy stable nurax only on latest published release in #5993
  • Dockerfile revisions in #5994
  • chart: add extraDeploy template variable for extensibility in #5996
  • Remove MALLOC_ARENA_MAX=2 in #5997
  • Don't always restart docker pg service in #6057
  • Specify Ruby Version In Only One Place in #6071

Ruby 3

  • bump ActiveFedora version to 14 for Ruby 3 support in #6011
  • bump support for noid-rails to 3.x in #6013
  • bump support for hydra-file_characterization to 1.x in #6012
  • allow flipflop parameters in controller test in #6014
  • adapt **options in ContentBlockHelperBehavior for Ruby 3 in #6017
  • splatify unused _options argument in PcdmCollectionForm in #6018
  • make PresenterFactory Ruby 3 kwargs friendly in #6019
  • make Hyrax::SolrService kwargs friendly for ruby 3 in #6020
  • Hyrax::Transactions::Transaction#with_step_args Ruby 3 compatibility in #6021
  • don't rely on Ruby 2 {}/opt handling in VisibilityIntention specs in #6022
  • splatify opts passed by CollectionMembershipValidator in #6024
  • expect the options hash style actually passed in #6025
  • splatify options passed along by CollectionMemberShipValidator in #6027
  • don't try to use rpsec mocks on $CHILD_STATUS!!! in #6026
  • Convert lambda to proc to allow missing argument in Ruby 3 in #6030
  • Hyrax::Ability#user_is_depositor? Ruby 3 Compatibility in #6032
  • make Wings::Valkyrie::Storage ruby 3 compatible in #6029
  • ControlledVocabularies::ResourceLabelCaching ruby 3 compatibility in #6028
  • test options hash where the client is using it in #6035
  • Use same initialize method signature as ActiveModel::Validator in #6038
  • fix transfers controller behavior in #6036
  • update blacklight 6 compatibility behavior to support Ruby 3 in #6039
  • test correct options style in FileSetHelper specs in #6040
  • more breadcrumb test parameter fixes in #6041
  • be explicit about #reduce behavior in PermissionQuery in #6042
  • splatify arguments from CreateWithFilesActor to job in #6043
  • allow optional **_options arguments in AdminSetMembersPopulator in #6044
  • avoid kwargs solr_doc from dashboard_helper_behavior_spec setup in #6045
  • splatify render locals in IiifHelper in #6046
  • fix query style in GraphExporter specs in #6047
  • Splatify AttachFilesToWorkWithOrderedMembersJob spec attributes for ruby 3 in #6049
  • Match CreateWithFilesActor spec to splatted method in #6050
  • Refactor CollectionBrandingInfo#initialize for Ruby 3 in #6034
  • Replace kaminari_route_prefix gem with initializer patch in #6048
  • test ruby 3.0, 3.1, 3.2 in #6016
  • Test valkyrie mode with Ruby 3.2 in #6052

Bootstrap 4

  • 5681 search results page in #5692
  • Address User/Dashboard/Login menu styling (Bootstrap 4) in #5690
  • Address 5680 file manager layout in #5696
  • Update Collection dashboard edit screens in #5697
  • Set actions dropdown to default, add interior classes. in #5699
  • 5413 work page UI in #5700
  • Clean up Add to Collection modal UI when viewing Works in #5702
  • Citations menu buttons in #5710
  • Update Dashboard Work page to match styles of Collection page in #5712
  • Update Collection view type icon buttons background in #5715
  • Partial PR - Clean up of Admin Sets UI in #5716
  • Change the way we click content block tabs in testing in #5718
  • Fix catalog modals in #5729
  • Fix admin dashboard facet modals in #5731
  • Starts work on the view type functionality issues. in #5732
  • Fix dashboard facet spec in #5733
  • Applies same styling from #87409ad to Content Blocks. in #5734
  • Styles Masonry view option to match current expectation. in #5735

Other

  • Prepare release 4.0.0.beta1 in #5770
  • Prep 4.0.0.beta2 in #5896
  • Prep for v4.0.0.rc1 in #5998
  • bump Version to Hyrax 4.0.0-rc2 in #6051
  • bump version to 4.0.0-rc3 in #6058

Full Changelog: hyrax-v3.5.0...hyrax-v4.0.0