Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hyrax 4 valkyrie support #872

Merged
merged 117 commits into from
Apr 2, 2024
Merged

Hyrax 4 valkyrie support #872

merged 117 commits into from
Apr 2, 2024

Conversation

ShanaLMoore
Copy link
Contributor

@ShanaLMoore ShanaLMoore commented Oct 12, 2023

For those working on GBH AMS, your branch/PR is now here: #899

Jeremy applied the breaking changes label; in part as a reminder to review to see if it is in fact a breaking change.

bkiahstroud and others added 30 commits June 27, 2023 11:52
Hyrax 4.0.0 requires a dependency upgrade for
dry-monads. I could not upgrade GBH's bulkrax without
doing this change.

- Issue:
- scientist-softserv/ams#77
- Ref:
- https://github.com/samvera/hyrax/blob/cbe9278b919485f90a37630d3f3157ecef59cd7c/hyrax.gemspec#L48
gbh got an error that we were passing too many arguments
when setting the source_identifier in the bulkrax config.
ref:
- https://github.com/samvera-labs/bulkrax/wiki/Configuring-Bulkrax#source-identifier
* main: (24 commits)
  Retry and delete take 2 (#894)
  🎁 Add `Bulkrax.persistence_adapter` (#895)
  💸 Mint v6.0.1 (#892)
  🐛 Fix #work_identifier_search_field logic (#891)
  💸 Bump to v6.0.0 (#889)
  make search string used to look up objects configurable (#884)
  💸 v5.5.0 (#888)
  unpin dry-monads. its not a dependency of bulkrax (#885)
  fix syntax error in ERB (#883)
  add support for Rails 6, Hyrax 4, and Blacklight 7 (#782)
  Reduce SQL calls when incrementing/decrementing run counters (#881)
  Update readme to remove references to samvera-labs (#880)
  add Compatibility section to readme (#879)
  🐛 Fix tabs for Hydra application (#875)
  Nav-tabs event scoping (#874)
  📚 Update docs in preparation for best practices seminar (#873)
  use the `GlobalID` library tooling to determine global id (#869)
  Avoid NoMethodError in Bulkrax::Importers::Controller#create. (#870)
  preparing to deploy v5.4.1 (#868)
  5.4.0-bug-fixes (#865)
  ...
* 🧹 relocates transactions from inititalizer file

Issue:
- #897

Co-Authored-By: LaRita Robinson <[email protected]>

* 🧹 Add specs for container.rb, relocate files

Co-Authored-By: LaRita Robinson <[email protected]>

* 🧹 normalize magic strings into constants for referencing later

Convert the create_with_bulk_behavior and update_with_bulk_behavior to a constant; that way we can reference it in IiifPrint and document the “magic” string.

Co-Authored-By: LaRita Robinson <[email protected]>

* 🧹 correct camel case to constant notation for easier referencing

Co-Authored-By: LaRita Robinson <[email protected]>

* 💄 rubocop fixes

Co-Authored-By: LaRita Robinson <[email protected]>

* Update app/factories/bulkrax/valkyrie_object_factory.rb

* Update spec/bulkrax/transactions/container_spec.rb

* 🧹 Move container & steps

Match Hyrax convention by using bulkrax/transactions.

* restructure org to run specs locally

receiving error when trying to run the entire spec suite due to restructuring files but not moving the spec file.

* 🚧 WIP: Consolidate HasMatchers with HasMappingExt

Remove HasMappingExt and consolidate logic within HasMatchers. HasMatchers should handle both cases, when objects are ActiveFedora vs Valkyrie.

* 🧹 Fix Specs & add Valkyrie Specs

* 🧹 Fix Rubocop complaint

* 🧹 Address Valkyrie's determination of multiple?

* 🧹 Address permitted attributes

In Valkyrie, we use the schema to identify the permitted attributes. All
allowed attributes should be on the schema, so no additional attributes
should be required.

Also add a fallback for permitted attributes in case an ActiveFedora
model class goes through the ValkyrieObjectFactory. This supports the
case where we want to always force a Valkyrie resource to be created,
regardless of the model name given.

* 🧹 Update TODO comment

Adjust TODO message because referring to a handler that doesn't exist
anywhere is confusing. We may need to register steps for file sets once
the behavior is implemented.

---------

Co-authored-by: LaRita Robinson <[email protected]>
Co-authored-by: Jeremy Friesen <[email protected]>
Co-authored-by: LaRita Robinson <[email protected]>
This refactor introduces consolidating logic for determining an entry's
factory_class.

The goal is to begin to allow for us to have a CSV record that says
"model = Work" and to use a "WorkResource".

Note, there are downstream implementations that overwrite
`factory_class` and we'll need to consider how we approach that.
* main:
  🎁 Config option for coercing a factory class name (#901)
  ♻️ Extract Bulkrax::FactoryClassFinder (#900)
  📚 Adding documentation for configuration (#896)
kirkkwang and others added 26 commits March 19, 2024 12:27
In Valkyrie Hyku we're using CollectionResource and this was not being
recognized by the CSV parser.
resolves failure saying that errors is undefined. object.persisted? returned false even though we could see that they got created in the UI.
Adding this early return here so we don't go down to the the #where and
trigger a NoMethodError. What it seems like it's doing is checking
Postgres for the object but if it doesn't find it then tries in Fedora,
however, Valkyrie object don't respond to #where so it throws an error.
This fixes the reason why works weren't forming relationships with other works
This is in prep to handle Hyrax::FileSets being imports as rows.
This commit will allow users to use tar.gz files as well as zip files
for importing.
A spec was failing with the previous way we were checking.
Hyrax 4+ applications use font awesome and not glyphicon. This commit
will convert all glyphicon to font awesome.
Update bulkrax_tasks.rake

Fixes #941
This commit will add a guard for visibility because it is not on a
valkyrie resource.
CSV provided visibility was being clobbered in the ImportCollectionJob.

Refs scientist-softserv/hykuup_knapsack#182
I want to avoid having conditionals regarding object factories.  This
violates the polymorphism and means that other implementors that choose
a different `Bulkrax.object_factory` will have unintended consequences.
* main:
  Index :bulkrax_identifier metadata in :orm_resources (#946)
  🎁 Change glyphicon to font awesome (#944)
  Add require ruby-progressbar (#942)
@ShanaLMoore ShanaLMoore marked this pull request as ready for review April 2, 2024 15:59
@ShanaLMoore ShanaLMoore merged commit 071c70e into main Apr 2, 2024
6 checks passed
@ShanaLMoore ShanaLMoore deleted the hyrax-4-valkyrie-support branch April 2, 2024 16:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking-change for release notes major-ver for release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants