Skip to content

Latest commit

 

History

362 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yano X

Yano X is the JVM extension and application ecosystem for Yano.

The build consumes published Yano artifacts and the matching ordinary Yano JVM ZIP. For a released yanoVersion, Gradle downloads and caches the ZIP from the matching bloxbean/yano GitHub release. yanoJvmDist remains an explicit override for local or staged builds. The build does not invoke tasks in, copy sources from, or assume the location of a Yano checkout.

For a released Yano version:

./gradlew distributionCheck \
  -Pversion=<yano-x-version> \
  -PyanoVersion=<released-yano-version>

Local development

During the repository split, first publish the matching Yano checkout to Maven Local and create its ordinary JVM ZIP. No special base ZIP is required:

./gradlew publishToMavenLocal :app:yanoDistZip \
  -PskipSigning=true --no-parallel

Then pass the exact published version and ZIP to Yano X:

./gradlew distributionCheck \
  -PuseMavenLocal=true \
  -Pversion=<published-yano-version> \
  -PyanoVersion=<published-yano-version> \
  -PyanoJvmDist=/absolute/path/to/yano-<build-identity>.zip

This produces two reproducible JVM artifacts under distribution/jvm/build/distributions:

  • yano-x-plugin-pack-<version>.zip, containing 17 conflict-free default bundles under plugins/, the alternative eUTxO ZK runtime under optional-plugins/, and a checksummed manifest covering all 18 independently versioned runtime plugin bundles.
  • yano-x-jvm-<version>.zip, containing the standard Yano JVM distribution, the same default and optional plugin layout, and Yano/Yano X identity manifests.

Yano X is JVM-only. verifyJvmOnlyBuild rejects native-image build or distribution tasks, while the Yano base ZIP contract records whether its plugin directory is supported.

mavenLocal() is disabled unless useMavenLocal=true. A missing release asset, a ZIP whose root build identity differs from yanoVersion, or Maven artifacts from another Yano version fail verification.

Distributions use the dependency-complete bundle outputs that are attached to Yano X's Maven publications, so ./gradlew clean build does not first need to resolve the project's own artifacts. CI also stages all publications in an empty, build-scoped Maven repository using -PinternalRepository=<path>. Set -PyanoRepository=<URL-or-path> when the requested Yano version is in a staging repository rather than Maven Central; this read-only input is distinct from the build-scoped Yano X publication repository.

Release rehearsal must disable Maven Local and pin every input explicitly. For an empty build-scoped repository, run the clean build and publication gates:

./gradlew clean build \
  -Pversion=<yano-x-version> \
  -PyanoRepository=/absolute/path/to/yano-staging \
  -PyanoVersion=<staged-yano-version> \
  -PyanoJvmDist=/absolute/path/to/yano-<build-identity>.zip \
  -PuseMavenLocal=false

./gradlew publishAllPublicationsToInternalRepository \
  -Pversion=<yano-x-version> \
  -PinternalRepository=/absolute/path/to/yano-x-staging \
  -PyanoRepository=/absolute/path/to/yano-staging \
  -PyanoVersion=<staged-yano-version> \
  -PuseMavenLocal=false

Both release ZIPs contain LICENSE and a normalized CycloneDX 1.6 SBOM under sbom/. Distribution verification rejects missing license metadata for any external Maven component. The combined JVM ZIP also preserves Yano's license as LICENSE.yano and its host SBOM as sbom/yano.cdx.json.

The default plugin directory is an activatable selection, not an indiscriminate copy of every published alternative. The standard eUTxO runtime and the eUTxO ZK runtime both intentionally provide app-state-machine/eutxo-ledger; to use the ZK implementation, remove the standard eUTxO ledger bundle and copy the ZK runtime bundle from optional-plugins/ into plugins/ on every member. Validate the resulting set with tools/yano-plugins/bin/yano-plugins validate plugins/*.jar.

Documentation

The public documentation site lives in www/ and is published at yanox.dev. It covers app-chain concepts, a build-and-run quickstart, the plugin framework, the generated recipe/capability/configuration catalogs, the imported tutorials, and an AI ingestion layer (/llms.txt, /llms-full.txt, /ai/starter-pack.md, /ai/catalog.json).

cd www && npm ci && npm run dev

It is built from the markdown in docs/, which remains the source of truth: the site imports the tutorials and state-machine references at build time and links to the rest.

See ADR-038 for its content strategy.

Repository documents

See Build and test, distributions, and the app-chain documentation index for the independent Yano X workflows. The Java package namespace remains com.bloxbean.cardano.yano.appchain.*; the repository split does not rename the app-chain technical domain.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages