Version History#
v2.14.3 (2026-08-18)#
New Features#
Added estimated start time to the next visit event in script_queue.py. (OSW-350)
Documentation#
Update documentation build. (OSW-350)
Other Changes and Additions#
Added support for type checking with mypy. (OSW-350)
v2.14.2#
Updated conda recipe.
v2.14.1#
Updated conda recipe to ensure version number is generated correctly.
Updated unit tests to conform with latest version of salobj.
Updated
do_stopScriptsto send in progress acknowledgements and to increase the timeout to stop scripts.
v2.14.0#
Updated the ScriptQueue behavior to move scripts to the “done” list and start running the next script as soon as the current script state is done, instead of waiting for the process to be done.
v2.13.2#
In block_model, fix issue with remove_done_blocks.
In block_info, fix block_type when block is a test case.
In block_info, fix done() method.
v2.13.1#
Implement a work around on the test_add_block unittest for Scripts not reporting their initial state.
v2.13.0#
Add support for block functionality.
v2.12.4#
Reformat code with black.
Update the version of ts-conda-build to 0.4 in the conda recipe.
v2.12.3#
Update ts_pre_commit_config to add ruff.
Add ts-xml as a test and runtime dependency.
In
tests/test_script_queue.py, update unit tests to work with kafka version of salobj.Import enumerations from ts-xml instead of ts-idl.
Update
.gitignorewith latest ts-pre-commit-config setup.Update all callbacks to be asynchronous.
v2.12.2#
QueueModel: make_script_metadata_callbackto eliminate warnings from salobj.Update to use ts_pre_commit_conf.
Jenkinsfile: use new shared library.
Requirements:
ts_idl 3.5
ts_salobj 7.1
IDL files for ScriptQueue and Script built from ts_xml 12
v2.12.1#
Make the code compatible with the Kafka version of ts_salobj, while preserving compatibility with the DDS version.
pre-commit: update black to 23.1.0, isort to 5.12.0, mypy to 1.0.0, and pre-commit-hooks to v4.4.0.
Jenkinsfile: do not run as root.
Requirements:
ts_idl 3.5
ts_salobj 7.1
IDL files for ScriptQueue and Script built from ts_xml 12
v2.12.0#
Use the new
Script.ScriptState.CONFIGURE_FAILEDenum value and renameScriptQueue.ScriptProcessState.CONFIGUREFAILEDtoCONFIGURE_FAILED. This requires ts_idl 4.2.Modernize the CI Jenkinsfile.
Requirements:
ts_idl 4.2
ts_salobj 7.1
IDL files for ScriptQueue and Script built from ts_xml 12
v2.11.0#
Rename command-line scripts to remove “.py” suffix.
Update for ts_sal 7 and ts_xml 12, both of which are required:
Rename existing “salIndex” fields to “scriptSalIndex”.
Rename “{name}ID” fields to “salIndex” (RFC-849).
ScriptQueue: change start to call super().start() first. This requires ts_salobj 7.1.ScriptInfo: fix thestartedproperty, which was always None.test_script_queue.py: make a unit test more robust.Build with pyproject.toml.
Requirements:
ts_idl 3.5
ts_salobj 7.1
IDL files for ScriptQueue and Script built from ts_xml 12
v2.10.0#
Update for ts_salobj v7, which is required. This also requires ts_xml 11.
Use ts_utils and pytest-black.
Fix bin/command_script_queue.py
Requirements:
ts_idl 3.5
ts_salobj 7
IDL files for ScriptQueue and Script built from ts_xml 11
v2.9.0#
Use new
lsst.ts.idl.enums.ScriptQueue.SalIndexenum. This requires ts_idl 3.5, which is required. As a result, therun_script_queue.pyandcommand_script_queue.pybin scripts now require the index to be 1 or 2. However, it is still possible to construct aScriptQueueCSC 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#
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 10topytestcommand.
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#
ScriptInfo.terminateis now asynchronous, and it now waits for the process to be created, if necessary (with a time limit).QueueModel.terminate_allis now asynchronous, and it kills any zombie processes it finds (though these should be rare).QueueModel.wait_terminate_allis gone; callQueueModel.terminate_allinstead.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#
Update
test_script_queueto support building conda package: * Addcheck_bin_script_initial_stateutility to test scriptqueue bin script. * Refactortest_bin_script_stateto usecheck_bin_script_initial_state. * Skiptest_bin_script_stateifts_standardscriptsorts_externalscriptsfail to import. * Addtest_bin_script_state_with_test_scriptsto runcheck_bin_script_initial_statewith 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#
Use
unittest.IsolatedAsyncioTestCaseinstead of the abandoned asynctest package.Format the code with black 20.8b1.
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#
ScriptQueue: setversionclass attribute, which is used to set thecscVersionfield of thesoftwareVersionsevent.Modernize
doc/conf.pyfor 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#
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#
Update for ts_salobj 6.1, which is required.
Add support for the
--statecommand-line argument inrun_script_queue.py. This requires ts_salobj 6.1.Add
initial_stateconstructor argument toScriptQueue.Use
lsst.ts.salobj.set_random_lsst_dds_partition_prefixinstead oflsst.ts.salobj.set_random_lsst_dds_domain. This requires ts_salobj 6.Update
Jenkinsfileto use Docker imagelsstts/develop-env:developinstead oflsstts/salobj:develop. This allows tests to use the ts_standardscripts and ts_externalscripts packages.Update to use
pre-committo maintainflake8andblackcompliance.
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#
Stop setting
tel_max_historywhen creatinglsst.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.pyasynctest
v2.7.1#
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.pyasynctest
v2.7.0#
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.pyasynctest
v2.6.4#
Make the
move,requeueandshowScriptcommands 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.pyasynctest
v2.6.3#
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.pyasynctest
v2.6.2#
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.pyasynctest
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.
Add backward compatibility between salobj 5 and 6.
Add Jenkinsfile for CI job.
In test_utils.py separate testing
get_scripts_dirfrom standard and external scripts. Since packages are optional, skip tests if packages cannot be imported.
v2.6.0#
Replaced
bin/request_script.pywithbin/command_script_queue.py, which is based onlsst.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.pyasynctest
v2.5.2#
Fixed warnings in
tests/test_queue_model.pycaused 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.pyasynctest
v2.5.1#
Add
tests/test_black.pyto verify that files are formatted with black. This requires ts_salobj 5.11 or later.Make
ui.RequestModelcompatible 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.ymlto removesudo: falseto 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.pyasynctest
v2.5.0#
Major changes:
Output the
nextVisitandnextVisitCanceledevents.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.pyasynctest
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.pyasynctest
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.pyasynctest
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