Skip to content
bloxbeanPublic

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

499 Commits

Folders and files

Repository files navigation

Yano X

snapshot

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

Start with the local showcase, configure your own application, or follow the VM operator guide. The deployment guide connects these paths, including how to add a chain while preserving existing state.

Use as a library

Reusable Yano X libraries are published to Maven Central under org.yanoproject.x; yano-x-bom aligns them with the matching Yano host. From the next release on, releases are also in https://repo.bloxbean.org/maven/releases, with the same files as on Maven Central. Runtime plugin bundles, CLI tools and the distributions ship in the GitHub release instead.

Development snapshots are in the BloxBean Maven repository under the snapshot version of the main branch, for example 0.1.0-pre4-SNAPSHOT. Each publication adds a newer build of that version; Gradle checks for it once a day, or at once with --refresh-dependencies.

repositories {
    mavenCentral()
    // Development snapshots:
    maven {
        url = uri('https://repo.bloxbean.org/maven/snapshots')
        mavenContent { snapshotsOnly() }
    }
}

dependencies {
    // yanoXVersion: a release from Maven Central, or the snapshot version.
    implementation platform("org.yanoproject.x:yano-x-bom:${yanoXVersion}")
    implementation 'org.yanoproject.x:yano-x-client'
}

See modules and artifacts for every published coordinate.

Building Yano X

The build instructions below are for contributors and release preparation.

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

The default ./gradlew build -PskipSigning=true and the focused distributionCheck tier produce one release archive, distribution/jvm/build/distributions/yano-x-jvm-<version>.zip. It contains the standard Yano JVM distribution, 17 conflict-free default plugin bundles under plugins/, the alternative eUTxO ZK runtime under optional-plugins/, a checksummed manifest covering all 18 runtime plugin bundles, the command-line and deployment tools, App-Chain Studio, and Yano/Yano X identity manifests.

The multi-node showcase ships inside the same archive. Extract it and run examples/showcase/showcase.sh quickstart --profile light --nodes 3 --instance demo. See distribution instructions for prerequisites and lifecycle commands. The GitHub release attaches this archive and, for users who need only one part, the standalone plugin pack, deployment tool, and Studio archives.

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. Yano development snapshots, such as -PyanoVersion=0.1.0-pre18-1a2b3c4-SNAPSHOT, resolve from the BloxBean Maven repository (https://repo.bloxbean.org/maven/snapshots) without it.

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 yano-x.io. 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 org.yanoproject.x.*; the repository split does not rename the app-chain technical domain.

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages