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