From f1973ddb3656b9823ec684e0f0db2b8e514204cb Mon Sep 17 00:00:00 2001 From: lofyer Date: Tue, 4 Aug 2026 15:11:09 +0800 Subject: [PATCH] chore: update current ZStack target to v2.2.3 Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com> --- AGENTS.md | 44 +++++++++++++++++++++---------------------- scripts/bootstrap | 4 ++-- scripts/lib/common.sh | 2 +- scripts/sync-upstream | 4 ++-- scripts/verify-image | 2 +- 5 files changed, 28 insertions(+), 28 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index bf3fc6c..d6a0f55 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,6 +1,6 @@ -# Agent Instructions - MesaStack (GPUStack downstream fork) +# Agent Instructions - ZStack AIOS (GPUStack downstream fork) -This is the **combined workspace** for our MesaStack product, a downstream fork of +This is the **combined workspace** for our ZStack AIOS product, a downstream fork of [GPUStack](https://github.com/gpustack). It bundles both the frontend and backend repos so agents and contributors work from a single root going forward. @@ -51,8 +51,8 @@ scripts/build-image --dry-run # show the plan scripts/verify-image # smoke test the current version's image scripts/verify-image --static-only # skip booting a container scripts/sync-upstream --list # upstream releases available in BOTH repos -scripts/sync-upstream v2.2.2 # bump both forks to v2.2.2 -scripts/sync-upstream v2.2.2 --dry-run +scripts/sync-upstream v2.2.3 # bump both forks to v2.2.3 +scripts/sync-upstream v2.2.3 --dry-run scripts/sync-upstream --continue # resume after resolving a cherry-pick conflict ``` @@ -60,12 +60,12 @@ scripts/sync-upstream --continue # resume after resolving a cherry-pick conflict Both repos track the **same upstream release** and keep customizations on a `v-lofyer` branch. Frontend and backend are always bumped -**together** to the same upstream tag. Current target: **v2.2.2**. +**together** to the same upstream tag. Current target: **v2.2.3**. | Repo | Branch | Upstream base | Upstream repo | | ------------------ | --------------- | ------------- | ----------------------- | -| gpustack-ui-lofyer | `v2.2.2-lofyer` | tag `v2.2.2` | `gpustack/gpustack-ui` | -| gpustack-lofyer | `v2.2.2-lofyer` | tag `v2.2.2` | `gpustack/gpustack` | +| gpustack-ui-lofyer | `v2.2.3-lofyer` | tag `v2.2.3` | `gpustack/gpustack-ui` | +| gpustack-lofyer | `v2.2.3-lofyer` | tag `v2.2.3` | `gpustack/gpustack` | ## Branch rules @@ -86,11 +86,11 @@ Use `scripts/sync-upstream`, which does the whole bump for both repos: ```bash scripts/sync-upstream --list # releases available in BOTH upstreams -scripts/sync-upstream v2.2.2 --dry-run # review the replay plan first -scripts/sync-upstream v2.2.2 # cut branches + replay fork commits +scripts/sync-upstream v2.2.3 --dry-run # review the replay plan first +scripts/sync-upstream v2.2.3 # cut branches + replay fork commits scripts/build-image # verify the result end to end -git -C gpustack-ui-lofyer push -u origin v2.2.2-lofyer -git -C gpustack-lofyer push -u origin v2.2.2-lofyer +git -C gpustack-ui-lofyer push -u origin v2.2.3-lofyer +git -C gpustack-lofyer push -u origin v2.2.3-lofyer # then update the version table + "Current target" above ``` @@ -118,14 +118,14 @@ Fork-only commits carried on top of upstream. Details in `gpustack-ui-lofyer/AGENTS.md` + `CLAUDE.md`. Notably: - `scripts/sync-github` and `scripts/rebrand` (the tooling itself). -- Rebrand user-facing `GPUStack` -> `MesaStack` (run `scripts/rebrand`). +- Rebrand user-facing `GPUStack` -> `ZStack AIOS` (run `scripts/rebrand`). - Footer/topbar trim, navigation moved to top header. ### Backend (`gpustack-lofyer`) - **API key / token prefix**: `API_KEY_PREFIX` in `gpustack/security.py` is set to - `mesastack` (upstream `gpustack`). This drives API keys, worker registration - tokens, cluster registration tokens (`mesastack_{access}_{secret}`), and the + `zstack` (upstream `gpustack`). This drives API keys, worker registration + tokens, cluster registration tokens (`zstack_{access}_{secret}`), and the masked display value. We intentionally **do not** stay backward compatible with old `gpustack_` keys (fresh customer deployments only). Keep the assertions in `tests/utils/test_api_keys.py` in sync with the prefix. @@ -143,7 +143,7 @@ origin ssh://git@192.168.0.23:11022/root/gpustack.git ## Brand rules -User-facing brand is **MesaStack** (upstream **GPUStack**). Functional identifiers +User-facing brand is **ZStack AIOS** (upstream **GPUStack**). Functional identifiers are **not** rebranded, to preserve compatibility with upstream contracts across the frontend/backend boundary: @@ -153,7 +153,7 @@ frontend/backend boundary: - JS/Python identifiers (e.g. `getGPUStackPlugin`, `gpustack_worker` proctitles) - backend-contract strings (see `SKIP_LINE_PATTERNS` in frontend `scripts/rebrand`) -The API key **prefix** (`mesastack`) is a deliberate exception: it is user-facing +The API key **prefix** (`zstack`) is a deliberate exception: it is user-facing and, by our choice, not upstream-compatible. ## Shipping a customer build @@ -201,7 +201,7 @@ image (`gpustack/gpustack:v`) in seconds: The script stages only files that actually differ from the upstream tag (`git diff ..HEAD -- 'gpustack/**/*.py'`), keeping the layer small and auditable. The Dockerfile self-checks the result at build time (asserts -`API_KEY_PREFIX == mesastack`, and that the UI carries the MesaStack brand). +`API_KEY_PREFIX == zstack`, and that the UI carries the ZStack AIOS brand). Note this image is the **control plane** (server + worker). Inference runners use separate `gpustack-runner` images pulled at runtime and are unaffected. @@ -218,17 +218,17 @@ existing image: ```bash scripts/verify-image # static + runtime checks scripts/verify-image --static-only # skip booting a container -IMAGE=mesastack/gpustack:v2.2.1 scripts/verify-image +IMAGE=mesastack/gpustack:v2.2.3 scripts/verify-image ``` Checks performed: -- **static**: `gpustack version`, `API_KEY_PREFIX == mesastack`, old `gpustack_` - keys rejected, masked value format, UI assets present, UI carries the MesaStack +- **static**: `gpustack version`, `API_KEY_PREFIX == zstack`, old `gpustack_` + keys rejected, masked value format, UI assets present, UI carries the ZStack AIOS brand, no leftover `GPUStack` string in `index.html` - **runtime**: boots with `--disable-worker`, confirms `/` serves - `MesaStack`, logs in via `POST /auth/login` (bootstrap password at + `ZStack AIOS`, logs in via `POST /auth/login` (bootstrap password at `/var/lib/gpustack/initial_admin_password`) and creates a key via - `POST /v2/api-keys` to prove the `mesastack_` prefix is live end to end + `POST /v2/api-keys` to prove the `zstack_` prefix is live end to end The test container is always removed, including on failure. diff --git a/scripts/bootstrap b/scripts/bootstrap index 5420de8..7e38439 100755 --- a/scripts/bootstrap +++ b/scripts/bootstrap @@ -13,7 +13,7 @@ # # Usage: # scripts/bootstrap # clone both, checkout the default version -# scripts/bootstrap v2.2.2 # checkout a specific v-lofyer +# scripts/bootstrap v2.2.3 # checkout a specific v-lofyer # # Existing clones are left alone (only their remotes are verified). # @@ -24,7 +24,7 @@ set -o pipefail source "$(dirname "${BASH_SOURCE[0]}")/lib/common.sh" # Keep in sync with the version table in AGENTS.md. -DEFAULT_VERSION="v2.2.2" +DEFAULT_VERSION="v2.2.3" VERSION="${1:-${DEFAULT_VERSION}}" BRANCH="${VERSION}-lofyer" diff --git a/scripts/lib/common.sh b/scripts/lib/common.sh index 7d1b502..231114b 100644 --- a/scripts/lib/common.sh +++ b/scripts/lib/common.sh @@ -48,7 +48,7 @@ require_repos() { repo_branch() { git -C "${1}" rev-parse --abbrev-ref HEAD 2>/dev/null; } # Extract the upstream version from a v-lofyer branch name. -# Echoes the version (e.g. v2.2.2) or fails. +# Echoes the version (e.g. v2.2.3) or fails. lofyer_branch_version() { local branch="${1}" if [[ "${branch}" =~ ^(v[0-9]+\.[0-9]+\.[0-9]+[0-9A-Za-z.]*)-lofyer$ ]]; then diff --git a/scripts/sync-upstream b/scripts/sync-upstream index 0d387f7..5c44b57 100755 --- a/scripts/sync-upstream +++ b/scripts/sync-upstream @@ -9,8 +9,8 @@ # # Usage: # scripts/sync-upstream --list # show available upstream versions -# scripts/sync-upstream v2.2.2 # bump both forks to v2.2.2 -# scripts/sync-upstream v2.2.2 --dry-run # show the plan only +# scripts/sync-upstream v2.2.3 # bump both forks to v2.2.3 +# scripts/sync-upstream v2.2.3 --dry-run # show the plan only # scripts/sync-upstream --continue # resume after resolving conflicts # # Notes: diff --git a/scripts/verify-image b/scripts/verify-image index 3b0bf82..8cf27d8 100755 --- a/scripts/verify-image +++ b/scripts/verify-image @@ -11,7 +11,7 @@ # # Usage: # scripts/verify-image # verify ${NAMESPACE}/${REPOSITORY}: -# IMAGE=mesastack/gpustack:v2.2.2 scripts/verify-image +# IMAGE=mesastack/gpustack:v2.2.3 scripts/verify-image # scripts/verify-image --static-only # skip booting a container # set -o errexit