Skip to content

Trajectory for Future Development

Brian "Moses" Hall edited this page Nov 4, 2021 · 1 revision

In roughly descending order of urgency, these are areas for improvement within the scope of RSVP development. (It does not attempt to capture Michigan LIT's technology agenda or priorities).

(Note: please observe backwards compatibility with objects stored in existing status.json files.)

  • Use a database instead of status.json. This would ease development of a web-based admin/tracking tool enormously.
  • Create admin/tracking tool to at least allow querying of status and history across all shipments.
    • The files generated by bin/shipment_mover.sh might be a suitable entry point for easing into this.
  • Rewrite bin/shipment_mover.sh in Ruby. Use of md5sum is a Linux-ism and should be replaced with a built-in. Error reporting is nonexistent.
  • The JHOVE class has error deduplication capabilities used in bin/jhove that are not used in the Postflight stage. Using them properly would cut down on error verbosity for shipments that have a lot of them. Beware of the Error object's #path field when dealing with file ranges (see below).
  • Some of Shipment's class methods having to do with directory contents could be spun off into a utility class.
  • TestShipment/DLXSTestShipment should be some sort of module rather than Shipment subclasses. The only thing they bring to the party is creation of fake shipments, and (crucially, as it turns out) the ability to get objids in order of creation so tests can make predictions about them. Note Shipment lexicographic order vs TestShipment#ordered_objids.
  • Add a command-line flag to bin/process that starts an interactive bin/query-style session when errors are detected. A useful refactoring exercise that would move most of bin/query into lib/query_tool.rb.
  • The ImageFile structure should be promoted to a full-fledged class since doing so would likely reduce duplicative code (specifically, code that manipulates filesystem paths).
  • Error objects should be able to report file/path sequences in some manner (provided it does not blow everything up).
Clone this wiki locally