Skip to content

feat(release): publish into xlings ecosystem (mirror xlings-res/mcpp + index bump PR)#194

Merged
Sunrisepeak merged 1 commit into
mainfrom
feat/release-ecosystem-publish
Jul 1, 2026
Merged

feat(release): publish into xlings ecosystem (mirror xlings-res/mcpp + index bump PR)#194
Sunrisepeak merged 1 commit into
mainfrom
feat/release-ecosystem-publish

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

What

Automates mcpp's release→xlings-ecosystem publishing (previously all manual, e.g. openxlings/xim-pkgindex#335). New publish-ecosystem job (needs all 4 platform builds):

  1. Mirror binaries → xlings-res/mcpp (GitHub + GitCode) via mirror_res.sh mcpp <ver> — mirrors the 4 platform archives + .sha256 sidecars, GET-verifies 200 on both hosts. Replaces the by-hand mirror.
  2. Open index bump PRopenxlings/xim-pkgindex via bump_index.sh mcpp <ver> (a maintainer merges it).

Shared scripts vendored under .github/tools/ (mirror_res.sh, bump_index.sh, gtc), kept in sync with openxlings/xlings tools/. Best-effort/non-blocking — never fails the release. Secrets already configured: XLINGS_RES_TOKEN, XIM_PKGINDEX_TOKEN, GITCODE_TOKEN.

⚠️ Decision needed — mcpp index bump format

bump_index.sh delegates the lua edit to the index repo's version-check.py --apply --only mcpp. Because pkgs/m/mcpp.lua is marked url_template, apply emits ["<ver>"] = { url = github.com/mcpp-community/..., sha256 }not the ["<ver>"] = "XLINGS_RES" sentinels mcpp currently uses (which keep the GitCode/CN mirror fallback).

So the auto-generated bump PR would change mcpp's entry shape (regressive for CN users). It's still a human-reviewed PR, so nothing ships silently — but to make the automation produce XLINGS_RES-consistent bumps, pkgs/m/mcpp.lua should be switched to res_versioned = true (and drop url_template, which for mcpp is only consumed by the bot). That's an index-repo change — deferred to maintainer.

Companion: openxlings/xlings#349. Design: openxlings/xlings .agents/docs/2026-07-01-release-ecosystem-publish-design.md.

…+ index bump PR)

Add a publish-ecosystem job (needs all 4 platform builds) that, on release:
- mirrors mcpp binaries to xlings-res/mcpp (GitHub + GitCode) via mirror_res.sh
  so XLINGS_RES downloads resolve on every platform incl. the CN/GitCode path
  (replaces the previous by-hand mirror);
- opens a PR against openxlings/xim-pkgindex bumping mcpp to this version via
  bump_index.sh (a maintainer merges it).

Scripts are vendored under .github/tools/ (mirror_res.sh, bump_index.sh, gtc),
kept in sync with openxlings/xlings tools/. Best-effort/non-blocking: failures
here never fail the release. Secrets already configured (XLINGS_RES_TOKEN,
XIM_PKGINDEX_TOKEN, GITCODE_TOKEN).
@Sunrisepeak Sunrisepeak merged commit 5bfb2a1 into main Jul 1, 2026
5 checks passed
@Sunrisepeak Sunrisepeak deleted the feat/release-ecosystem-publish branch July 1, 2026 14:09
Sunrisepeak added a commit to openxlings/xim-pkgindex that referenced this pull request Jul 1, 2026
…to-bump) (#337)

mcpp is mirrored to xlings-res/mcpp and all version entries are XLINGS_RES
sentinels, but only the linux block was bot-opted-in — via url_template, which
makes version-check.py emit url+sha256 (github-only, no CN/GitCode fallback),
inconsistent with the existing entries; macosx/windows had no marker at all so
the bot skipped them (manual bumps).

Replace linux's url_template with res_versioned=true and add it to
macosx/windows. Now version-check.py --apply --only mcpp appends
["<ver>"]="XLINGS_RES" on all three platforms and bumps latest.ref,
matching how mcpp is actually maintained (and how xlings itself works).

The client never reads platform-level url_template (only the bot does; client
resolves via the XLINGS_RES sentinel), so dropping it is safe. Enables the
mcpp release pipeline's automated bump (mcpp-community/mcpp#194) to produce
correct, mirror-backed entries.

Co-authored-by: sunrisepeak <x.d2learn.org@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants