Repo hygiene: CI triggers, coverage, Dependabot, templates, changelog#1
Merged
Conversation
- Restrict push trigger to main and add a concurrency guard so PR branches no longer run CI twice with stacked runs piling up. - Enable pytest-cov, which was already a dev dependency but never used. - Add Dependabot for github-actions and uv so action pins stay current. - Add issue/PR templates and a CHANGELOG to round out the existing CONTRIBUTING/CODE_OF_CONDUCT/SECURITY docs.
13 tasks
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
Housekeeping only. No changes to package code, so computed results are unaffected.
Changed
.github/workflows/ci.ymlon: pushwas unfiltered, so every push to a PR branch triggered both thepushandpull_requestworkflows — two full runs of a 30-minute-budget job for one change. The push trigger is now scoped tomain.concurrencygroup withcancel-in-progress: trueso stacked pushes supersede rather than queue.pytest-covwas already declared in[project.optional-dependencies].devand installed byuv sync --all-extras, butpytestwas invoked without it. Now runs with--cov=chained_eclipse --cov-report=term-missing.The Linux
LD_LIBRARY_PATHshim for REBOUNDx is left exactly as-is.Added
.github/dependabot.yml— weekly checks forgithub-actionsanduv. Thesetup-uvpin inca200f3was done by hand; this automates that going forward. Python deps are grouped into a single PR to avoid noise..github/PULL_REQUEST_TEMPLATE.md— includes a "scientific impact" section to force an explicit call on whether a change moves numerical results..github/ISSUE_TEMPLATE/bug_report.mdandfeature_request.md— the bug template asks forMODEL_VERSIONand the ephemeris kernel, which are the two things needed to reproduce a numerical discrepancy.CHANGELOG.md— seeded with 0.1.0 and an Unreleased section.Not done here (deliberately)
These were identified but left out because they touch package code or are judgement calls:
pyproject.toml,CITATION.cff, andconstants.MODEL_VERSIONall independently say0.1.0. Worth single-sourcing viaimportlib.metadata, plus a test asserting CITATION.cff agrees. Skipped becauseMODEL_VERSIONmay be embedded in output metadata and the semantics deserve a deliberate decision.requirements.txtcontains-e .[dev]while CI usesuv sync --no-editableagainst the committeduv.lock— two competing install paths. Probably delete it and documentuv sync --all-extras.ruff format --checkis not enforced in CI. Adding it requires runningruff format .across the tree first, which would bury this diff.v0.1.0tag or release exists, butCITATION.cffclaimsdate-released: 2026-07-13and both the README and.gitignorerefer to results being published as Release assets. The changelog's compare links assume that tag, so they will 404 until it is created.run_search.pyduplicates thechained-eclipseconsole script.chained-eclipse-eclipse4-atlantaandchained-eclipse-total-tracks-2027are one-off analyses installed onto users' PATH; they may fit better asexamples/.Checklist
pytestpasses locally — not run; CI on this PR is the first check