@@ -5,6 +5,55 @@ All notable changes to gmat-run are documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.1.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ## [ 0.6.0] — 2026-05-22
9+
10+ ### Added
11+
12+ - ` CITATION.cff ` — Citation File Format 1.2.0 metadata at the repository
13+ root, so GitHub renders the "Cite this repository" sidebar and the
14+ academic citation path has one canonical source. A ` citation ` CI job
15+ validates the file with ` cffconvert ` on every PR (#130 , #134 ).
16+
17+ ### Changed
18+
19+ - Parser file-read failures are now typed. All six text parsers —
20+ ` reportfile ` , ` ephemeris ` , ` stk_ephemeris ` , ` aem_ephemeris ` , ` contact ` ,
21+ and ` solver_log ` — route through a shared UTF-8 reader that wraps
22+ ` OSError ` and ` UnicodeDecodeError ` as
23+ [ ` GmatOutputParseError ` ] [ gmat_run.GmatOutputParseError ] . A missing or
24+ binary input — including a declared ` ReportFile ` or ` EphemerisFile ` that
25+ GMAT never wrote — now surfaces the typed error on lazy ` Results ` access
26+ instead of a raw ` FileNotFoundError ` or ` UnicodeDecodeError ` (#138 , #146 ).
27+
28+ ### Fixed
29+
30+ - ` *ModJulian ` epoch columns are now always ` datetime64[ns] ` . Under
31+ pandas 3.x a ModJulian column of whole-day or integer-typed values
32+ resolved to ` datetime64[us] ` , leaving the column dtype data-dependent and
33+ in breach of the documented epoch-column contract (#136 , #144 ).
34+ - The STK and AEM ephemeris format sniffers no longer leak
35+ ` UnicodeDecodeError ` on a binary or non-UTF-8 file (for example a GMAT
36+ Code-500 binary ephemeris). Such a file now sniffs as "not this format"
37+ and format dispatch continues instead of raising (#137 , #145 ).
38+ - Multi-segment OEM and AEM ephemeris files whose segments declare
39+ conflicting ` TIME_SYSTEM ` values are now rejected with
40+ ` GmatOutputParseError ` . Previously they parsed silently into a single
41+ epoch column mixing time scales, which a later ` convert_to= ` then
42+ mistranslated (#139 , #147 ).
43+ - ` ReportFile ` parsing coerces columns positionally, so a report carrying
44+ duplicate header column names — which GMAT's ` Report ` command can emit —
45+ has every column typed and every epoch column promoted, instead of
46+ leaving the repeated columns string-typed. A ` UserWarning ` names the
47+ duplicate (#140 , #148 ).
48+ - ` RMATRIX ` -typed field writes (for example ` Sat.Covariance ` ) now go
49+ through gmatpy's ` SetMatrix ` , which the engine accepts. They previously
50+ used ` SetField ` , which has no matrix overload and rejected the nested
51+ list (#141 , #149 ).
52+ - [ ` Results.converged ` ] [ gmat_run.Results ] no longer aborts when a single
53+ solver's log is unparseable. An unreadable log is omitted from the
54+ returned mapping and named in a ` UserWarning ` , rather than hiding the
55+ convergence status of every other solver (#143 , #151 ).
56+
857## [ 0.5.0] — 2026-05-20
958
1059### Added
@@ -207,6 +256,7 @@ Initial public release.
207256- Release workflow: build, PyPI trusted publishing, and
208257 ` gh release create --generate-notes ` on ` v* ` tags (#31 ).
209258
259+ [ 0.6.0 ] : https://github.com/astro-tools/gmat-run/compare/v0.5.0...v0.6.0
210260[ 0.5.0 ] : https://github.com/astro-tools/gmat-run/compare/v0.4.0...v0.5.0
211261[ 0.4.0 ] : https://github.com/astro-tools/gmat-run/compare/v0.3.0...v0.4.0
212262[ 0.3.0 ] : https://github.com/astro-tools/gmat-run/compare/v0.2.0...v0.3.0
0 commit comments