Agent Skills › xberg-io/xberg › xberg-release

xberg-release

GitHub

用于准备Xberg版本发布,同步根Cargo.toml权威版本至各语言绑定、集成包及Helm Chart,确保多平台发布前版本一致性与CI门禁通过。

.ai-rulez/skills/xberg-release/SKILL.md xberg-io/xberg

Trigger Scenarios

执行版本发布流程 需要同步多语言包和Helm Chart的版本号 运行CI前的版本一致性检查

Install

npx skills add xberg-io/xberg --skill xberg-release -g -y
More Options

Non-standard path

npx skills add https://github.com/xberg-io/xberg/tree/main/.ai-rulez/skills/xberg-release -g -y

Use without installing

npx skills use xberg-io/xberg@xberg-release

指定 Agent (Claude Code)

npx skills add xberg-io/xberg --skill xberg-release -a claude-code -g -y

安装 repo 全部 skill

npx skills add xberg-io/xberg --all -g -y

预览 repo 内 skill

npx skills add xberg-io/xberg --list

SKILL.md

Frontmatter
{
    "name": "xberg-release",
    "type": "Playbook",
    "title": "Xberg Release",
    "x-ai-rulez": {
        "id": "xberg-release",
        "kind": "skill",
        "metadata": {
            "name": "xberg-release"
        }
    },
    "description": "Prepare Xberg releases: version sync, generated bindings, chart and CI gates."
}

Xberg release

Repo specifics for the shared release-workflow skill: how the version propagates, and the readiness gate before a push or 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.

mise run version:sync runs three steps

mise run version:sync runs, in order (mise.toml):

  1. alef sync-versions — the alef-managed binding manifests (their own version = core version). Targets are listed in alef.toml [workspace.sync] extra_paths (packages/python, packages/ruby, crates/xberg-node, packages/go, cli-proxy, …).
  2. python3 scripts/sync_integration_versions.py — the integrations under integrations/, the Helm chart, and plugin/.ai-rulez/config.plugins.toml [plugin].version. These are NOT alef-managed, so alef never touches them.
  3. mise run plugin:generate — ai-rulez generate --plugin (bundles under plugin/) plus scripts/sync_public_skills.py (root skills/). CI Lint fails on drift in either (mise run plugin:verify).

Bump/set helpers chain both automatically: mise run version:bump:major|minor|patch. mise run 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) plus charts/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 npm package.json (1.0.0-rc.32, also valid semver);
  • the xberg dependency 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 bare xberg>=1.0.0 excludes all 1.0.0rcN pre-releases per PEP 440.
    • pom: <xberg.version> (native form).
    • npm package.json: an exact @xberg-io/xberg pin (native/semver form), matching the package's own version.

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 mise run version:bump:*, then commit the synced manifests together with the Cargo.toml change (atomic).

Don't

  • Don't hand-edit a package/manifest version or an integration's xberg pin — 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.

Readiness

A release-ready commit is one for which CI, the Publish Release dry run, and Benchmarks complete successfully on the same pushed SHA. A successful older run does not validate newer local commits.

Audit

  1. Check actual workflow failures; distinguish failures from cancellations, skipped jobs, and runs superseded by a newer SHA.
  2. Map each failed job to a verified local fix or an explicit unresolved blocker. Do not infer that one similarly named fix covers a different job.
  3. Verify generated Alef output is clean and reproducible with the version pinned in alef.toml; generated freshness failures remain unresolved until regeneration converges.
  4. Keep the Unreleased changelog user-facing and synchronized with docs copies. Do not add CI, test, generator, dependency, or internal implementation notes unless users are affected.
  5. Run targeted local checks for changed behavior plus the repository's formatting and linting tasks. Do not substitute a broad passing suite for a failed job's exact configuration.

Publish dry-run contracts

  • Helm appVersion, the container tag, and every artifacthub.io/images entry must describe an image that exists in GHCR. A chart package that names a missing compatibility tag causes Artifact Hub scan failures even when the chart itself published successfully.
  • Linux native-library verification must reject unreadable binaries and GLIBC imports above the supported floor. A readable native library with no GLIBC_* imports is valid; it is not evidence that the scan failed.
  • Windows artifact verification must evaluate each DLL independently. Reset per-library status before inspecting the next artifact so one result cannot leak into another.
  • Elixir musl smoke tests need the NIF and the directory containing its bundled native libraries. Passing only the NIF path is insufficient when dependent shared libraries are staged beside it.
  • Windows GNU Ruby builds must use the ORT-free feature set because the GNU ABI has no compatible ORT prebuilt.
  • Scoop (shared scoop-distribution skill): xberg.exe imports onnxruntime.dll, so the publish job must vendor the DLL closure into the zip; the shim resolves DLLs from the app directory and no depends entry is needed. Tesseract is looked up on PATH at runtime and belongs in the manifest's notes, not depends.

