Repository navigation
Require ASSIST >= 1.2.3 - #40
Merged
Merged
Conversation
Sorcha depends on assist with no version bound, so the integrator version was whatever pip resolved when an environment was built. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #40 +/- ##
=======================================
Coverage 84.70% 84.70%
=======================================
Files 5 5
Lines 1327 1327
=======================================
Hits 1124 1124
Misses 203 203 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
wilsonbb
requested review from
connolly,
drewoldag and
maxwest-uw
and removed request for
connolly and
maxwest-uw
November 6, 2026 22:24
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Ponder gets ASSIST only through Sorcha, and Sorcha declares
assistandreboundwith no version bounds (checked in the Sorcha 1.1.1 and 1.2.1 wheel metadata). The integrator version in a Ponder environment is therefore whatever pip resolved on the day the environment was built. This PR adds a direct lower bound,assist >= 1.2.3, so a new environment cannot silently come up with an older integrator.1.2.3 is the version in the environments we run Ponder from today (with REBOUND 4.6.0). Through its own metadata it requires
rebound >= 4.4.11, < 5.0.0, so this also keeps REBOUND off the 5.x line, which ASSIST has not been tested against. Ponder doesn't need its own REBOUND pin.ASSIST changes that matter for ephemeris accuracy
I compared the PyPI source distributions for 1.1.9, 1.1.11, 1.2.0, 1.2.1, 1.2.2 and 1.2.3. GitHub's
v1.2.0,v1.2.1andv1.2.2tags all point to the same commit, so they don't identify release contents.Sorcha's path through ASSIST: it builds
assist.Ephem(planets_path=..., asteroids_path=...)fromlinux_p1550p2650.440(DE440) andsb441-n16.bsp, wraps the REBOUND simulation inassist.Extras, and evaluates each light-time iteration withex.integrate_or_interpolate(t - lt).forces.csetsREB_STATUS_GENERIC_ERRORand returns, so the integration halts instead of producing a quietly wrong trajectory.integrate_or_interpolateallocates: they were 6× too large and are now initialised fromsim->particles. I don't expect this to change positions..bsp) planet kernels alongside the JPL binary.440/.441files, with auto-detection..440file Sorcha passes, the constants are still read from the file header, and the force expressions are the same apart from that refactor. I expect identical results to rounding, but I have not run an old-vs-new numerical comparison.ASSIST_DIRforde441.bsp,de440.bsp,.441and then.440. Sorcha always passes an explicit path, so this doesn't affect it.assist.cchanges only in its version string. The one functional change is therebound < 5.0.0cap added in 1.2.3.Known limitation in 1.2.3, partly fixed on
mainbut not releasedIn 1.2.3,
assist_integrate_or_interpolateonly printsError: cannot interpolate beyond timestep bounds(or... before first timestep is complete) when it can't interpolate. It doesn't raise, and it leaves the particle state as it was, so the caller can read stale positions with no Python-level signal.Two fixes merged on 2026-06-21 aren't in any PyPI release yet (the latest is 1.2.3, uploaded 2026-05-17):
sim.statusset. It also addsEphem.time_bounds().The coverage case doesn't arise for Ponder's epochs: DE440 and sb441-n16 jointly cover roughly 1550–2650. Until a release includes these fixes, grep Sorcha logs for
cannot interpolateto check a run. Once one ships, this lower bound should move up to it.Testing
pyproject.tomlparses, and the dependency list isastropy, pandas < 3.0, sorcha, assist >= 1.2.3, tqdm, pyarrow.🤖 Generated with Claude Code