Skip to content

Version 1.12.2

Latest
Compare
Choose a tag to compare
@bgunnar5 bgunnar5 released this 28 Oct 21:33
edbfe9b

[1.12.2]

Added

  • Conflict handler option to the dict_deep_merge function in utils.py
  • Ability to add module-specific pytest fixtures
  • Added fixtures specifically for testing status functionality
  • Added tests for reading and writing status files, and status conflict handling
  • Added tests for the dict_deep_merge function
  • Pytest-mock as a dependency for the test suite (necessary for using mocks and fixtures in the same test)
  • New github action test to make sure target branch has been merged into the source first, so we know histories are ok
  • Check in the status commands to make sure we're not pulling statuses from nested workspaces
  • Added setuptools as a requirement for python 3.12 to recognize the pkg_resources library
  • Patch to celery results backend to stop ChordErrors being raised and breaking workflows when a single task fails
  • New step return code $(MERLIN_RAISE_ERROR) to force an error to be raised by a task (mainly for testing)
    • Added description of this to docs
  • New test to ensure a single failed task won't break a workflow
  • Several new unit tests for the following subdirectories:
    • merlin/common/
    • merlin/config/
    • merlin/examples/
    • merlin/server/
  • Context managers for the conftest.py file to ensure safe spin up and shutdown of fixtures
    • RedisServerManager: context to help with starting/stopping a redis server for tests
    • CeleryWorkersManager: context to help with starting/stopping workers for tests
  • Ability to copy and print the Config object from merlin/config/__init__.py
  • Equality method to the ContainerFormatConfig and ContainerConfig objects from merlin/server/server_util.py

Changed

  • merlin info is cleaner and gives python package info
  • merlin version now prints with every banner message
  • Applying filters for merlin detailed-status will now log debug statements instead of warnings
  • Modified the unit tests for the merlin status command to use pytest rather than unittest
  • Added fixtures for merlin status tests that copy the workspace to a temporary directory so you can see exactly what's run in a test
  • Batch block and workers now allow for variables to be used in node settings
  • Task id is now the path to the directory
  • Split the start_server and config_server functions of merlin/server/server_commands.py into multiple functions to make testing easier
  • Split the create_server_config function of merlin/server/server_config.py into two functions to make testing easier
  • Combined set_snapshot_seconds and set_snapshot_changes methods of RedisConfig into one method set_snapshot

Fixed

  • Bugfix for output of merlin example openfoam_wf_singularity
  • A bug with the CHANGELOG detection test when the target branch isn't in the ci runner history
  • Link to Merlin banner in readme
  • Issue with escape sequences in ascii art (caught by python 3.12)
  • Bug where Flux wasn't identifying total number of nodes on an allocation
    • Not supporting Flux versions below 0.17.0

@bgunnar5 @lucpeterson