Thanks for helping. Elyra is early; small, well-tested changes land fastest.
Ground rules#
- Read
AGENTS.md(map, hard rules) anddocs/STATUS.mdfirst. The hard rules are not negotiable: honest labels (SIM/DEMO/CLAIMED/VERIFIED), local surface stays local, no prompt logging, no plaintext key writes. - No build step and one runtime dependency (
ethers). Plain ESM on Node 20 or newer. Do not add a dependency without a strong reason in the PR. - Tests assert behaviour (routing rules, billing equals receipt, failure modes, local-only), never wording.
- Docs ship in the same change as code: behaviour changes update
docs/STATUS.mdandCHANGELOG.md; wire changes updatedocs/PROTOCOL.mdand bumpPROTOCOLinrouter/core/limits.mjs; module or state changes updatedocs/ARCHITECTURE.md; non-obvious choices go indocs/DECISIONS.md.
Setup#
git clone https://github.com/ART3MISCLOUD/elyra.git && cd elyra
npm ci
npm run chain:install # hardhat, for the on-chain test and contract tests
npm test # all behaviour tests (about 15 s on an idle machine)
npm run chain:test # contract tests
Run tests when the machine is not busy; booting nodes can take several seconds under load.
Pull requests#
- Branch from
main, keep the change focused, one concern per PR. - Add or update tests. A bug fix needs a regression test.
- If you touch
contracts/:cd contracts && npm run buildand commit the regeneratedartifacts/(CI fails on drift). - Never commit
.elyra*/,.env*, wallet or identity files. CI scans for tracked key files, but check yourself. - Describe what you verified and what you could not.
Website and docs#
site/ is a saved landing mirror: edit copy in place, never regenerate. Docs are Markdown in docs/; the Cloudflare Pages build (tools/pages/) renders them, see docs/DEPLOY-CLOUDFLARE.md.
Conduct#
Be direct and kind; critique code, not people. Harassment is not tolerated; maintainers may remove comments and block accounts.
Licensing#
By contributing you agree your work is released under the MIT License.
Name#
"Elyra" is also the name of an unrelated open-source JupyterLab project. A trademark and domain check is an open item before a public launch (see docs/STATUS.md, Naming).