All tools / Testing & code health
shortgate
Run only the tests a change can reach, on every core and runner, with coverage measured once.
Buy shortgate for $99One payment of $99, plus sales tax where it applies, and every future update. Delivered as a private GitHub repository you're invited to.
Runs inside Lina. Built to cut Lina's own CI gate from an hour to minutes; first used on its 21,000-test suite.
See it work
shortgate demo
shortgate demo: building a project in shortgate-demo-yev6tcrc (nothing outside it is touched)
1/8 built 12 source modules, 41 test files and 400 tests that each sleep 50 ms (20 s of sleeping in all), committed with git
2/8 shortgate map --workers 4: shortgate: 400 tests on 4 workers in 7 s — 400 passed
3/8 edited pkg/m07.py: selection: 31 of 400 tests — reach 24, imports 30, opaque 1
4/8 shortgate run --reach HEAD --workers 4: shortgate: 31 tests on 4 workers in 2 s — 31 passed
5/8 shortgate explain tests/test_t07.py::test_factor_9: runs because: imports (structural change to pkg/m07.py)
6/8 edited data/notes.txt: selection: 2 of 400 tests — reach 1, opaque 1
7/8 shortgate run --reach HEAD --workers 4: shortgate: 2 tests on 2 workers in 1 s — 2 passed (the test that opens the file, and the one that starts a process)
8/8 edited tests/conftest.py: full run: always-full (tests/conftest.py)
demo passed: mapped 400 tests, selected 31 for one change, refused to guess on conftest.py
What it does
shortgate runs a pytest suite across every core and across several CI runners, balanced by measured durations; runs only the tests a change can reach when it can prove which those are, and everything when it cannot, saying which rule made it; measures coverage once for any other coverage-based check to read; and writes the GitHub Actions workflow that does all of that.
- Only the tests a change can reach
- A map records what each test ran, opened, listed and checked for, which fixtures it used, what loaded at import, and what it inherited from cached reads. A change selects the tests that reach it, or everything when no rule can prove otherwise.
- Fails closed, and says why
- Twelve ordered rules. A changed conftest, requirements file, lockfile or CI workflow, a file no test reaches, a stale or mismatched map, a changed environment: each is a full run with the rule named. `shortgate explain` says why one test runs.
- Every core, every runner
- A duration-balanced deal across worker processes, modules kept whole so their fixtures set up once, and a plan that splits the same way across a CI matrix. Failures print once, with pytest's own report.
- Coverage measured once
- One run under coverage leaves a combined .coverage file for every other check to read, so no suite runs twice for a second tool.
- Writes the CI workflow
- `shortgate ci --github` writes the plan, matrix, merge and nightly jobs; the nightly records the map, pushes run without recording.
- Honest about its limits
- The README's "What it cannot see" names what a selection can still miss, and recording's measured cost: about 2x a plain run on a 21,000-test suite on Python 3.11, which is why only the nightly records.
What you get
shortgate 1.0.2: the Python package, the shortgate command and its pytest plugin, the CI workflow writer, a 400-test demo, and the full test suite, with 1526 automated tests.
A commercial license. Use it and change it in your own projects and your clients' projects. Don't share or resell the source. Read the license.
Every update. New versions land in the same repository; git pull to get them.
Requirements
Python 3.10 or newer. Python 3.10 or newer, pytest 7.4 or newer and Git; coverage.py for `--coverage`. Linux and macOS.
How buying works
- Enter your GitHub username. You'll see the account before you pay, so you can check it's yours.
- Pay $99, plus any sales tax shown at checkout, on Stripe's checkout page.
- Accept the invitation GitHub emails you. Signed in as that account, you'll also find it at
github.com/dominares-tools/shortgate/invitations. Invitations expire after 7 days; you can get a new one any time. - Clone and install:
git clone https://github.com/dominares-tools/shortgate.gitPrivate repo: sign in to GitHub on this computer first. Run
gh auth loginand choose HTTPS, or give git a personal access token when it asks for a password. To use an SSH key instead, clonegit@github.com:dominares-tools/shortgate.git.python3 -m venv .venv && . .venv/bin/activate pip install ./shortgate
Questions
Do I need GitHub?
Yes. Access is a read-only invitation to a private repository, sent to the GitHub account you choose.
Can I get a refund?
Yes, within 14 days, no questions asked. Access ends when the refund goes through. Refund policy.
Who takes the payment?
Payments are handled by Stripe, which works out sales tax. Your receipt and card statement show Link (LINK.COM*), Stripe's checkout service.
Something wrong?
Email support@dominares.org. Every buyer of a tool shares its repository, so support happens by email rather than in GitHub issues.