Changelog

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

UNRELEASED


27.4.0


  • Add labels dict to the ExecutionBlock, to allow key-value pairs to be captured during ad-hoc observing

  • Migrated project to UV and Ruff.

27.3.0


  • Reduced warnings seen at runtime by fixing np.float64 serialization, and refactoring Quantity/VectorQuantity to use Pydantic’s __get_pydantic_core_schema__ pattern.

  • Removed deprecated scan_definitions and scan_sequence from the root of SBDefinition.

  • Added QA metric thresholds

27.2.2


  • [BUGFIX] Fixed issue where an exception was raised when deserialising ScanDefinition.scan_duration.

27.2.1


  • Renamed LSTConstraint fields to start and end

27.2.0


  • Added PVTTable PointingPattern to Target class

  • Added reference_dishes parameter to SchedulingBlockDefinition’s DishAllocation class

  • SonarQube for static analysis of code quality

  • AstropyQuantity is bifurcated into two versions: AstropyQuantity maps to a single scalar Astropy Quantity, while AstropyVectorQuantity maps to an Astropy Quantity that holds a vector of values.

  • Added ObservingConstraints to SBDefinition

27.1.1


  • [BUGFIX] removes numpy version pin which caused issues with other SKA dependencies downstream.

27.1.0


  • Added flow-through, detected-filterbank and pulsar-timing PST processing modes to PSTConfiguration of SBDefinition

  • [BUGFIX] Changed MidCSPConfigurationBuilder default frequency_band to BAND_1 to match spw setup.

  • [BUGFIX] Fixed issue where PDM builders would retain state for child properties created via other builders.

  • list properties now default to an empty list rather than being mandatory in input JSON.

27.0.0


  • [BREAKING] Updates to script_parameters fields in DataProductSDP

26.3.1


  • Fixes issue - ValidationArrayAssembly not pulled into root init

26.3.0


  • Regenerated the SVG for the project entity diagram

  • Updates hr to h for hours in ScanDurationUnits due to astropy constraints

  • Added validate-against parameter to state which capabilities are needed for an SBD to be validated against

  • Adds ob_ref to the SBDefinition

26.2.1


  • Fixes bug where scan_duration_ms is not correctly converted to a TimeDeltaMs object

26.2.0


  • Adds LIN_X and LIN_Y to Polarisation for data_product_sdp

26.1.0


  • Added: Added the purpose field to the project entity.

  • Adds Two-Line Element Set (TLE) coordinate support.

  • Adds ScanDefinition.scan_duration as an AstroPy quantity.

  • Deprecates ScanDefinition.scan_duration_ms in favour of ScanDefinition.scan_duration

26.0.3


  • Updates to polarisations from polarisation for PST

26.0.2


  • Updates the spectral image class

26.0.1


  • Updated the polarization options and taper from str to int in data products

26.0.0


  • Adds data_products_ref to results in proposal

  • Adds PST and Spectral products to the data product class

  • [BREAKING] Updates the polarisations to be a list and observation_set_ref to be a str.

25.0.0


  • [BREAKING] Adds script_parameters field to DataProductSDP class in Proposal and moves imaging script parameters from DataProductSDP to DataProductScriptParameters

  • Adds channels_out and fit_spectral_pol as new parameters to DataProductScriptParameters

  • Adds calibration_strategies to project model

24.0.0


  • [BREAKING] Updates options to products in the DataProductSDP

  • [BREAKING] Removes investigator_refs from proposal

  • Removes ska_oso_pdm.openapi module

  • Reinstates ‘make py2puml’ for automatic UML diagram generation

  • Adds calibration strategy to proposal model

  • [BREAKING] Updates pixel_size to image_cellsize

23.0.0


  • [BREAKING] Removes Info from Project

  • [BREAKING] Updates to use ProposalInfo and ObservationInfo to replace Info in Propsoal

  • Adds new status for ProposalStatus

  • Adds is_active in PanelReview

22.1.1


  • Updates on review and recommendation status

22.1.0


  • Adds new SDPConfiguration class for specifying SDP script, version and parameters in the SBD

  • Adds support for defining the sub-band to be used with the Band 5b down-converter

22.0.0


  • [BREAKING] Removed deprecated EquatorialCoordinates, HorizontalCoordinates, SolarSystemObject and EquatorialCoordinatesPST Classes

  • [BREAKING] Removed deprecated SDPConfiguration class

21.0.0


  • [BREAKING] Separated science and technical reviewers.

  • Updates default is_feasible to None

20.0.1


  • Fixed broken test

20.0.0 [DO NOT USE]


  • [BREAKING] Renamed investigator_id in Investigators to user_id

