Version History

v2.9.0

Changes:

  • Use new lsst.ts.idl.enums.ScriptQueue.SalIndex enum. This requires ts_idl 3.5, which is required. As a result, the run_script_queue.py and command_script_queue.py bin scripts now require the index to be 1 or 2. However, it is still possible to construct a ScriptQueue CSC instance with any other valid SAL index, and this is done by some unit tests.

  • Modernize unit tests to use bare asserts.

  • Make timeouts in unit tests more uniform.

  • Test black formatting with pytest-black, instead of a dedicated unit test.

  • Remove if __name__ == "__main__": from bin scripts in tests/data; it was never needed.

Requirements:

  • ts_idl 3.5

  • ts_salobj 6.1

  • ts_xml 6.1 (older versions might work but have not been tested)

  • IDL files for ScriptQueue and Script generated with ts_sal >5

v2.8.6

Changes:

  • In tests/test_queue_model, stop adding stream handlers to the test class logger. This was causing duplicated messages to appear in the unit tests as more stream handlers were added at every test. If debugging unit tests, add the option --log-cli-level 10 to pytest command.

Requirements:

  • ts_idl 2

  • ts_salobj 6.1

  • ts_xml 6.1 (older versions might work but have not been tested)

  • IDL files for ScriptQueue and Script generated with ts_sal >5

v2.8.5

Changes:

  • ScriptInfo.terminate is now asynchronous, and it now waits for the process to be created, if necessary (with a time limit).

  • QueueModel.terminate_all is now asynchronous, and it kills any zombie processes it finds (though these should be rare).

  • QueueModel.wait_terminate_all is gone; call QueueModel.terminate_all instead.

  • These changes fix DM-31234: unit tests leave some processes running.

Requirements:

  • ts_idl 2

  • ts_salobj 6.1

  • ts_xml 6.1 (older versions might work but have not been tested)

  • IDL files for Test, Script, and LOVE generated by ts_sal 5

  • SALPY_Test generated by ts_sal 5 or later

v2.8.4

Changes:

  • Update test_script_queue to support building conda package: * Add check_bin_script_initial_state utility to test scriptqueue bin script. * Refactor test_bin_script_state to use check_bin_script_initial_state. * Skip test_bin_script_state if ts_standardscripts or ts_externalscripts fail to import. * Add test_bin_script_state_with_test_scripts to run check_bin_script_initial_state with the test scripts provided in the package.

  • Add setup.py to allow building conda package.

  • Update conda recipe.

Requirements:

  • ts_idl 2

  • ts_salobj 6.1

  • ts_xml 6.1 (older versions might work but have not been tested)

  • IDL files for Test, Script, and LOVE generated by ts_sal 5

  • SALPY_Test generated by ts_sal 5 or later

v2.8.3

Changes:

Requirements:

  • ts_idl 2

  • ts_salobj 6.1

  • ts_xml 6.1 (older versions might work but have not been tested)

  • IDL files for Test, Script, and LOVE generated by ts_sal 5

  • SALPY_Test generated by ts_sal 5 or later

v2.8.2

Changes:

  • ScriptQueue: set version class attribute, which is used to set the cscVersion field of the softwareVersions event.

  • Modernize doc/conf.py for documenteer 0.6.

Requirements:

  • ts_idl 2

  • ts_salobj 6.1

  • ts_xml 6.1 (older versions might work but have not been tested)

  • IDL files for Test, Script, and LOVE generated by ts_sal 5

  • SALPY_Test generated by ts_sal 5 or later

v2.8.1

Changes:

  • Removed a small bit of ts_salobj 5 compatibility code.

  • Add a conda Jenkins build.

Requirements:

  • ts_idl 2

  • ts_salobj 6.1

  • ts_xml 6.1 (older versions might work but have not been tested)

  • IDL files for Test, Script, and LOVE generated by ts_sal 5

  • SALPY_Test generated by ts_sal 5 or later

v2.8.0

Changes:

  • Update for ts_salobj 6.1, which is required.

  • Add support for the --state command-line argument in run_script_queue.py. This requires ts_salobj 6.1.

  • Add initial_state constructor argument to ScriptQueue.

  • Use lsst.ts.salobj.set_random_lsst_dds_partition_prefix instead of lsst.ts.salobj.set_random_lsst_dds_domain. This requires ts_salobj 6.

  • Update Jenkinsfile to use Docker image lsstts/develop-env:develop instead of lsstts/salobj:develop. This allows tests to use the ts_standardscripts and ts_externalscripts packages.

  • Update to use pre-commit to maintain flake8 and black compliance.

Requirements:

  • ts_idl 2

  • ts_salobj 6.1

  • ts_xml 6.1 (older versions might work but have not been tested)

  • IDL files for Test, Script, and LOVE generated by ts_sal 5

  • SALPY_Test generated by ts_sal 5 or later

v2.7.2

Changes:

  • Stop setting tel_max_history when creating lsst.ts.salobj.Remotes. I recommend not running this version with ts_salobj 5; it may work, but is risky.