Push and dispatch

  • Push one coherent state. Do not repeatedly push while intentional CI is still running merely to get newer diagnostics.
  • After the push, dispatch CI, Publish Release with dry-run inputs, and Benchmarks against that pushed SHA.
  • Retry only after identifying and addressing the cause. Cancellation alone is not a defect; a repeated actual failure is.
  • Close addressed issues only after the fixing commit is reachable remotely, and state the intended release when requested.

Version History

  • 844bb91 Current 2026-11-03 09:37

Same Skill Collection

.ai-rulez/skills/alef-generated-bindings/SKILL.md
.ai-rulez/skills/api-server-mcp/SKILL.md
.ai-rulez/skills/benchmark-workflow/SKILL.md
.ai-rulez/skills/chunking-embeddings/SKILL.md
.ai-rulez/skills/config-loading-precedence/SKILL.md
.ai-rulez/skills/crate-structure/SKILL.md
.ai-rulez/skills/e2e-fixtures/SKILL.md
.ai-rulez/skills/extraction-pipeline-patterns/SKILL.md
.ai-rulez/skills/feature-flag-conventions/SKILL.md
.ai-rulez/skills/feature-flag-policy/SKILL.md
.ai-rulez/skills/format-specific-extraction/SKILL.md
.ai-rulez/skills/mime-detection-routing/SKILL.md
.ai-rulez/skills/ocr-pipeline-and-quality/SKILL.md
.ai-rulez/skills/pdf-backends/SKILL.md
.ai-rulez/skills/plugin-architecture-patterns/SKILL.md
.ai-rulez/skills/polyrepo-boundaries/SKILL.md
.ai-rulez/skills/release-readiness/SKILL.md
.ai-rulez/skills/release-versioning/SKILL.md
.ai-rulez/skills/test-corpus/SKILL.md
.ai-rulez/skills/wasm-constraints/SKILL.md
.ai-rulez/skills/xberg-typescript-toolchain/SKILL.md
plugin/.ai-rulez/skills/batch-extraction/SKILL.md
plugin/.ai-rulez/skills/chunking/SKILL.md
plugin/.ai-rulez/skills/extracting-keywords/SKILL.md
plugin/.ai-rulez/skills/extracting-tables/SKILL.md
plugin/.ai-rulez/skills/extracting-with-ocr/SKILL.md
plugin/.ai-rulez/skills/picking-a-format/SKILL.md
plugin/.ai-rulez/skills/xberg-batch-extraction/SKILL.md
plugin/.ai-rulez/skills/xberg-chunking/SKILL.md
plugin/.ai-rulez/skills/xberg-extracting-keywords/SKILL.md
plugin/.ai-rulez/skills/xberg-extracting-tables/SKILL.md
plugin/.ai-rulez/skills/xberg-extracting-with-ocr/SKILL.md
plugin/.ai-rulez/skills/xberg-picking-a-format/SKILL.md
plugin/.ai-rulez/skills/xberg/SKILL.md
plugin/.cursor-plugin/skills/batch-extraction/SKILL.md
plugin/.cursor-plugin/skills/chunking/SKILL.md
plugin/.cursor-plugin/skills/extracting-keywords/SKILL.md
plugin/.cursor-plugin/skills/extracting-tables/SKILL.md
plugin/.cursor-plugin/skills/extracting-with-ocr/SKILL.md
plugin/.cursor-plugin/skills/picking-a-format/SKILL.md
plugin/.cursor-plugin/skills/xberg-batch-extraction/SKILL.md
plugin/.cursor-plugin/skills/xberg-chunking/SKILL.md
plugin/.cursor-plugin/skills/xberg-extracting-keywords/SKILL.md
plugin/.cursor-plugin/skills/xberg-extracting-tables/SKILL.md
plugin/.cursor-plugin/skills/xberg-extracting-with-ocr/SKILL.md
plugin/.cursor-plugin/skills/xberg-picking-a-format/SKILL.md
plugin/.cursor-plugin/skills/xberg/SKILL.md
plugin/.opencode/skills/xberg-batch-extraction/SKILL.md
plugin/.opencode/skills/xberg-chunking/SKILL.md

Metadata

Files
0
Version
844bb91
Hash
fc8bbf62
Indexed
2026-11-03 09:37

Home - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-11-03 22:27
浙ICP备14020137号-1