Release Versioning
How xberg versions are synced and released — Cargo.toml is the single source of truth, `task vers…
by xberg-io · MIT
The skill
How xberg versions are synced and released — Cargo.toml is the single source of truth, `task version:sync` propagates it to alef-managed binding manifests AND the integrations under integrations/, which are versioned and published in lockstep with core (including -rc.N). Load before bumping a version, editing the version-sync task, or touching an integration's version/xberg dependency.
Release & Versioning
Single source of truth
The root Cargo.toml [workspace.package] version is the one authoritative version (including any
-rc.N pre-release suffix). Everything else is derived from it — never hand-edit
a version in a package manifest.
task version:sync runs three steps
task version:sync (alias task versions:sync) runs, in order
(.task/tools/version-sync.yml):
alef sync-versions— the alef-managed binding manifests (their own version = core version). Targets are listed inalef.toml[workspace.sync] extra_paths(packages/python, packages/ruby, crates/xberg-node, packages/go, cli-proxy, …).python3 scripts/sync_integration_versions.py— the integrations underintegrations/, the Helm chart, andplugin/.ai-rulez/config.toml[plugin].version. These are NOT alef-managed, so alef never touches them.ai-rulez generate --plugin— regenerates the per-runtime coding-agent plugin bundles underplugin/from the just-synced config.
Bump/set helpers chain both automatically:
task version:bump:major|minor|patch, task version:set -- <version>.
task version:check prints the Cargo version and runs sync_integration_versions.py --check,
failing on integration drift. It does not dry-run alef sync-versions.
Integrations are lockstep with core
The integration packages under integrations/ are versioned and published together
with core across four target families:
- Python → PyPI: langchain, llama-index (readers + node-parser), crewai, txtai, surrealdb.
- Java → Maven Central: spring-ai (
io.xberg:spring-ai-xberg). - npm → npm: n8n-nodes-xberg, langchain-xberg, llamaindex-xberg (
@xberg-io/*). - Helm → chart:
charts/xberg/Chart.yaml(version,appVersion, the ArtifactHub image tag and prerelease flag) pluscharts/xberg/README.md's--version.
scripts/sync_integration_versions.py sets, for each manifest:
- the package's own
version— PEP 440 form for pyproject (1.0.0-rc.32→1.0.0rc32), native form for the Maven pom and npmpackage.json(1.0.0-rc.32, also valid semver); - the
xbergdependency pin, so an integration always requires the core it ships with:- pyproject: a floor
xberg>=<core>(PEP 440 form). Naming the rc is deliberate — a barexberg>=1.0.0excludes all1.0.0rcNpre-releases per PEP 440. - pom:
<xberg.version>(native form). - npm
package.json: an exact@xberg-io/xbergpin (native/semver form), matching the package's own version.
- pyproject: a floor
To add a new integration: add its manifest to VERSION_TARGETS (own version) and, if it
depends on xberg, XBERG_DEP_MANIFESTS in scripts/sync_integration_versions.py
(npm package.json manifests are collected in NPM_MANIFESTS, which feeds both lists).
The llama-index dev aggregator (integrations/python/llama-index/pyproject.toml, version
0.0.0, unpublished) is dep-only — not a version target.
Do
- Bump via
task version:bump:*/task version:set, then commit the synced manifests together with the Cargo.toml change (atomic). - Run
task version:checkin CI to guarantee integration manifests never drift from core.
Don't
- Don't hand-edit a package/manifest version or an integration's
xbergpin — run the sync. - Don't add integration manifests to
alef.toml[workspace.sync]— alef would clobber their independent-but-derived layout; the dedicated script owns them.
Use this skill
Connect your agent to the Skill Store MCP server and ask for it by ref: xberg-io/release-versioning-54198639532.
Details
- Publisher
- xberg-io
- Category
- Software Development › DevOps & cloud
- License
- MIT
- Updated
- 2026-10-19
References
More from xberg-io
- Alef Generated Bindings Alef-managed generated bindings in packages/* and binding crates — the regeneration workflow (tas…
- Api Server Mcp REST API server and MCP protocol integration
- Benchmark Workflow Run, diagnose, or change Xberg extraction benchmarks, quality scoring, benchmark fixtures, artifa…
- Chunking Embeddings Chunking, embeddings, and RAG pipeline integration