# Changelog All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). ## Unreleased - Implements support for PST parameter flow through mode. - Updates the generation of the PST beams to have sequential IDs (based on the max no of beams neeeded per scan) rather than relying on the target info. - Added check for unsuported PST mode - Removed setting of explicit defaults in PSTBeamConfiguration which are not part of the SB Definition (now uses CDM default values) - Write Low station aperture ID with 00 suffix if the full station is being used - Fix workaround of SDP receptors being set to aperture format - Set SDP EB max_scan to the total scan duration of the full sbd ## 18.0.0 - Deduplicate and reorganise workarounds and utils from `ska-low` repo into top level `engineering` module. Update RtD with info on collaborating with AIV and commissioning. - Fix workaround of `csp.lowcbf.timing_beams.fsp.firmware` being set to an empty string by setting this initially in `pdm_transforms` * [BREAKING] Update to ODA v18.0.0 which removes the ODA API and the ``oda_helper``. The ``execution_block`` module in ska-oso-scripting now offers the same functionality. Update imports from ``from ska-oso-scripting import oda_helper`` to ``from ska_oso_scripting.api import execution_block`` ## 17.4.2 - [BUGFIX] Disable subarray quality monitor reconfiguration in observing script until QA metric names are finalised. ## 17.4.1 - [BUGFIX] derived expression for QA threshold reconfiguration was inverted. - [BUGFIX] QA threshold reconfiguration is now skipped if QA thresholds are not in the SBD or OSD. ## 17.4.0 - Implements ADR-111 so that the scan command is issued only once the system indicates it is ready, or the operator explicitly opts to proceed. This behaviour is disabled by default but can be controlled via the ``OET_WAIT_FOR_QA_READY`` environment variable (see the documentation for details). For standard OET-driven observations, the behaviour is set automatically by the OET. - Adds MCCS early scan behaviour, where Scan() command is invoked on MCCS Subarray Leaf Node without waiting for QA. - Observing scripts reconfigure QA thresholds at observation start, using defaults in OSD and override values in SB ## 17.3.0 - Reorganised and refactored BDD test infrastructure to faciliate code reuse. - Added TAN projection with AltAz alignment for 5-point scan targets so that the initial configure is consistent with follow-on offset configures. - Update to ODA v17.5.0 and remove check on old root level `scan_sequence` ## 17.2.0 - Move all ska-schemas dependencies to ska-tmc-cdm - Update to ODA v17.3.0 - Added support for pointing offsets in a 5-point scan. - Removed references to the SKUID Service replaced with direct calls to mint_skuid ## 17.1.0 - Temporarily pin to SKUID 5.1.0 until SKB-1258 is resolved - Updated to use CDM v14.9.0 and direcly reference ska-schemas v1.35.0 - Updated to support multiple CSP configurations for SKA Mid - Local copy of SDP script TMData for unit tests to avoid network calls - Mock SkuidClient.fetch_scan_id failure instead of network call to invalid url - SonarQube for static analysis of code quality - Added support for TLECoordinates in targets - [BUGFIX]: Resolve circular import seen when importing directly from pdm_transforms (BTN-3166) - Added support for Position-Velocity-Time (PVT) scan trajectories. Default SKA-Mid configure schema is now `ska-tmc-configure/6.1` to match. ## 17.0.0 - [BREAKING] Update to ODA v17.0.1 and SKUID v5.1.0 with ADR-129 format SKUIDs ## 16.2.0-rc.2 - Observing scripts set EB status appropriately when execution is finished. ## 16.2.0-rc.1 - Updates to CDM v14.8.1, PDM 27.1.1, SKUID 4.1.0, and ODA v15.3.0-rc3 - Removes private `pdm_transforms` function that supported deprecated CDM Target objects ## 16.1.0 - Updates to PDM v27.0.0 and ODA v15.1.0 - Major refactoring of event handling, moving to an Iterator-based implementation with automatic subscribing and unsubscribing of clients. Introduces TimeoutIterator, MergedIterator, and PubSubIterator in preparation for ADR-111. ## 16.0.0 - Improves Tango event handling so that all event processing is done off the OmniORB thread. - Improves Tango event handling so that event subscribers are only notified for genuine attribute value changes. - Improves Tango event handling so that Tango events indicating an error are not propagated to the subscriber. - Adds support for subscribing to Tango change events from multiple attributes. - **BREAKING** Major reorganisation of package structure to better separate public API from internal implementation: - Public interfaces moved to `ska_oso_scripting.api` package. Functions previously imported from `ska_oso_scripting.functions`, `ska_oso_scripting.functions.devicecontrol`, etc. should now be imported from `ska_oso_scripting.api`. - Internal implementation grouped under `ska_oso_scripting.core` by concern: - `core.execution` - command execution orchestration - `core.monitoring` - device state observation and waiting - `core.tango` - Tango device client infrastructure - `functions` renamed to `api.functional` - `events` renamed to `topics` - `pdm_transforms` moved to top-level package - Renamed `TangoExecutor` class to `TangoClient` for clarity - Centralised exception definitions in top-level `exceptions.py` module ## 15.2.1 - [BUGFIX] Updates to ODA v14.0.3 to pull in fix for pickleable ODA exceptions ## 15.2.0 - Update to ODA v14.0.0, PDM v26.0.0 and CDM v14.3.0 ## 15.1.1 - Fixed default value for `SDP_SCRIPT_TMDATA` when the environment variable is not defined ## 15.1.0 - Update ODA to v13.1.1 and PDM to v25.0.0 ## 15.0.0 - [BREAKING] Updated PST Scan Configuration to v3.0 - Added support for passing script parameters to SDP based on SBD's `sdp_configurations` key ## 14.1.3 - Bump ODA to v12.1.1 and PDM to v24.0.0 to fix compatibility issues (PDM breaking changes are related to Proposal and do not affect scripting) ## 14.1.2 - Fixed bug where fsp_ids were not being correctly set for Band 5b down-converted observations ## 14.1.1 - Fixed bug where telstate parameters were being unnecessarily populated for single scan observations in `ska-tmc-configure` payload ## 14.1.0 - Updated to ODA v12.0.0 - Introduced `ska_oso_scripting.functions.engineering` package for holding code adopted from AIV. - Added `ska_oso_scripting.functions.engineering.low_aiv` module with reset subarray function and dependencies. - Added `reset_subarray.py` script, which can be used to reset an SKA-Low subarray and devices downstream back to EMPTY. - Fixed SKB-1038 - `max_scan_length` in PST scan configuration set to the duration of the scan ## 14.0.0 - Updated to `ska-tmc-configure/5.0` - Updating to PDM v23.0.0 and ODA v11.8.0 - Added support for MID Band 5b Observations, down-converted to Band 1 - Removed population of deprecated `target` argument from `ska-tmc-configure/5.0` - Removed support for deprecated `EquatorialCoordinates`, `HorizontalCoordinates` and `SolarSystemObjects` Coordinate classes - Fixed SKB-1058 - shifted low SPW central frequency down by half the width of a fine channel. ## 13.0.0 - Updated setting of `vis-receive` script version - this is now populated by querying the local SDPControllerNode version and finding the highest supported version corresponding version of the script - Updated to `ska-tmc-assignresources/2.2` and `ska-low-tmc-assignresources/4.1` (`ska-sdp-assignres/1.0`) - Make the SDP AssignResources payload 1-based rather than 0-based (e.g. vis1 rather than vis0) - Updated to PDM v21.0.0 and ODA v11.5.1 ## 12.0.0 - [BREAKING] Update to PDM v19.0.0, which uses the scan sequence defined on the dish_allocation/mccs_allocation. SBDefinitions with scan_sequences defined at the root level will now result in a warning being raised and no scans performed. - Add support for multiple subarray beams for Low observations - Removed the disable_pointing_groups from the workarounds - Upgrades dependencies to pytango v10. - Increased DEFAULT_TIMEOUT_FOR_ASSIGN_RESOURCE_CMD to 90s ## 11.4.0 - Updated to ska-oso-tmcsim v3.1.0, PDM to v18.0.0 and ODA to v8.0.2 - Added population of `telmodel_source_uris` and `telmodel_key` in the `sdp.processing_blocks.parameters` dictionary in the AssignResources payload from local TMC CSPLeafNode - Updated the docker build and base images to `ska-build-python:0.2.0` and `ska-tango-images-tango-python:0.2.1` respectively - Increased the default command timeouts: AssignResources from 30 to 60 seconds, Configure from 30 to 120 seconds and Scan from 5 to 20 seconds - Removed deprecated `convert_sdp` module - Remove deprecated code that handles the old CSP-cbf fields - Fix bug in script when OET passes subarray_id as string ## 11.3.0 - Update telescope start-up script with new TRLS - Removed `dry_run` from processing block parameters dictionary - Added support for script runtime arguments - Updated `subarray_id` to be a kwarg rather than an a positional argument in `allocate_and_observe_sb.py` script ## 11.2.0 - Updated to CDM v12.9.0 - Updated to generate ska-tmc-configure/4.2 - Disabled disable_pointing_groups workaround: target coordinates are now declared in receptor pointing groups by default - Corrected error in telstate `target_fqdn` - Updated pointing-offset script to version 1.0.0 ## 11.1.0 - Updated CDM to v12.8.0 (fix midcbf.receptors bug - SKB-851) - Updated to use new ADR-9 compliant TRLs for both MID and LOW - Updated `create_sdpconfiguration_centralnode()` to use vis-receive version 5.1.1 - Updated `create_sdpconfiguration_centralnode()` to insert telstate dictionary in processing block parameters - Added support for LOW ITF and station mapping - Fixed bug that hardcoded the receptors and receptor_weights in the generated PSTScanConfiguration for LOW tied array observations ## 11.0.0 - Remove use of `number_of_channels` from the MCCS part of the SBD, instead get the information from the CSP configuration - Added support for GalacticCoordinates, ICRSCoordinates, AltAzCoordinates and SpecialCoordinates in support of ADR-63 - Added support for LOW Galactic tied array observations - Added support for LOW observations with multiple spectral windows - Added a workaround to temporarily disable sending pointing groups to TMC as these are not yet supported - Added partial support for Pointed Mosaic observations - Moved event topics to be emitted by scripting library functions during execution from OET to the scripting library - Added PyTango and PyPubSub dependencies - Removed OET dependency ## 10.4.0 - Fixed issue where `scripts` folder was not included in the `ska-oso-scripting` wheel - Created a custom Exception class (`SkuidRuntimeError`) for SKUID related exceptions raised by `ska-oso-scripting` functions - Added `abort.py` script to `scripts` folder as a static script - Added `MANIFEST.skao.int` to `pyproject.toml` list of included files ## 10.3.0 - Added pointing groups in support of `ska-tmc-configure/4.1` ## 10.2.1 - Extended the workarounds to include those found during the Mid SBDefinition execution - Removed use of `SCAN_ID_GENERATOR` in the `allocate_and_observe_sb.py` script ## 10.2.0 - Updated to PDM v17.0.1, CDM v12.6.0, ska-tango-base v1.2.3 - Removed explicit dependency on connexion - Fixed Bug where RuntimeError was not correctly thrown if EB_ID environment variable not set - Refactored `pdm_transforms.sdp` module into two separate modules: `create_sdp` and `convert_sdp` - Updated `create_sdpconfiguration_centralnode()` to have processing block parameter requested by AIV - Updated `create_sdpconfiguration_centralnode()` to use vis-receive version 4.5.0 - Added support for 5-point targets in `create_sdp` module - Removed `convert_frequenct_band()` from `pdm_transforms.dish` - Refactored and renamed `convert_dish_configuration` to `create_dish_configuration` in `pdm_transforms.dish` - Refactored `convert_commonconfiguration` in `pdm_transform.csp` - Updated to use `ska-csp-configurescan/4.1` (change to the interface argument only) - Fixed bug with calculation of start frequency of CSP processing region - Number of CSP FSPs is calculated per correlation spw using CSP's own algorithms - Fixed bug where multiple correlation spectral windows would claim the same FSP IDs - Get the band_5_tuning from the midcbf part of the SBDefinition rather than the field in the common - Removed use of `SCAN_ID_GENERATOR` from `ska-oso-oet` and use `SkuidClient` directly instead - Added generation of SDP configuration data for Low PST observations ## 10.1.1 - Updated `convert_commonconfiguration()` in `pdm_transforms.csp` to include the eb_id kwarg - Updated MID_CHANNEL_WIDTH and LOW_CHANNEL_WIDTH astropy Quantities in `pdm_transforms.csp` module - Fixed Bug where LOW bandwidth was being reported in MHz rather than Hz - Handle lowcbf common being None when mapping to Configure - Set sbi_ids in SDP assign resources to an empty list, until the proper SBI lifecycle is implemented ## 10.1.0 - Added `create_sdpconfiguration_centralnode()` and `create_sdpconfiguration_subarraynode()` to `pdm_transforms.sdp` module ## 10.0.0 - BREAKING CHANGE: Removed support for `ska-tmc-configure/2.3` schema - Added support for `ska-tmc-configure/4.0` in support of ADR-99 - Updated to CDM version ^12.5.1 ## 9.1.0 - Adds conversion of SKA-Low PST beam coordinates to the equivalent ADR-63 sky coordinates - Updated to ODA v6.0.0 and OET v6.3.0 - Default value of `functions.devicecontrol.telescope_control.telescope_off()` function changed from `STANDBY` to `OFF` - Exposed expected final state as optional parameter in `off()` method of `objects.Telescope` object - Added scan-configuration parameters required by PST ## 9.0.3 - Updated to CDMv12.0.0 - Removed hardcoded interface values for sdp-assignres and sdp-configure - Added support for a Low PST observations ## 9.0.2 - Unpin ODA dependency to allow minor and patch updates ## 9.0.1 - Changelog fix ## 9.0.0 - BREAKING CHANGE: Unified mid and low scripts as a single `scripts/allocate_and_observe_sb.py` - BREAKING CHANGE: function `create_cdm_assign_resources_request_from_scheduling_block()` now returns a single instance - Updates to CDM version 11.0.1 - Updates to PDM version 15.0.0 - Updates to ODA version 5.3.0 - Adds support for `ska-low-tmc-assignresources/4.0` - Adds support for `ska-low-tmc-configure/4.0` ## 8.1.0 - Updates to CDM version 10. - Updates to PDM version 14. - Adds support for non-sidereal targets, (reference_frame="special") ## 8.0.0 - BREAKING CHANGE: updated to use OSO PDM v12.0.1 and TMC CDM v9.1.1 - Added `convert_pointingcorrection()` to `pdm_transforms.dish` module in support of SS-120 - BREAKING CHANGE: Removed support for MCCS