Contributing¶
Bug reports, fixes and features are welcome — open an issue or a pull request.
Project layout¶
fastadmin/ # the Python package (api, models, settings, bundled static frontend)
frontend/ # React (Vite + antd) frontend sources, built into fastadmin/static
tests/ # backend test suite (pytest, 100% coverage gate)
examples/ # runnable example apps for each framework/ORM combination
docs/ # MkDocs Material documentation (this site)
Development setup¶
You need Python 3.12+, uv and Node.js with yarn (for the frontend).
git clone https://github.com/vsdudakov/fastadmin.git
cd fastadmin
make dev # uv sync --all-extras + frontend yarn install
Day-to-day commands¶
| Command | What it does |
|---|---|
make lint |
ruff check + ruff format --check + ty, then the frontend linters. |
make format |
Auto-fix lint issues and reformat (Python + frontend). |
make test |
Backend tests with a 100% coverage gate, then frontend tests. |
make build |
Build the frontend into fastadmin/static and the wheel/sdist via uv build. |
make docs |
Build this documentation site into ./site (strict mode). |
make docs-serve |
Live-preview the docs at http://127.0.0.1:8000. |
The backend tests need the required admin settings:
export ADMIN_USER_MODEL=User
export ADMIN_USER_MODEL_USERNAME_FIELD=username
export ADMIN_SECRET_KEY=secret_key
make test
Pull requests¶
- Run
make format,make lintandmake testbefore pushing — CI enforces all three. - Keep the 100% backend coverage gate green: new code needs tests.
- Update the relevant docs page and
CHANGELOG.mdwhen behavior changes. - Releases are cut by tagging
v*onmain; the release workflow builds and publishes to PyPI, and the docs workflow deploys this site to GitHub Pages.