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.1.2] - 2026-02-14¶
Fixed¶
- Fix spacetrack client erroring out when query returns a lot of results
- Fix spacetrack
cdm_publicroute having wrong parent stem #169
[1.1.1] - 2026-02-14¶
Added¶
- Added ability to configure
TrajectoryModeonSGP4Propagatorfor applications where memory-use management is key. #167
Changed¶
- The JOSS paper submission used code examples with the older celestrak API. This PR updates the code examples to use the updated, stabilized API.
- Slightly adjust language in paper to avoid silly page overflow #165
- Changed default interpolator used by
NumericalOrbitPropgatorfor event detection from linear to 3rd degree Hermite. #167
Fixed¶
- Make
.current_epoch()property a method, not property in python bindings. - Fixed issue with event detection system in
NumericalOrbitPropagatorwhere it not correctly process events co-located with the current time, and would sometimes miss events in between time steps. #167
[1.1.0] - 2026-02-10¶
Added¶
- Added
par_propagate_to_dmethod. #109 - Add Github issue templates for bugs and feature requests #113
- Add arXiv citation to README and documentation. #124
- Modified python bindings to support access computation with numerical orbit propagators. #126
- Added
spacetrackclient module, enabling direct interaction with space-track.org APIs #150 - Added BSL-1.0 to allowed dependency license list
- Added GCAT dataset interface #152
- Added simplified
CelestrakClientinterface to bridge gap between new interface and old one. #157
Changed¶
- Bump version for 1.0.1 release #106
- Renamed
par_propagate_totopar_propagate_to_s - Move SGPPropagator to D-Type event detection. #109
- Update documentation to add JOSS paper submission badge. #113
- Update JOSS workflow to export tex artifacts to support arXiv upload. #122
- Moved all Brahe errors in python bindings from
OSErrortoBraheErrorto make them more distinguishable and easy to handle. #126 - Updated JOSS paper with new required sections. #137
- Enable manual triggering of latest documentation build in CI for handling EOP-update edge cases for releases. #139
- Overhauled
celestrakclient. Thecelestrakclient now uses a common type and query structure shared with thespacetrackmodule. In particular, theGPRecordserves as the common representation of OMM elements returned by both sites. This enables greater interoperability between other library modules that can consume or act onGPRecordtypes. Thecelestrakmodule is now it's own, stand-alone, module independent ofdatasets. - Migrate developer workflow from
make.pyto just - Remove dependency on BTreeCursor nightly feature, allowing crate to compile with stable rust. #150
- Adjusted
CelestrakQuerypython bindings to properly use properties instead of methods for specific dataset queries. Example: New:CelestrakQuery.gpvs Old:CelestrakQuery.gp()#157
Fixed¶
- Enabled event detection in
par_propagate_tomethod in Python #109 - Fixed broken documentation links in readme. (Thank you Stuart Bartlett for pointing it out) #129
- Fix broken links in main documentation landing page. #131
- Fix provider names for SSC stations in NASA Near Earth Network #143
- Fix https://duncaneddy.github.io/brahe/ to redirect to the current default root URL. #147
- Fixed tables in ephemeris documentation not being justified. #152
- Reverted
pyo3version update due to incompatibility withnumpydepdency - Prevented dependabot from auto-updating
pyo3#157 - Properly pass environment secrets from the
releaseworkflow to child-workflows #159
[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 - Add support for event detection to
SGPPropagator - 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
Removed¶
- Removed
STrajectory6from python bindings. #89
[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 - 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 - 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
Changed¶
- Moved mathematics capabilities from
utilssubmodule to dedicatedmathsubmodule. - 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
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 - 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 - 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
Fixed¶
- Don't trigger multiple changelog merges on changelog a PR. #49
- Only trigger auto-merge on
openeddue to changelog PRs not issuinglabeledevents #51 - 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 additional tests across various module to improve test coverage. #36
Changed¶
- Refactor
frames.rsfile into submodule with subfiles for long-term maintainability. #14 - 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 - 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