$count, FireWorks 1.9.7 requires MongoDB 3.4+; FireWorks change notes

I found that FireWorks 1.9.7 requires MongoDB 3.4+ to avoid an error message about $count.

That’s fair considering MongoDB 3.2 and 3.4 are EOL, but it isn’t documented. It caused a hiccup for our team because our internal MongoDB was installed via apt-get install mongo on Debian, which turns out to be an old package that installs release MongoDB 3.2.11 from Nov. 2016.

Caveat developers: Use the official instructions to install MongoDB, not the Debian mongo package.

Note: It’d help if the FireWorks documented its minimum-supported MongoDB version.

Draft release notes for FireWorks 1.9.7

I took a crack at summarizing the commit logs. The commit messages are not obvious, esp. from a user’s viewpoint, and nothing suggested a change in MongoDB version or use of $count.

  • Added gpus-per-task option to slurm template.
  • Use Thread.is_alive() in favour of .isAlive() for Python 3.9 compatibility.
  • Bug fix: Declare FileTransferTask’s optional parameter ignore_errors.
    Bug fix for #416 (default multiprocessing change in Python 3.8 on macOS): Not spawning a webserver process fixes * this.
  • Feature: Find orphaned Fireworks and remove them from the db.
    Feature: Query for Fireworks that match fw_query within workflows that match wf_query. Example: get an overview on * all FIZZLED Fireworks in a particular workflow.
  • Feature: Joint queries on Fireworks and Workflows from command line
    Feature: Optional JSON-schema validation of serializable FireWorks objects. See https://github.com/ikondov/* fireworks_schema
  • Bug fix: Fix for date sorting issues when both strings and dates live within database in date fields.
    Feature: Added enhanced display options to print detailed Fireworks information in some maintenance commands (* detect_lostruns, detect_unreserved).
  • Feature: The lpad command line can now do a joint query on workflows and Fireworks.
  • Bug fix: The parameter “dest” is optional for FileTransferTask.
  • Minimal set of overriden igraph defaults for DAGFlow graph visualization.
  • Removed igraph.plot default paraemeters from DAGFlow.plot_wf() where possible.
  • Removed redundant import and cleaned code style
  • New option for graph visualization labels and colors.
  • Small extension to DAGflow, allowing for quick inline plotting of Workflows.
  • Added DAGFlow.plot_wf().
  • Added LaunchPad.delete_wf().
  • Reorganized DAGFlow class.
  • The lpad check_wflow command checks a workflow but doesn’t graph it.