Contributing
ProdPilot is developed in the open at prodpilotai/ProdPilot, under the MIT license.
Set up from source
Section titled “Set up from source”git clone https://github.com/prodpilotai/ProdPilotcd ProdPilotpython -m venv .venv.venv/bin/pip install -e . --group dev # on Windows: .venv\Scripts\pip; needs pip 25.1 or later.venv/bin/python -m pytestYou need the same things a user does: Python 3.11 to 3.14, Node.js 20 or later, git, and Docker if you want the tests that build real images to run.
At the v1.1.0 tag, commit 63f8d9a, the suite collects 2,012 tests, up from 1,799 at v1.0.0:
python -m pytest --collect-only -q- No live service. Every Render and GitHub call is scripted, and the build check’s tests script Docker too.
- Docker when available. Tests that build a real image with the local daemon are skipped when no daemon is running.
- Real samples. The sample projects under
tests/samples/are minimal but genuine, each with a realpackage.jsonand entry point. Several are broken on purpose. - Launch commands.
tests/test_clients.pystarts the server with the exact command the committed IDE configurations name, so a configuration that drifts from what works fails the suite.
The Tests workflow runs the suite on Linux, macOS and Windows for Python 3.11, 3.12, 3.13 and 3.14, and builds the wheel on all three systems, installs it outside the repository and loads the shipped model. That is 15 jobs; all 15 passed on the v1.1.0 commit, in run 38037384691. The macOS and Windows runners have no Docker daemon, so there the tests that build a real image are skipped; they run on Linux.
The whole chain
Section titled “The whole chain”tests/pipeline.py runs the audit, the fix loop, the gate and all nine deploy stages on the sample projects, with Render and GitHub scripted, and records a trace:
python tests/pipeline.py OUT.json # every samplepython tests/pipeline.py OUT.json node_express_insecurepython tests/pipeline.py --markdown OUT.json # the tables in pipeline.mdpython tests/pipeline.py --metrics OUT.json # the tables in metrics.mdSending a change
Section titled “Sending a change”- Open an issue before a large change.
- Run the suite before sending a pull request.
- Architecture, the model and the data are described in architecture.md.
Questions and bug reports go to GitHub Issues. Report a vulnerability privately through the Security tab.