Thanks for contributing. This guide explains the two main ways to contribute: (a) open an issue describing a bug/idea, and/or (b) open a PR with a proposed fix or implementation. We strongly encourage the combined path (A+B): open an issue, then address it yourself and submit a PR.
Preferred path: A + B (open an issue, then open a PR that addresses it).
Use this when you want feedback before coding, or to report a bug/request.
- Go to the dynestyx Issues page.
- Click New issue.
- Use a clear title.
- Include:
- expected behavior
- observed behavior
- minimal reproduction (if bug)
- environment details (OS, Python, key package versions)
- Submit the issue.
Use this when you already have a concrete proposed change. Follow the steps below.
Fork dynestyx to your GitHub account first:
- Go to github.com/BasisResearch/dynestyx.
- Click Fork (top-right).
- Choose your GitHub account as the destination.
Then in your terminal, clone your fork and add the original repo as upstream:
git clone https://github.com/<your-username>/dynestyx.git
cd dynestyx
git remote add upstream https://github.com/BasisResearch/dynestyx.git
git remote -v
uv venv
source .venv/bin/activate
uv sync --dev --all-extrasYou should see:
origin->https://github.com/<your-username>/dynestyx.gitupstream->https://github.com/BasisResearch/dynestyx.git
git checkout main
git pull upstream main
git checkout -b <type>/<short-description>Examples: feature/add-ode-example, fix/filter-shape-bug, docs/update-quickstart.
From repo root:
uv run scripts/clean.sh
uv run scripts/lint.sh
uv run scripts/test.shIf you changed a lot or touched core inference code, also run:
uv run scripts/test_full.shscripts/test_full.sh writes run artifacts and logs under .output. To inspect results:
ls .outputOpen relevant files in .output to review test summaries/logs for failures.
If you edited docs, also build docs locally:
uv run mkdocs buildTo preview docs locally while editing:
uv run mkdocs serveThen open http://127.0.0.1:8000 in your browser.
Published docs on GitHub Pages are versioned with mike (latest = main, stable = newest v* tag). Maintainers deploy via CI; see docs/versioning.md. When you change tutorials (notebooks), remember readers on stable may still use an older install—add an optional banner (template in that page). For versioned local previews (stable vs latest) and manual backfills from historical tags, use the commands in docs/versioning.md.
git add .
git commit -m "Short imperative message"
git push -u origin <type>/<short-description>- Go to github.com/BasisResearch/dynestyx.
- If prompted with your recently pushed branch, click Compare & pull request.
- If not prompted, go to the Pull requests tab and click New pull request.
- Set base to
BasisResearch/dynestyx:main. - Set compare to your branch (
<type>/<short-description>). - Add title + description (template below), then click Create pull request.
Use this PR description format:
- Summary: what changed and why
- Notes: any caveats, follow-ups, or breaking behavior
Keep PRs focused. If your change is user-facing, include doc updates in the same PR.