Thanks for considering a contribution.
git clone https://github.com/oykdo/esoptron.git
cd esoptron
python -m venv .venv
. .venv/bin/activate # POSIX
# or: .venv\Scripts\Activate.ps1 (PowerShell)
pip install -e ".[dev,server]"
pytest -qFor the TypeScript SDK:
cd sdk/typescript
npm install
npm testFor the PWA:
cd pwa
npm install
npm testpytest -q— full Python suite must pass.npm test(insdk/typescriptandpwa) — JS suites must pass.- New crypto-touching code MUST include parity tests across the Python and TS ports when applicable.
- Update
CHANGELOG.mdunder the[Unreleased]section.
mainis always green.- Feature branches:
feat/<short-topic>. - Fix branches:
fix/<short-topic>.
- Imperative present tense (
Add ...,Fix ...,Refactor ...). - Reference the audit finding ID when applicable (e.g.
P0-3:). - Keep the subject line ≤ 72 chars.
If your change touches any of:
eopx.format.eopx_format(wire format)eopx.vault.migrate(Protocol F NIZK)eopx.vault.genesis(ceremony attestation)eopx.server.http_delegate(HMAC canonicalization)eopx.recovery(Argon2 / Kyber key derivation)eopx.metatron.field(KDF / hashing primitives)
...please add a paragraph to the PR description explaining the threat model implication. A reviewer with security domain knowledge will be tagged.
Maintainers only.
- Bump version in
pyproject.tomlandsdk/typescript/package.json. - Update
CHANGELOG.mdwith the release date. - Tag
vX.Y.Zand create a GitHub release. - CI workflows
publish-pypi.ymlandpublish-npm.ymlwill publish.