Activity
What is happening around the test kit: the bug reports and fixes in the python-sgp4 library, the test kit’s releases, and the project’s milestones.
Upstream items and repository state read from the GitHub REST API through an edge-cached function (/api/activity, one refresh per hour); state, dates, counts and links only. The timeline is curated.
Upstream tracker
Each item is a public thread on GitHub. The badge says whether it is still open, has been merged into the library, or is closed.
python-sgp4 #169 issue
Reported upstream by another user
Nine-digit catalog numbers rejected by the OMM reader
A reported problem in the library.A reported problem that is still open.A reported problem that has been closed.
Opened 2026-08-20
python-sgp4 PR #170 pull request
Fix by karlhillx, tested against this corpus
Proposed fix for #169 · test report
A proposed change that adds two tests but does not change the library; the corpus’s test report found nothing fixed and nothing broken.
At commit 5e4f308 the PR adds two tests and no surviving library change; the corpus’s local run found 0 fixed and 0 regressed across the sixteen cases it had at the time.
Opened 2026-09-01
python-sgp4 #171 issue
Issue filed by the maintainer of this corpus
Empty OBJECT_ID in OMM XML raises an error
A reported problem in the library.A reported problem that is still open.A reported problem that has been closed.
Opened 2026-09-21
python-sgp4 PR #172 pull request
Fix submitted by the maintainer of this corpus
Fix for #171
A proposed fix for the library.A proposed fix waiting for the library’s owner to review it.A fix that the library’s owner has accepted into the code.A proposed fix that was closed without being merged.A proposed fix still being worked on.
Opened 2026-09-21
Data from GitHub, refreshed at most hourly. Last updated 0000-00-00 00:00:00 UTC (00 minutes ago). GitHub could not be reached just now, so this is the last good copy. Data from GitHub, refreshed at most hourly. Last updated 0000-00-00 00:00:00 UTC (00 minutes ago). Live state is unavailable right now; the links above still work. Live state could not be loaded; the links above still work.
The corpus on GitHub
Timeline
Curated (data/timeline.json); every entry links to a public record.
- Independent audit completed — A separate reviewer re-checked every number in the first version of the test kit, v0.1.0, before it was published and found no wrong value. — Audit of the corpus at commit 4db7d2a, v0.1.0, before publication; 65,887 field-level comparisons agreed with the frozen expected values; documentation findings and their resolutions are recorded in AUDIT.md. The writer-side case of v0.2.0 and the fixes of v0.2.1 have not been separately audited.
- Alpha-5 encoding verified against Space-Track — The maintainer checked the lettered catalog numbers against the official catalog using their own account; nothing from that catalog is published. — Maintainer's run of tools/verify_against_spacetrack.py: 44 records, letters A and T, zero encoding defects; only verdicts were recorded and no Space-Track data entered the corpus.
- Corpus v0.1.0 published — The first public version of the test kit went online. — Release v0.1.0 of gp-omm-conformance (tag on commit fdf4043): 16 cases, frozen expected values, vectors, derived files, runner.
- Zenodo DOI minted — The test kit received a permanent citation number. — Concept DOI 10.5281/zenodo.22867654 (all versions) and version DOI 10.5281/zenodo.22867655 (v0.1.0); recorded in CITATION.cff.
- Issue #171 filed upstream — A bug found by the test kit was reported to the python-sgp4 library. — brandon-rhodes/python-sgp4#171: an empty OBJECT_ID element in OMM XML makes sgp4.omm.initialize raise TypeError; reproducer on CCSDS example values.
- Pull request #172 opened — A fix for that bug was submitted to the library for review. — brandon-rhodes/python-sgp4#172 from hneogy:omm-empty-object-id, one commit, two files, two tests; 47 upstream tests pass on both builds.
- SatNOGS: support above 99,999 in progress — Fredy, a maintainer of SatNOGS, the open ground-station network, said none of its parts handle the new numbers yet and that support is in progress. — Fredy, SatNOGS maintainer, replying on the Libre Space forum to the corpus announcement: no SatNOGS component supports NORAD ids above 99999; Alpha-5 and OMM JSON support said to be in progress, level differing by sub-project. Standing state is kept on the library page's ecosystem list.
- Corpus v0.2.0 published — A new version of the test kit adds a check for programs that write the old format, not only read it, and a command that checks a file such a program wrote. — Release v0.2.0 of gp-omm-conformance (tag on commit b54c3b8): 17 cases; adds the writer-side case tle-writer-alpha5 (does a tool that writes a TLE put a correct Alpha-5 catalog field on both lines, and does it refuse ids the field cannot represent) and the gpconf check-tle command for files a tool wrote; the sixteen v0.1.0 cases and their expected values are unchanged.
- Zenodo DOI minted — The new version of the test kit received its own permanent citation number. — Version DOI 10.5281/zenodo.22906966 (v0.2.0) under the concept DOI 10.5281/zenodo.22867654; recorded in CITATION.cff.
- Corpus v0.2.1 published — A maintenance version fixes places where the test kit had reported a pass it had not actually checked; the seventeen tests are unchanged, and one new check was added for programs that write the old format. — Release v0.2.1 of gp-omm-conformance (tag on commit b1407a5): fixes to cases where the corpus reported a pass it had not checked (DECISIONS D-111 to D-115 and D-117 to D-119); the seventeen cases and their frozen expected values are unchanged; one writer check added (tle-writer-column-layout); naive and python-sgp4 results unchanged at 14 and 7 of 17 cases failing.
- Zenodo DOI minted — The maintenance version of the test kit received its own permanent citation number. — Version DOI 10.5281/zenodo.22926017 (v0.2.1) under the concept DOI 10.5281/zenodo.22867654; recorded in CITATION.cff.
- Pull request #172 merged — The library accepted the fix for the bug we reported; it reaches users with the library’s next release. — brandon-rhodes/python-sgp4#172 merged by the maintainer as 8126f77 on master; issue #171 closed as completed. No release carries the fix yet (latest 2.27, 2026-07-03), so the python-sgp4 result stays 7 of 17 cases against 2.27.
- Corpus v0.3.0 published — A new version of the test kit installs with one command and can test several popular libraries with no code written; the seventeen tests are unchanged. — Release v0.3.0 of gp-omm-conformance (tag on commit 627f66f), also on PyPI as gpconf 0.3.0: the runner and the corpus's own files install with pip, presets test a library with no adapter written, a GitHub Action runs it in CI, and the adapter protocol gains a refusal channel (DECISIONS D-142 to D-161 and D-165); no frozen expected value changed; naive and python-sgp4 still fail 14 and 7 of 17 cases.
- Zenodo DOI minted — The new version of the test kit received its own permanent citation number. — Version DOI 10.5281/zenodo.22986178 (v0.3.0) under the concept DOI 10.5281/zenodo.22867654; recorded in CITATION.cff.
- Corpus v0.4.0 published — A new version of the test kit adds an eighteenth test: it slips one damaged record in among good ones and checks that the software refuses it, says why, and keeps reading the rest. — Release v0.4.0 of gp-omm-conformance (tag on commit e5fa812), also on PyPI as gpconf 0.4.0: the eighteenth case, corrupt-input, hands a parser one corrupt input between valid records, a refusal with a reason passing and the records around it having to load (DECISIONS D-171 to D-190); no frozen expected value changed; naive and python-sgp4 fail 15 and 8 of 18 cases.
- Zenodo DOI minted — The new version of the test kit received its own permanent citation number. — Version DOI 10.5281/zenodo.23002261 (v0.4.0) under the concept DOI 10.5281/zenodo.22867654; recorded in CITATION.cff.
- Corpus v0.5.0 published — A new version of the test kit: its installable package can be rebuilt byte for byte from the source, a library can say which operations it does not have instead of failing them, and the kit counts each missing record once; the eighteen tests are unchanged. — Release v0.5.0 of gp-omm-conformance (tag on commit e6a3000; dated 2026-10-01 in the corpus, published 03:09:55 UTC on 2026-10-02), also on PyPI as gpconf 0.5.0: reproducible package builds under SOURCE_DATE_EPOCH, the "unsupported" answer for vector hooks run by command, and the gate's record counts to one outcome per record (DECISIONS D-203 to D-208); no frozen expected value changed; naive and python-sgp4 still fail 15 and 8 of 18 cases.
- Zenodo DOI minted — The new version of the test kit received its own permanent citation number. — Version DOI 10.5281/zenodo.23093982 (v0.5.0) under the concept DOI 10.5281/zenodo.22867654; recorded in CITATION.cff.
- Corpus v0.5.1 published — A new version of the test kit: its download stops at the first answer it does not expect, no longer asks for files that are only around for a few days after a launch, and is about a quarter of the size; no test or expected result changed. — Release v0.5.1 of gp-omm-conformance (tag on commit e555aaa; dated 2026-10-03 in the corpus, published 03:37:57 UTC on 2026-10-04), also on PyPI as gpconf 0.5.1: the fetch stops on any non-200 but four known 404s and keeps the answer, makes no request for two hours after a 403 or 429, no longer asks for the ten launch-window files, which the runner reports as not-available, and fetches the legacy SATCAT file only on request; a first-time fetch from a clean environment made 50 requests, 3.2 MB, in about two minutes (DECISIONS D-228 to D-235); no case, check or frozen expected value changed.
- Zenodo DOI minted — The new version of the test kit received its own permanent citation number. — Version DOI 10.5281/zenodo.23130868 (v0.5.1) under the concept DOI 10.5281/zenodo.22867654; recorded in CITATION.cff.
- Corpus v0.6.0 published — A new version of the test kit: its download no longer asks CelesTrak for four answers it already knew to be errors, a program can read the totals of a run as numbers, and the kit now goes by the name gpconf; no test or expected result changed. — Release v0.6.0 of gp-omm-conformance (tag on commit 87fe699), also on PyPI as gpconf 0.6.0: the JSON report carries the case totals in `summary`, which a script reads in place of the printed lines; a user's fetch is 46 requests, none expected to answer anything but 200, CelesTrak's 16-byte answer "No GP data found" shipping with the corpus as the one recorded provider response; a first-time fetch from a clean environment made 46 requests, 3.2 MB, in 2 min 2 s; "TLE set" and "line" are used strictly (DECISIONS D-239 to D-250); no case and no frozen expected value changed.
- Zenodo DOI minted — The new version of the test kit received its own permanent citation number. — Version DOI 10.5281/zenodo.23140585 (v0.6.0) under the concept DOI 10.5281/zenodo.22867654; recorded in CITATION.cff.
- Corpus v0.6.1 published — A small new version of the test kit: when it downloads data from CelesTrak, each request now says which program is asking and which version of it; no test or expected result changed. — Release v0.6.1 of gp-omm-conformance (tag on commit 7634800), also on PyPI as gpconf 0.6.1, a patch release: every request of `gpconf fetch` carries `User-Agent: gpconf/0.6.1 (+https://github.com/hneogy/gp-omm-conformance; fetch, each URL once)`, where it named neither gpconf nor the corpus's version; the README gives the measured size of a user's fetch, 3.2 MB; a first-time fetch from a clean environment made the same 46 requests, each with the new header and each answered 200, 3.2 MB, in 2 min 11 s (DECISIONS D-252 to D-256); no case, check or frozen expected value changed.
- Zenodo DOI minted — The new version of the test kit received its own permanent citation number. — Version DOI 10.5281/zenodo.23144821 (v0.6.1) under the concept DOI 10.5281/zenodo.22867654; recorded in CITATION.cff.
- Corpus v0.6.2 published — A small new version of the test kit: a mistyped test name now stops with an error instead of quietly passing, and the kit's tests now run on Windows too; no test or expected result changed. — Release v0.6.2 of gp-omm-conformance (tag on commit 3302fae), also on PyPI as gpconf 0.6.2, a patch release: an unknown --case is an error, exit 2, naming the corpus's cases, where it was a silent no-op at exit 0; check-tle answers a missing file with a one-line error; every text open() reads and writes UTF-8, and a Windows CI job holds the kit to it — its first run failed 42 of 445 tests, every one a portability assumption and none a wrong expected value (DECISIONS D-268 to D-273); the sgp4 extra pins sgp4>=2.27; the README gives a user's fetch at its measured 3,201,056 bytes; no case, check or frozen expected value changed.
- Zenodo DOI minted — The new version of the test kit received its own permanent citation number. — Version DOI 10.5281/zenodo.23265462 (v0.6.2) under the concept DOI 10.5281/zenodo.22867654; recorded in CITATION.cff.
- Corpus v0.7.0 published — A new version of the test kit, about the checker itself: wrong parsers written on purpose to slip past it were caught and turned into tests, and more is checked before any download; no published result changed. — Release v0.7.0 of gp-omm-conformance (tag on commit b7c54ee), also on PyPI as gpconf 0.7.0 with the build's exact hashes, a minor release: the grader was red-teamed (SM-26's seven wrong-on-purpose adapters, two blind red-team passes, a seeded mutation fuzzer) and what got through is closed and kept as tests; 146 synthetic-derived TLE sets and three OMM files graded with no fetch; no case verdict of a published run changed; Apache-2.0 from this release, MIT up to 0.6.2.
- Zenodo DOI minted — The new version of the test kit received its own permanent citation number. — Version DOI 10.5281/zenodo.23382463 (v0.7.0) under the concept DOI 10.5281/zenodo.22867654; recorded in CITATION.cff.
How this page gets its data
/api/activityis a Cloudflare Pages Function. On a cache miss it makes seven GitHub REST calls (two issues, two pull requests, the corpus's latest release, and the two repositories), keeps state, dates, counts and links, and stores the result at the edge for one hour; visitors are served the cached copy, so GitHub sees about one refresh per hour per edge location.- If GitHub fails, the last good copy (kept for 30 days) is served with its original timestamp and a “stale” note; if none exists the page shows the static links only.
- Requests are authenticated with a read-only, public-repositories token stored as a Cloudflare secret; the token never appears in a response. No titles, bodies or comment text are read or shown.