Blacklight Hydra Committers Call 2011-11-21
Participants
Jessie (Stanford)
Matt Zumwalt (MediaShelf) - moderator
Justin (MediaShelf)
Joe (UVa)
Naomi Dushay (Stanford)
Bess Sadler (Stanford)
Chris Beer (WGBH)
Bill Parod (Northwestern) - notetaker
Others...
Agenda
Select Moderator and Notetaker
Matt Zumwalt moderator; Bill Parod notetaker
Call for Additional Agenda items
Blacklight Project
strategic directions
3.2 will be out in the next few weeks:Multiple configs per controller;
SASS Refactor, abstracting out the stylesheet for rendering;
Streamlining customizability, making core leaner / modules that provide more advanced features;
release planning
Master git branch should always be runnable;
Feature branches are used for development and fixes;
Try to do semantic versioning / debatable; Try to insure that patch releases don't break anything; Though because any method can be overridden, it's difficult to claim that a new version is backwards compatible.
Perhaps over time, Blacklight can start declaring private methods to protect backwards compatibility, facilitating semantic versioning.
overview of configurability, intended overrides, etc
It's a Gem;
Worked on the helpers and controllers to make them more "Railsy";
Catalog behaviors are all in a module;
Can pull in Blacklight functionality as needed; CatalogController renaming can be accomplished in router;
Blacklight provides more straightforward hooks for setting search params and "before" filters based on current controller's request. Hydra uses that to inject access control into the searches for gated discovery;
Helpers (View helpers) are now organized as modules that you can include in your helpers;
Justin reworked Hydra's helpers to work that way; Motivated by wanting to make it easier to override Helper methods; More explicit about what is being loaded and when.
how to do Blacklight patches
Create Jira tickets
Make pull requests
Attend IRC channel to answer questions.
What's the best way to contribute plugins?
Same issues as writing and sharing a gem. When should it be in a gem and when should it be in blacklight?
Needed hooks to make a gem possible probably should go in Blacklight;
If you're making a plugin and have to fight Blacklight in some way to make it happen, that's a candidate change to core.
Hydra Project
strategic directions
Up until Rails 3, the Hydra Rails 2 use of Blacklight:
Start with Blacklight - add to that edit views and assets controller to update, create, delete assets (Fedora objects);
Edit views are mitigated through Cataloger; Asset CRUD requests go through a single controller;
Rails 3:
With ActiveModel support if Rails 3. Now ActiveFedora objects behave more like ActiveModel objects; Using ActiveModel APIs.
Moved Hydra towards controller/views per model (create, edit, show, update, delete) methods
Blacklight's role is now confined to searching rather than also providing the application's broader MVC framework.
Makes the code more readable and is more "Rails-ish" and recognizable to Rails developers.
Facilitates workflows - multi-step interactions - by allowing each content type to have its own controller
Blacklight is now the "Solr controller"
release planning
Moving towards quarterly release; patch releases "weekly" if there are new patches that week;
Patch releases are just bug fixes; no new features;
Blacklight usage that blacklight committers should be aware of
For release planning, should we consider synchronizing releases?
Rails 3 timing made sense. If Hydra is putting a major release every quarter, perhaps coordination with Blacklight, we can prevent lags between Hydra/Blacklight major release.
Knowing in advance what changes are coming in the other platform makes it easier to react and keep your platform compatible.
Hydra Project's Pinch Points
please put specific pinch points here
Good things that have helped Hydra - putting helper behaviors in lib has really helped Hydra
If there are controllers that should be in its own module, let Blacklight know.
The other direction - pulling a controller out of a module - is also possible, though more difficult, but let Blacklight know when that's useful.
Overriding Views; Each function as gems, provide partials rather than overrides.
Easier to provide your own layouts without having to undo/override Blacklight partials; continually with each new head
The SAS makes it easier to modify as well.
In writing thorough documentation on writing a Hydra Head and customize, have covered some Blacklight documents. Will notify Blacklight folks for pickup / ownership…
Blacklight documentation is editable. Perhaps Hydra should add/edit/reference it.
Want to encourage the Hydra folks or other Blacklight adopters to let Blacklight know when something needed is missing; Or write it up and put in a pull request.
Blacklight project's action items: What configurations, hooks, API, documentation should be added?
None
Hydra project's action items: What in Hydra code should change to better leverage Blacklight?
Jessie and others: what in Hydra code should change
configurations?
helpers
(e.g. refactor code to use x approach instead of monkey patch for feature y)
Distinguish framework from heads:
Here's Hydra the framework
Here's the Hydra the MODS editor gem
Here's the Hydra gated discovery gem/plugin
Will discuss separation of MODS editor from core head in next committers call.
Hydra Solr configuration needs work and attention. Modifications are needed to use it in other contexts/environments.
Will schedule a joint Blacklight Hydra call like this as part of release planning