Samvera Tech Call 2022-01-05
Meeting Logistics:
Time: 9:00am PDT / Noon EDT
Zoom Meeting URL: https://princeton.zoom.us/j/7739591625
(link will launch Zoom client – if you do not have Zoom, expand the instructions below)
Agenda (meeting notes below)
Modernizing Hyrax JS build/package process @tamsin johnson, kibigo
Hydra-derivatives @Chris Colvard
I want to make a release. What version should it be?
Ongoing maintenance plan
RDF.rb 3.2 @Chris Colvard
Rippling effects of upgrading ruby-rdf to 3.2
What is the best short-term and long-term paths?
Faraday update to 2.0 @Chris Colvard (if time)
QA PR#348 @Lynette Rayle - Pagination for yml file authorities (if time)
Moderator: @Lynette Rayle
Notetaker: @Michael Johnson
Attendees:
@Juliet Hardesty
@Chris Colvard (Indiana University)
@Max Kadel (UNC Chapel Hill)
@Heather Greer Klein
@Lynette Rayle (Cornell)
@tamsin johnson
@Trey Pendragon
Margaret Kibi (kibigo)
@Michael Johnson (Indiana University)
Meeting Process
Notes
TOPIC: Modernizing Hyrax JS build/package process
Led by @tamsin johnson , kibigo
Tamsin introduces Margaret Kibi who has been heading up the work on this. New dev at UCSB.
Working on Blacklight migration - necessary to get Hyrax onto Rails 6
Upgrading Blacklight requires some other changes
Upgrading Bootstrap
But upgrading Bootstrap breaks some components in our front end
Things that need to happen on the frontend and a lot of our infrastructure is out of date
Sprockets currently required
But Rails in general has moved away from using Sprockets - -a lot of the transpiling/bundling solutions are out of date/not maintained for Sprockets
Uses Babel for transpiling, but it uses Babel 5, which was last released in January of 2016 - 7 years out of date
We want to move to more contemporary JS development anyway
This PR was an exploration in using Deno, which sidesteps a lot of these issues. This allows us to use Rake tasks to build JS bundles
JS bundle gets built and added to the view
Application JS works the same but gets loaded after ours
2 concerns:
Getting Deno to work on Alpine Linux is tricky (no glibc, and Deno needs glibc) - we have a fix for doing it within Docker, but if anyone runs Alpine outside docker, it won’t work out of the box
Makes development a little more cumbersome – have to manually run the rake task every time a change is made (not hooked into rails
Tamsin: is glibc a runtime dependency?
Margaret: no, it’s a build-time dependency. Deno binary uses dynamic linking that requires glibc.
You can run Deno binary on another box and copy the bundle over
Tamsin: That coupled with fact that we're not married to Alpine linux seems ok
Build existing images using Alpine, but that could change
Maybe we take a step back and think about building on Debian-based images instead?
But this shouldn't be a determining factor for the JS builds
Good topic for next Dev Congress - jan 24-28?
Tamsin: Can this wait until then?
Margaret: Yes.
TOPIC: Hydra derivatives
Led by @Chris Colvard
hydra-derivatives has some hoops you have to jump through to get build to pass
Dependencies on tools used to generate derivatives
One is Kakadu
Some of the files needed to build were missing, had to find them an alternative way
Hydra Derivatives has this as an ongoing problem
Suggestions?
Trey - like integration tests existing, but don't need to deal with this then
In case of Kakadu, we've left it behind and they've been stricter about licensing.
But there is not a great alternative
Chris: In short term want to cut a release of hydra-derivatives
have a PR - dropped testing on Ruby 2.4 b/c EOL and there are issues with the docker images
does dropping testing of Ruby 2.4 require a major version bump? Still works but not getting tested
Trey: No.
Tamsin: strictly speaking it's a nice thing to do but not super important. But sometimes things that are
What is downside to dumping major version?
Chris - if stricter versioning in gemfiles, will have to bump them to get the new version.
Tamsin: Don't feel it's super important either way. Do it how you want.
TOPIC: RDF upgrade
Led by @Chris Colvard
Wanted to check with Tamsin on where things are with RDF upgrade.
Concern that I have is that Greg Kallick(?) has a PR into LDP or to 3.2 for all RDF gems
In Avalon-space we're stuck in an older rdf-vocab space as some things have changed
Might drop rdf-vocab long term
Tamsin
What happened over holidays - Greg rewrote in-memory data repository
Past version used a Hash Arraymapped Tree to make small memory footprint while allowing for fast updates and fully-snapshottable transactions
Grab data in memory at any point and just hold it in memory
Downside: data structure was fundamentally unordered - find for RDF but not everything else.
Greg flipped it back - not sure motivation
New implementation that looks a lot like an old implementation
Snapshotting is retained
Some breakages as a part of that - some naming changed. On Monday Tamsin renamed to the previous name. Should be fixed.
However, a little worried about the memory properties of this datastructure
If being conservative, might not want to upgrade RDF to latest yet - especially where people are doing big reindexes, this might have issues
Going to do some benchmarking/testing - we might want to revert if it doesn't hold up
Greg concerned about breaking RDP/active-triples, think these changes are related to that
Chris put some comments but not much in the PR review
Seems like upgrade to 3.2 forced all other RDF gems to 3.2 , concerned about that
Tamsin - we may be able to change that. Will look at it this afternoon.
Moderator/notetaker next week
Moderator: Max Kadel
Notetaker: Chirs Colvard
Lynette will solicit feedback for Questioning Authority PR - Chris Colvard offered to stay on Zoom and talk about it