19.1.0


  • Adds proposal level access model ProposalAccess and enum ProposalRole for the PPT.

19.0.0


  • Adds scan sequences to SB Definition SubarrayBeamConfiguration and DishAllocation to support observing more than one target per scan.

  • [BREAKING] Remove deprecated cbf from the CSPConfiguration and the deprecated number_of_channels inside the MCCSAllocation

  • Deprecate sdp_configuration in the SBDefinition

18.5.0


  • Updated the panel reviews model to accommodate both technical and science reviews

  • Added score to the panel decision model

18.4.0


  • Add Proposal related fields to the Project model - specifically adding science programmes into the observing blocks and a prsl_ref to the Project

18.3.0


  • Changed status in proposal management from lower-case to title-case

18.2.0


  • Added decision_id to class PanelDecisionfor the PMT

  • Metadata for Proposal Management no longer optional

18.1.0


  • Replace older usage of typing.Optional with modern | None syntax.

  • Added initial proposal management classes for the PMT: PanelDecision, PanelReview and Panel

18.0.0


  • [Breaking] Proposal.prsl_id can now be None

  • DishAllocation.dish_ids serialise to a sorted set in JSON.

  • Added PstSPWConfiguration to allow definition of spectral windows for Mid PST

17.2.0


  • Adds PointedMosaicParameters to SBDefinition __init__.py to allow importing at SBDefinition level

  • Adds Low ITF as an array option

17.1.1


  • Renames target_id in Beam to beam_name for consistency

17.1.0


  • Adds PointedMosaicParameters pointing pattern for mosaics consisting of individual pointings.

  • Adds ‘epoch’ field to EquatorialCoordinates and EquatorialCoordinatesPST for compatibility with ADR-63.

  • Adds AltAzCoordinates, SpecialCoordinates and AltAzCoordinates to align with ADR-63.

  • Deprecates HorizontalCoordinates, EquatorialCoordinates, EquatorialCoordinatesPST and SolarSystemObject.

  • Adds target_id field to Beam class in preparation for future removal of EquatorialCoordinatesPST

  • Refactored the Coordinates to have a to_sky_coord method rather than storing a _coord object. Not technically breaking as it is a private field.

  • Changed the input type of coordinate units to accept only a Tuple and not a list or string.

  • Added GalacticCoordinates object

  • Deprecate number_of_channels in the MCCS part of the SBDefiniton, as this information can be derived from the CSP set up.

17.0.1


  • Added default dish ids to MID imaging SB builder

17.0.0


  • Added ‘name’ to targets and csp_configurations, to be used as a user-friendly way to identify the entity. The existing id fields can now be set to a uid in the UI

  • [Breaking]: In the SBDefinition, remove dish configuration and refactor dish_allocation to contain dish_ids, dish_allocation_id and selected_subarray_definition

  • [Breaking]: In the SBDefinition, refactor mccs_allocation to contain mccs_allocation_id instead of mccs_config_idand selected_subarray_definition instead of configuration

  • [Breaking]: Remove telescope from Project

16.2.1


  • Changed midcbf.subband kwarg frequency_slice_offset to be mandatory and defaulting to zero

16.2.0


  • Added builders module providing high-level functions for generating Mid and Low SBDefinitions.

16.1.0


  • Added :

    • robust and spectral_averaging to observation details level

  • Removed:

    • spectral_averaging remoed from low array details

16.0.1


  • Changed typo “suppied_type” to “supplied_type” in “Proposal.ObservationSets.Supplied”

16.0.0


  • Changed sub_type to attributes as this reflects better the Science terminology

  • Changed default of subarray from AA1 to aa1

  • Removed SpiralParameters from PointingKind enum within the Proposal

  • Updated descriptions for various Proposal fields to aid in clarity

  • Changed beam_size

  • Added uploaded_pdf to proposals documents

  • Removed ProposalTypeENUM as will be provided by another system, replaced field to be a string

  • Removed ProposalSubType as will be provided by another system, replaced field to be a string

  • Removed ScienceCategory as will be provided by another system, replaced field to be a string

  • Removed ObservationType as will be provided by another system, replaced field to be a string

  • Removed ObservingBand as will be provided by another system, replaced field to be a string

  • Updated results to result_details within the Proposal

  • Added status to the Proposal Investigator

  • Removed a number of fields from the Proposals as they are no longer required

  • Added Sensitivity class for use in the Proposal

  • Added SynthesizedBeamSize class for use with the synthesized_beam_size

  • Updated image_size to use AstropyQuantity

  • Updated pixel_size to use AstropyQuantity

15.4.0


  • Added PDM version number to entity metadata

  • Added do_pst boolean to LowCBFConfiguration to indicate that the standard correlation set-up will be used for PST observing

  • Changed SubarrayBeamConfiguration field number_of_channels to optional

15.3.0


  • Introduced entity reference version into the status entity schemas.

  • Added PointingKind.Spiral and SpiralParameters pointing pattern to support holography observations.

  • Added EquatorialCoordinatesPST coordinate model to support tied array beam observations

15.2.0


  • Make a uniform style for enums in the PDM for the names and values of status entities.

15.1.0


  • Added midcbf in CSPConfiguration

15.0.0


  • [Breaking] Updated mccs_allocation to support changes in MCCS Schema

  • [Breaking] Updated lowcbf within csp_configuration

  • [Breaking] Pulled SubArrayLOW and SubArrayMID into _shared

  • [Breaking] Renamed scan_duration to scan_duration_ms in ScanDefinition to reflect the dump value units

  • [Breaking] Removed obsolete subarray_beam_configurations and target_beam_configurations from SBDefinition

  • Dependency updates:

    • Astropy >=5.0.3,<7

    • Black >22.10.0

14.3.0


  • Moved Elevation to top level of observation

  • Changed integration to integration_time for the observation_set in proposal

  • Added support for non-sidereal targets known to KatPoint using reference frame ‘special’

14.2.0


DO NOT USE

14.1.0


  • Added support for Project status entity.

14.0.1


  • Override pipeline runner images in CI lint/test jobs.

  • Remove explicit Pydantic dependencies.

  • Minor dependency updates.

14.0.0


  • Various changes to the Proposal model, including:

    • [BREAKING] Renames Proposal.proposal_id to prsl_id

    • [BREAKING] Renames Investigators.proposal_investigator_id to investigator_id

    • [BREAKING] Renames Proposal.proposal_info to information

    • [BREAKING] Changes the shape of observation_set.Supplied to contain a nested quantity field.

    • [POSSIBLE BREAKING] A number of fields that were optional are now mandatory. Default values (e.g. []) should make this safe, but your code may break if it expects a None

    • Standardisation of all fields that have value and unit components to use the standard ‘quantity’ object

    • Implementation of standard types where applicable

    • Addition of ENUM’s to further improve the quality of the information stored

    • Additional sample test files and tests added to work with the updated structure, including both Draft & Submitted status variations Union’s added so that information can be stored as applicable with reduced wasted content

    • Simple descriptions added to fields with a view that these will be extended, which will add in future updates

    • ID fields now use type aliases from _shared.ids

    • Structure extended so that results from sensitivity calculations are stored for later referencing

  • Adds static type checking (enforced by Pyright) to our code linting.

13.0.1


  • Remove classmethod property (deprecated in Py3.11) ‘kind’ from base classes PythonProcedure and PointingPatternParameters to silence warnings.

13.0.0


  • [BREAKING] Renames EBStatus to OSOEBStatus

  • [BREAKING] Changes status history reference fields from *_id to *_ref for consistency.

  • StatusHistory entities now default to a Metadata(version=1)

12.0.1


  • fix: RequestResponse.response_received_at was mandatory rather than optional.

12.0.0


  • Adopts Pydantic for all PDM objects.

  • Unifies formerly auto-generated models and hand-written models.

  • Unifies models and serialisation schemas, removing all Marshmallow schemas.

  • New ‘source of truth’: OpenAPI schema yaml is generated from Python code.

  • sb_definition.ScanDefinition.pointing_correction is non-nullable, with a default value of MAINTAIN.

  • EquatorialCoordinates.unit and HorizontalCoordinates.unit are now always a two-element tuple (array in JSON) - previously it could be a single string if both axes of the reference frame had the same units.

  • Added RadialVelocity to Target object representation shared by ProposalInfo and SBDefinition.

  • [BREAKING] Pydantic models do not accept positional arguments. Previously, many objects required keyword arguments, but some allowed positional.

  • [BREAKING] ResponseResponse and ResponseError renamed to ResponseWrapper and ErrorWrapper.

  • [BREAKING] Pydantic models enforce runtime correctness. Attempting to instantiate an object with invalid data will raise a ValidationError

  • [BREAKING] schemas,generated and entities removed: Import directly from ska_oso_pdm or from an entity-specific subpackage e.g. ska_oso_pdm.proposal

  • [BREAKING] proposal.ProposalInfo.targets is now a list of Target objects:proposal.Target and sb_definition.Target are now a single, unified representation.

  • [BREAKING] Many field names changed to add _ref suffix to distinguish between inline objects and references to IDs of other objects.

  • [POSSIBLE BREAKING] Datetime strings in JSON use Z (Zulu time) instead of +00:00 to indicate UTC. These are equivalent under ISO 8601.