Contribute to Yano
To run Yano, download a release. To change the node itself, follow build from source for the checkout, Java prerequisites, and build commands.
Building and testing explains the test tiers and extended checks. Use the suite that exercises your change; native packaging and multi-node behavior have additional gates.
Repository boundaries
Section titled “Repository boundaries”| Area | Responsibility |
|---|---|
core-api |
Public contracts, role interfaces, plugin SPI |
runtime |
Node assembly and runtime implementation |
ledger-state, ledger-rules |
Ledger state and validation contracts |
p2p, consensus |
Networking and consensus components |
devnet-toolkit, testkit, testkit-ccl |
Local development and Java testing |
app |
Quarkus API and runnable distribution |
appchain/ |
Retained app-chain configuration, test, and proof modules |
archive-modules/ |
Optional history projection and DuckLake backend |
www/ |
This documentation site |
Yano owns org.yanoproject.*. Use domain names for new top-level packages; product names are reserved for sibling repositories. Yano X uses org.yanoproject.x.*. Keep implementation imports readable and use simple class names unless a collision requires qualification.
Extension contributions
Section titled “Extension contributions”Put additional stock app-chain machines, connectors, products, and JVM tooling in Yano X. Extend the public SPI without coupling the host to product-specific source paths or dependencies.
Documentation contributions
Section titled “Documentation contributions”Edit Markdown under www/src/content/docs/, then run from www/:
npm cinpm run checknpm run buildThe build refreshes AI artifacts and configuration references from this checkout and checks local links. Keep commands, units, defaults, and source ownership accurate. Describe user-facing behavior and include meaningful validation in your PR.