Răsfoiți Sursa

release: sm121 0.2.0; changelog and release process

Alexander Korolev 15 ore în urmă
părinte
comite
b134c7f539
5 a modificat fișierele cu 54 adăugiri și 4 ștergeri
  1. 18 0
      CHANGELOG.md
  2. 1 1
      Cargo.lock
  3. 1 1
      Cargo.toml
  4. 30 0
      RELEASING.md
  5. 4 2
      src/native/flare.rs

+ 18 - 0
CHANGELOG.md

@@ -0,0 +1,18 @@
+# Changelog
+
+Semantic versioning for the launcher CLI (`sm121`). The add-on image has its
+own version and its own `sm121/CHANGELOG.md`; do not mix them.
+
+## 0.2.0 — 2026-10-28
+
+- FLARE: cached `flare download` now resolves the prepared package through
+  `flare models list --json` instead of failing on the metadata-only
+  "Resolved package" line.
+- FLARE: `flare download` gets `--tensor-parallel` from the recipe's launch
+  size; a TP4 package is no longer rejected as "TP size 1".
+- FLARE: local mirror copies the package directory recursively, including
+  `weights/` and `deployments/` companions.
+- FLARE `gb10`: production recipe updated to the 2026-10-27 package
+  (`c32`, 1 GiB row cache, resident scales, `--served-model-name`).
+- Tooling: `sm121` installed with `cargo install --path . --force`; version
+  now follows `Cargo.toml`, not a hard-coded 0.1.0.

+ 1 - 1
Cargo.lock

@@ -2941,7 +2941,7 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
 
 [[package]]
 name = "sm121"
-version = "0.1.0"
+version = "0.2.0"
 dependencies = [
  "anyhow",
  "axum",

+ 1 - 1
Cargo.toml

@@ -1,6 +1,6 @@
 [package]
 name = "sm121"
-version = "0.1.0"
+version = "0.2.0"
 edition = "2024"
 license = "MIT"
 

+ 30 - 0
RELEASING.md

@@ -0,0 +1,30 @@
+# Releasing sm121
+
+## Versioning
+
+- Use semver in `Cargo.toml`: `0.x.y` while the CLI is still pre-1.0.
+- Bump `minor` for features/behaviour changes, `patch` for fixes.
+- `sm121 --version` and clap read the `Cargo.toml` version directly.
+- The add-on image version is separate: it lives in `sm121/config.yaml` and
+  has its own `sm121/CHANGELOG.md` section per release.
+
+## Release steps
+
+1. Update `Cargo.toml` `version`.
+2. Add a `## <version>` section to `CHANGELOG.md` (newest first), describing
+   what an operator notices — not only internals.
+3. Run the gates: `make check` (fmt → clippy → test → ≤500 lines).
+4. Build and install the CLI: `cargo install --path . --force`.
+5. Commit, then tag and push:
+   ```sh
+   git tag -a v0.2.0 -m "sm121 0.2.0"
+   git push origin v0.2.0
+   ```
+6. Verify `sm121 --version` and, for the add-on, rebuild/re-run the CI image
+   with `SM121_VERSION=<addon version>`; add a matching add-on changelog
+   section.
+
+## Rule
+
+Do not leave the CLI at `0.1.0` after feature work. A release is defined by
+the version in `Cargo.toml`, the changelog entry, and the git tag.

+ 4 - 2
src/native/flare.rs

@@ -116,7 +116,10 @@ pub fn download_cmd(config: &Config, recipe: &Recipe) -> Result<String> {
     // Use the launch-node count as the package's TP (a recipe with
     // `required_nodes` set is a TP-N package; base recipes fall back to
     // tensor_parallel_size).
-    let tp = recipe.required_nodes.unwrap_or(recipe.tensor_parallel_size).max(1);
+    let tp = recipe
+        .required_nodes
+        .unwrap_or(recipe.tensor_parallel_size)
+        .max(1);
     cmd.push_str(&format!(" --tensor-parallel {}", tp));
     // NOTE: `flare download` does NOT accept the approval flags (it fails with
     // "unexpected argument") — the signature gate lives on `orbit run`, which
@@ -326,7 +329,6 @@ pub async fn serve(
     // Local mirror: launch from the controller's own disk when configured —
     // engram rows are read at request time, so a shared mount is the wrong
     // place for the package even with a RAM row cache.
-    let mut package = package;
     if let Some(dir) = local_dir_for(config, &cluster.name) {
         let dir = dir.replace('~', "$HOME");
         let cmd = mirror_cmd(&dir, &package);