You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.5 KiB
1.5 KiB
Contributing
Thanks for helping improve Iron. The project is still early, so the most useful contributions are focused changes with tests and clear documentation updates.
Development Setup
UV_CACHE_DIR=.uv-cache uv venv .venv
UV_CACHE_DIR=.uv-cache uv pip install --python .venv/bin/python -e '.[dev]'
npm install
npm run build
Run the API locally:
.venv/bin/python -m uvicorn app.main:app --reload
Open http://127.0.0.1:8000/app.
Test Before Submitting
Run the full suite:
.venv/bin/python -m pytest
For UI changes, also run:
npm run build
.venv/bin/python scripts/ui_playwright_smoke.py
Review screenshots in output/playwright/ before considering UI work complete.
Pull Request Checklist
- The change is focused and described clearly.
- Tests were added or updated for behavior changes.
- UI changes were validated with Playwright when applicable.
- Documentation was updated if setup, behavior, or architecture changed.
- Generated/runtime files are not included.
Code Style
- Backend code lives in
app/and uses async FastAPI + SQLAlchemy patterns. - Frontend code lives in
frontend/and uses Vue 3, TypeScript, Pinia, and the OpenCloud design system. - Keep browser file preview/download flows authenticated through the API client.
- Prefer clear names and small modules over clever abstractions.
Project Status
Iron is a Product MVP Candidate. See: