Thanks for contributing.
This project is stable software, so small, focused changes with clear tests and docs are preferred.
- Python 3.11+
uv- Node.js 20+ (for recovery kit build)
git clone https://github.com/MinorGlitch/ethernity.git
cd ethernity
uv sync --extra dev --extra build
uv run playwright install chromium- Fork the repository and branch from
masteron your fork. - Make one focused change set.
- Add or update tests.
- Update docs if behavior/UX/output changed.
- Run quality gates locally.
- Open a PR with clear scope and rationale.
Run before opening a PR:
uv run pre-commit run --all-files
uv run ruff check src tests
uv run ruff format --check src tests
uv run mypy src
uv run pyright
uv run check-jsonschema --check-metaschema docs/cli_api.schema.json
uv run typos .
uv run pytest tests/unit tests/integration -q- Keep
ruff formatas the only Python formatter. - Keep Python line length at
100; readability work should come from code shape, not formatter churn. - Use blank lines for real phase boundaries, not as a substitute for extraction.
- Prefer small helper functions or module imports over long symbol-import lists and dense orchestration blocks.
- In tests, collapse repeated
mock.patch(...)bundles into fixtures or helper context managers when they repeat. - Use
# fmt: off/# fmt: ononly for rare cases where structural refactoring would not help.
Optional, when touching browser kit assets:
cd kit
npm ci
npm run lint
npm run format:check
npm test
# Requires libdeflate-gzip (for example: apt install libdeflate-tools)
node build_kit.mjs
cd ..This builds both committed recovery kit bundles (lean + scanner variants).
- Keep PRs small and reviewable.
- Include tests for logic changes.
- Include docs updates for user-facing behavior changes.
- Avoid mixing unrelated refactors with behavior fixes.
- Use explicit commit messages that explain intent.
If you change CLI behavior, output contracts, recovery flow, or release artifacts:
- update
README.mdwhere applicable - update docs under
docs/when deeper details are required - keep command examples aligned with current behavior
For cryptography, recovery integrity, or authentication-path changes, include:
- explicit threat-model impact summary in PR description
- regression tests for negative/error paths
- compatibility notes for existing artifacts, if relevant
See full disclosure guidance in SECURITY.md.
This repository includes automation-specific conventions in AGENTS.md.
If you use coding agents, follow AGENTS.md as a required contract.