Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.1] - 2025-12-04¶
Added¶
-
- Added
from_omm_elementstoSGPPropagator. Supports direct initialization of propagator from OMM elements without needing to go through TLE lines. This is both more accurate as well as more robust to TLE ID depletion. #102
- Added
-
- Add support for event detection to
SGPPropagator
- Add support for event detection to
- Add
AOIEntryEventandAOIExitEventas premade event detectors. #104
Fixed¶
-
- Fix typo in JOSS paper title #99
[1.0.0] - 2025-11-29¶
Added¶
-
{D}NumericalOrbitPropagatorand python bindings
{D}NumericalPropagatorand python bindings- Event detection system for numerical propagators to find events during propagation #89
-
- Mean to osculating, osculating to mean orbital element transformations
- Update OrbitStateProviders to provide
state(s)_koe_meanandstate(s)_koe_osc - Implement ECI<>ROE direct transformations
- Add
ephemeris_agetoSGPPropagator - Implement Largrange, cubic Hermite, and quintic Hermite interpolation methods.
- Add
WalkerConstellationGeneratorwhich enables rapidly generating propagators with walker-geometry configurations. #96
Changed¶
-
- Make access computation use D-type propagators.
- Standardize on
- Add support for D-type returns to
KeplerianPropagatorandSGPPropagator - Standardized trait traits for
{S|D}StateProvider,{S|D}CovarianceProvider,{S|D}StatePropagator DTrajectoryandDOrbitTrajectorycan now store trajectories of arbitrary lengthDTrajectoryandDOrbitTrajectorycan now store stm and sensitivity matricies alongside state and covariance.- Improved test coverage across modules
- Changed how third-body ephemeris sources are defined and loaded. DE source is now a parameter instead of set by function name. Dynamically load BSP files when called.
- Changed how Gravity models are defined in terms of enumeration types.
- Renamed
state_cartesian_to_osculatingandstate_osculating_to_cartesianasstate_eci_to_koeandstate_koe_to_eci#89 -
- Improve trajectory module test coverage
- Improve events module test coverage
- Changed CI release workflow to publish documentation updates only after packages have been successfully published #96
Fixed¶
-
- Numerical integration
stepandstep_with_varmatnow take explicit parameter values. #89
- Numerical integration
Removed¶
-
- Removed
STrajectory6from python bindings. #89
- Removed
[0.4.0] - 2025-11-28¶
Added¶
-
- Add space weather data management and access modeled on Earth orientation data provider design. #73
-
- Added support for control inputs to numerical integration
- Added support for integration of sensitivity matrices to numerical integration functions
- Added support for analytical and numerical computation of sensitivity matrix
- Added documentation for integration with control inputs and sensitivity matrix integration
- Added documentation for computation and handling of sensitivity matrices #78
-
- Add JOSS draft paper #80
-
- Added NRLMSISE-00 atmospheric density model implementation #82
Changed¶
-
- Consolidates internal implementation of numerical integration
- Added additional numerical integration tests to improve coverage
- Consolidates duplicate type definitions across integrator files #78
-
- Refactor
celestrak.rsandnaif.rsmodules to useHttpClientstructure to enable mocking and mock testing through mockall to make struct calls
- Refactor
- Refactored main package documentation #84
Fixed¶
-
- Auto-merge of bundled data update wasn't auto-merging #75
-
- Removed erroring cache-check in python test workflow #78
[0.3.0] - 2025-11-18¶
Added¶
-
- Added
Integratorssubmodule with complete rust implementation, python bindings, documentation, and examples
- Added
- Support for
RK4,RKF45,DP54, andRKN1210numerical integration methods - License validation and compliance checks. Package is now automatically checked to ensure all dependencies have permissive, commercially-adoptable licenses #63
-
- NAIF Development Ephemeride dataset download and caching
- High-accuracy DE440s-based ephemeris prediction
- High-accuracy DE440s-based third-body acceleration prediction
- Python bindings for orbit dynamics functions #68
-
- Added
geo_smafunction to directly return the semi-major axis needed for a geostationary orbit. #69
- Added
Changed¶
-
- Moved mathematics capabilities from
utilssubmodule to dedicatedmathsubmodule.
- Moved mathematics capabilities from
- Bumped version to
0.2.0for release - Removed Rust test sections from coverage reporting #63
-
- Orbit dynamics functions which previously required a position-only vector can now accept either a position-only or a state vector. Conversion will be handled by the
IntoPositiontrait. #68
- Orbit dynamics functions which previously required a position-only vector can now accept either a position-only or a state vector. Conversion will be handled by the
Fixed¶
-
- Fix inconsistencies in Python API reference header levels
- Missing Ground station
- Miscellaneous documentation improvements and fixes #63
[0.2.0] - 2025-11-17¶
Added¶
-
- Added
relative_motionsubmodule to contain functionality related to relative motion
- Added
- Implemented RTN rotation and state transformations:
rotation_eci_to_rtn,rotation_rtn_to_eci,state_eci_to_rtn, andstate_rtn_to_eci - Implemented Relative Orbital Element (ROE) state transformations
state_oe_to_roeandstate_roe_to_oe - Added
util::mathfunctionssqrtmandspd_sqrtmto calculate matrix square root - Added
util::mathfunctionsoe_to_radiansandoe_to_degreesto reduce duplication in converting angle values in orbital element calcualtions #57 -
- Implement
CovarianceProvidertrait forOrbitTrajectory. Providescovariance,covariance_eci,covariance_gcrf, andcovariance_rtn
- Implement
- Add
interpolationsubmodule to store consistent covariance interpolation methods - Implement covariance rotation from ECI to RTN frame
- Extends
OrbitTrajectoryto optionally store covariance information. #59
Changed¶
-
- Don't run PR tests on release CHANGELOG update. #49
-
- Unit test and PR test workflows now cancel in-progress runs if a new commit lands
- Added concurrency guards to auto-merge workflows. #53
-
- Moved where internal vector/matrix (e.g.
SMatrix3,SVector6) type aliases are defined fromcoordinatessubmodule toutils#57
- Moved where internal vector/matrix (e.g.
Fixed¶
-
- Don't trigger multiple changelog merges on changelog a PR. #49
-
- Only trigger auto-merge on
openeddue to changelog PRs not issuinglabeledevents #51
- Only trigger auto-merge on
-
- Added additional triggers to auto-merge workflows to ensure they are properly triggered. #53
-
- Fixed assorted typos and errors in docstrings related to covariance interpolation features. #61
-
- Fixes package-data update CI workflow by moving to auto-PR, auto-merge approach #64
[0.1.3] - 2025-11-12¶
Added¶
-
- Added python missing bindings for
states_icrfandstates_gcrfforKeplerianPropagatorandSGPPropagator
- Added python missing bindings for
- Added additional tests across various module to improve test coverage. #36
Changed¶
-
- Refactor
frames.rsfile into submodule with subfiles for long-term maintainability. #14
- Refactor
-
- Automatically create and merge PRs for changelog updates #16
-
- Auto-merge changelog PRs
- Auto-merge dependabot PRs
- Expand dependabot to cover python and rust packages #26
-
- Bump package version to
v0.1.3#34
- Bump package version to
-
- Skip unit test suite on auto-generated changelog PRs. #44
Fixed¶
-
- PR changelogs were not being incorporated into the package changelog due to main-branch protection #16
-
- Stop generation changelog PRs for auto-generated changelog PRs #26
-
- Fixed issue with release pipeline release note generation #38
-
- Fix auto-merge for changelog PRs by using PAT #40
-
- Fix auto-merge workflow to accept PAT owner as actor. #42
-
- Fix workflow release step to use workflow PAT and declare base branch #46