Installing¶
Read this first.
pip install devrepro-doctordoes not work yet, and neither does anything else on this page. The name is unclaimed on PyPI, so every install path here is a template waiting on one form submission — see What is blocking all of this.Documenting them anyway, with that said plainly at the top, beats the alternative this project shipped for months: a README opening with an install command that returns 404.
Until then, from a checkout:
git clone https://github.com/webdevsamran/devrepro-doctor
cd devrepro-doctor
pip install -e .
devrepro doctor
What is blocking all of this¶
Publishing needs a PyPI Trusted Publisher registered against the account that owns the name. It is a form on pypi.org that only the account owner can submit, and it cannot be automated from a repository:
| Field | Value |
|---|---|
| Owner | webdevsamran |
| Repository | devrepro-doctor |
| Workflow | release.yml |
| Environment | pypi |
Then set the repository variable PUBLISH_ENABLED=true and re-tag.
The release workflow is already guarded on that variable, deliberately: without the guard a tagged release fails at the publish step even though everything else succeeded, and a red release is indistinguishable from a broken one.
Everything downstream — Homebrew, Scoop, winget, uvx — needs a published
artefact with a stable URL and a checksum. None of them can be prepared any
further than the templates below.
Once PyPI is live¶
pip / pipx / uv¶
pip install devrepro-doctor # into the current environment
pipx install devrepro-doctor # isolated, on PATH
uv tool install devrepro-doctor # same, faster
uvx devrepro-doctor doctor # run once without installing
uvx is the one worth putting first in the README. This is a diagnostic tool:
the most common use is once, on a machine that is misbehaving, and asking
somebody to install something into a Python environment they are currently
debugging is asking them to change the thing they are measuring.
Homebrew (macOS, Linux)¶
The formula is a template in packaging/homebrew/devrepro-doctor.rb, with
PLACEHOLDER where the release URL and SHA-256 go. The release workflow can
fill it once there is a release to fill it from.
brew install webdevsamran/tap/devrepro-doctor
A tap rather than homebrew-core: core requires a notability threshold this project does not meet, and submitting anyway wastes a maintainer's time.
Scoop (Windows)¶
packaging/scoop/devrepro-doctor.json, same placeholders.
scoop bucket add webdevsamran https://github.com/webdevsamran/scoop-bucket
scoop install devrepro-doctor
winget (Windows)¶
packaging/winget/manifest.yaml. winget's community repository requires a
signed installer and a manifest review, which is a real submission process
rather than a file to publish — so this one is a template and a to-do.
What is deliberately not offered¶
curl … | sh. This project spends its time telling people that piping a
URL into a shell is a decision they should make deliberately — the reproduction
recipes print such commands commented out for exactly that reason. Offering one
as the headline install would be advice this project does not follow.
If you want the equivalent, uvx devrepro-doctor doctor runs it once without
installing anything, and you can read what it is before you run it.
An npm wrapper. The name is unclaimed on npm too, and a wrapper package that shells out to a Python tool is a second thing to keep in version, a second place for the version to be wrong, and a second supply-chain surface. If enough Node-only teams ask, that changes; nobody has yet.