Requirements:

  • ts_salobj 6

  • ts_idl 2

  • ts_xml 4.7

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

  • asynctest

v2.7.1

Changes:

  • Enhance the ScriptQueue commander by adding a heartbeat monitor for the currently running script.

Requirements:

  • ts_salobj 5.17 / 6

  • ts_idl 1 / 2

  • ts_xml 4.7

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

  • asynctest

v2.7.0

Changes:

  • Overhaul the documentation.

  • Add all finished scripts to the history, even if they failed.

Requirements:

  • ts_salobj 5.17

  • ts_idl 1

  • ts_xml 4.7

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

  • asynctest

v2.6.4

Changes:

  • Make the move, requeue and showScript commands fail without logging an exception if a specified script does not exist.

Requirements:

  • ts_salobj 5.17

  • ts_idl 1

  • ts_xml 4.7

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

  • asynctest

v2.6.3

Changes:

  • Enhance the ScriptQueue commander to add options for the “add” command and to accept a default log level for scripts as a command-line argument.

Requirements:

  • ts_salobj 5.17

  • ts_idl 1

  • ts_xml 4.7

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

  • asynctest

v2.6.2

Changes:

  • Fix the stopScripts command in ScriptQueueCommander.

  • Update the pre-commit hook to block the commit if any code is not formatted with black.

  • Update SConstruct so it does not need configuration and remove cfg file from ups.

Requirements:

  • ts_salobj 5.17

  • ts_idl 1

  • ts_xml 4.7

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

  • asynctest

v2.6.1

Salobj 6 changed the name of the SalInfo.makeAckCmd method to SalInfo.make_ackcmd. Add a check to make sure SalInfo has a make_ackcmd attribute and use makeAckCmd if not.

Changes:

  • Add backward compatibility between salobj 5 and 6.

  • Add Jenkinsfile for CI job.

  • In test_utils.py separate testing get_scripts_dir from standard and external scripts. Since packages are optional, skip tests if packages cannot be imported.

v2.6.0

Changes:

  • Replaced bin/request_script.py with bin/command_script_queue.py, which is based on lsst.ts.salobj.CscCommander. This change requires ts_sal v5.17.0 or later.

Requirements:

  • ts_salobj 5.17

  • ts_idl 1

  • ts_xml 4.7

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

  • asynctest

v2.5.2

Changes:

  • Fixed warnings in tests/test_queue_model.py caused by not allowing all queued scripts to finish.

Requirements:

  • ts_salobj 5.11

  • ts_idl 1

  • ts_xml 4.7

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

  • asynctest

v2.5.1

Changes:

  • Add tests/test_black.py to verify that files are formatted with black. This requires ts_salobj 5.11 or later.

  • Make ui.RequestModel compatible with ts_salobj 5.12.

  • Make time limits in unit tests simpler and more generous. This makes the tests simpler and should help tests pass on machines with limited resources.

  • Fix flake8 warnings about f strings with no {}.

  • Update .travis.yml to remove sudo: false to github travis checks pass once again.

Requirements:

  • ts_salobj 5.11

  • ts_idl 1

  • ts_xml 4.7

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

  • asynctest

v2.5.0

Major changes:

  • Output the nextVisit and nextVisitCanceled events.

  • Code formatted by black, with a pre-commit hook to enforce this. See the README file for configuration instructions.

Requirements:

  • ts_salobj 5.4

  • ts_idl 1

  • ts_xml 4.7

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

  • asynctest

v2.4.0

Update for ts_salobj v5. Allow specifying log level and checkpoints when adding a script. Modernize asyncio usage for python 3.7.

Requirements:

  • ts_salobj v5

  • ts_idl v0.4

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

  • asynctest

v2.3.0

Update to run unit tests with asynctest

Requirements:

  • ts_salobj v4.3

  • ts_idl

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

  • asynctest

v2.2.2

Fix the showSchema command.

Requirements:

  • ts_salobj v4.3

  • ts_idl

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

v2.2.1

Improve timeouts in tests for robustness. This was necessitated by DM-20259 changes to ts_salobj.

Requirements:

  • ts_salobj v4.3

  • ts_idl

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

v2.2.0

Move BaseScript and TestScript to ts_salobj to break a circular dependency.

Requirements:

  • ts_salobj v4.3

  • ts_idl

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

v2.1.0

Add run_one_script.py bin script to easily run a single script, e.g. for development.

Also modify the script queue to get the default locations for standard and external scripts using get_scripts_dir functions in ts_standardscripts and ts_externalscripts.

Requirements:

  • ts_salobj v4.3

  • ts_idl

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py

v2.0.0

Use OpenSplice dds instead of SALPY libraries and use a schema to validate configuration and specify default values.

See https://community.lsst.org/t/changes-to-sal-script-schemas-and-dds/3709 for more information about what has changed.

Requirements:

  • ts_salobj v4.3

  • ts_idl

  • IDL files for Script and ScriptQueue, e.g. built with make_idl_files.py