Logistics
Note: please consider attending and separately registering for LDCX on the preceding Monday through Wednesday.
Goals
- Focused face to face time for Hydra developer community
- Community code exchange
- Move community development goals forward
Dev Congress Rough Schedule
Thursday AM
8:30 am to 9 am: Coffee and introductions at the Betchel Center
9 am-10:30 am: Start of Conference
Fast Introductions
One Minute Curated Session Pitches
- Adding File Upload to Valkyrie, Trey Pendragon
- Putting Active Encode into Hydra Derivatives, Chris Colvard (Deactivated)
- Composeable Jobs, Adam Wead
- Organization of Documentation Working Group, specifically: Documenting Gated Discovery in Hyrax, Documenting overloading of Roles Term, Andrew Myers
- Making it easier to add attributes to your models (can we collapse Lynette's Tutorial, can we make a generator, etc?), Facilitator Needed
- Creating a ContentDM to Hyrax/Hyku Migration Gem, Braden
- Implement Display Sets Lynette Rayle
Plenary Topics (10 minutes max per topic, if further discussion is needed a group can be spun off)
- Any opposition on the promotion of Question Authority to Project Hydra from Labs
- Any reservations to the merging of the Linked Data branch merging into Question Authority
- Merging the Actors refactoring PR
- Any other long standing PRs we need to consider during this conference
- Do we want a standardized rubocop profile
- If we had commitment from our administrators what would a group that works just on hydra looks like (core group/sprints suggestion)
- Plugin working group report and discussion/improvement of the white paper
- Report on Display Sets Working Group and feedback – Requirements - Display Sets
- Any spots to call out for refactoring
- Reform
- External URIs in Fedora - Handle asynchronous request using action cable
- Refactor our approach to Can Can abilities
- Different Auth Library instead of cancan
- Can we say we are on rails 4?
- Additional discussion items or topics
- Better on ramp for new developers - website
- Redoing the website
10:30 AM to 11:40 AM: Group Work
11:40 am to Noon: Groups report on morning work
Thursday PM
1 pm to 5 pm: Continuation of Group Topics
5:15 PM: Dinner and Drinks At Lathrop Courtyard
Potential Topics
Development Ideas
- Implement a new ordering approach for PCDM members ( Esmé Cowles). One of the pain points of implementing PCDM is poor performance in Fedora, especially around ordering large numbers of members. Hopefully taking input from discussions at LDCX, implement an alternate to the current linked-list approach.
- Hydra Plugins stuff ( Andrew Myers)
- Guidelines - this is mainly documentation. For each guideline, we'd like to provide a rationale as to why we think the guideline is needed. Also seeking feedback on structure and readability of the document, as it's supposed to serve as a reference for plugin developers. It would be great if we could get enough feedback and +1 to release v1.0 of the guidelines, if we haven't yet already.
- Pluginizing GeoConcerns - we've made some headway here already. If there's more to do at the end of March, we can look at it. If we're already done, then it can serve as a good case study.
- Pluginizing Google Analytics - less progress on this so far, so there may still be some work to do by end of March.
- Preservation Event Plugin - this is what we've been working on at WGBH and IU. Much of the functionality is there, but have yet to go back and ensure it follows the guidelines.
- Refactor Hyrax for better integration points - One of the things we hope to come out of our pluginizing, is identifying some interfaces in the stack that could be refactored to become better integration points for plugins. For instance...
- Derivative generation - when pluginizing GeoConcerns, there is a lot of logic around customizing how derivatives are created. We highlighted some interfaces within the stack that could provide better integration points.
- Asynchronous storage ( Randall Floyd, Daniel Pierce, Nianli Ma, and/or Andrew Myers)
- This is an effort by WGBH and IU to use Fedora's APIx framework to create a well-defined interface for communicating with tiered storage systems.
- Randall Floyd, Daniel Pierce, and Nianli Ma probably have a better idea of how the dev work re: APIx can be broken down into doable chunks.
- Hyrax (and lower in the stack) will also need to be refactored in places to provide UI for asynchronous interactions. Of course this depends on the asyncrhonous storage proxy api (see above) being sufficiently stable.
- User notifications via ActionCable (instead of long polling) justin
- Rubocop rules - Make a hydra-wide Rubocop ruleset and utility code to install and keep it up to date. tamsin woo
- We have had problems with failing builds when Rubocop is updated, having a basic cop config shared across the project would prevent these kinds of breakdowns at the cost of some maintenance overhead.
- Implementation of Display Sets - I am hoping that the working group will have requirements and mockups complete in time for LDCX such that implementation could begin as part of the developers congress. ( Lynette Rayle)
- Look at Valkyrie (https://github.com/tpendragon/Valkyrie), explore building a buffer layer between our frontend engine (Hyrax) and data persistence. ( Trey Pendragon)
- Try using Reform instead of our own form objects. ( Trey Pendragon) - do valkyrie instead at this congress
- Push model validations into our forms. ( Trey Pendragon) - do valkyrie instead at this congress
- Identify places to refactor that a group could come back to. ( Trey Pendragon)
- Document best practices around actors, provide an easy-to-find place to inject your own actor. ( Trey Pendragon)
- Organize and charter a group to tackle refactoring and other feature-less sprints on core gems ( Trey Pendragon)
- Document (maybe a tutorial) how gated discovery works in Hyrax, think on how to simplify. ( Trey Pendragon)
- Architecture solution for jobs in Hydra/CC/Sufia to allow "composeable" jobs. Currently, jobs are defined in the gem and aren't extendable or mixable in any way so you have to override the entire class to make small changes. Default jobs could be in the gem, but the consuming application could define its own by reusing the existing defaults and extending/mixing where needed. ( Adam Wead)
- Write some more shared specs for composable objects in Hyrax (See https://github.com/projecthydra-labs/hyrax/blob/master/lib/hyrax/specs/shared_specs/derivative_service.rb) ( Trey Pendragon)
- Start mainstreaming our nascent technical onboarding documentation and addressing unresolved issues. (Suggested by Michael Joseph Giarlo; maybe Esmé Cowles is game?)
- Make it easier to add new properties to your model. ( Trey Pendragon)
- Dropbox has deprecated its v1 API. BrowseEverything will need to support it, but there are problems https://github.com/projecthydra/browse-everything/issues/159 ( Adam Wead)
Development Ideas, Prioritized (for later use, pls do not edit)