@biffo/cli 0.298.28 → 0.298.31

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,7 +41,14 @@ jobs:
41
41
  - uses: astral-sh/setup-uv@v5
42
42
  with:
43
43
  enable-cache: true
44
- - run: uv sync --all-groups
44
+ # `--locked` mirrors the root repo's own `ci.yml` (see the comment
45
+ # there): plain `uv sync` silently RE-RESOLVES when `pyproject.toml`
46
+ # has drifted from `uv.lock`, so a dependency bump committed without
47
+ # re-running `uv lock` still installs and still goes green — the
48
+ # committed lock just stops describing what actually ran. Every
49
+ # `uv sync` call in this workflow carries it for the same reason
50
+ # (biffo-template#1731).
51
+ - run: uv sync --all-groups --locked
45
52
  - run: uv run ruff check .
46
53
  - run: uv run ruff format --check .
47
54
 
@@ -54,7 +61,7 @@ jobs:
54
61
  - uses: astral-sh/setup-uv@v5
55
62
  with:
56
63
  enable-cache: true
57
- - run: uv sync --all-groups
64
+ - run: uv sync --all-groups --locked
58
65
  - run: uv run pyright
59
66
 
60
67
  test:
@@ -66,7 +73,7 @@ jobs:
66
73
  - uses: astral-sh/setup-uv@v5
67
74
  with:
68
75
  enable-cache: true
69
- - run: uv sync --all-groups
76
+ - run: uv sync --all-groups --locked
70
77
  # `--cov-report=json` is additive to the xml Codecov reads: the step
71
78
  # below (`scripts/error_branch_coverage.py`) reads coverage.json and
72
79
  # nothing else, so without this line it has no input and exits 2 ("no
@@ -180,7 +187,7 @@ jobs:
180
187
  - uses: astral-sh/setup-uv@v5
181
188
  with:
182
189
  enable-cache: true
183
- - run: uv sync --all-groups
190
+ - run: uv sync --all-groups --locked
184
191
  # Authoritative check: load_manifest() runs the *real* Pydantic model
185
192
  # (biffo_plugin_sdk.plugin.PluginManifest) that the SDK, the Core API's
186
193
  # discover_plugin_manifests(), and `biffo plugin install` all actually
@@ -305,7 +312,7 @@ jobs:
305
312
  - uses: astral-sh/setup-uv@v5
306
313
  with:
307
314
  enable-cache: true
308
- - run: uv sync --all-groups
315
+ - run: uv sync --all-groups --locked
309
316
  # Fails on a real advisory, but treats an unreachable PyPI/OSV as
310
317
  # INCONCLUSIVE rather than reddening a required check for an
311
318
  # infrastructure hiccup (#591, #743). The raw `uv run pip-audit` this
@@ -90,7 +90,18 @@ jobs:
90
90
  with:
91
91
  enable-cache: true
92
92
 
93
- - run: uv sync --all-groups
93
+ # `--locked` mirrors every `uv sync` call site in this skeleton's own
94
+ # ci.yml (see the comment there): plain `uv sync` silently
95
+ # RE-RESOLVES when `pyproject.toml` has drifted from `uv.lock`, so a
96
+ # dependency bump committed without re-running `uv lock` still
97
+ # installs and still succeeds — the committed lock just stops
98
+ # describing what actually ran. This workflow fires on every `v*` tag
99
+ # push and is what actually builds and publishes the release
100
+ # artefact, so drift here ships silently rather than failing closed
101
+ # (biffo-template#1731, missed here originally and fixed per #1762;
102
+ # see scripts/uv-sync-locked.test.sh for the guard that now checks
103
+ # every call site under _skeletons/**/.github/workflows/**).
104
+ - run: uv sync --all-groups --locked
94
105
 
95
106
  # Full CI gate re-run on the tag, not just a build — a tag push must
96
107
  # be at least as strict as a merged PR before anything is published.
@@ -182,7 +182,13 @@ jobs:
182
182
  - uses: astral-sh/setup-uv@v5
183
183
  with:
184
184
  enable-cache: true
185
- - run: uv sync --all-groups
185
+ # `--locked` mirrors the root repo's own `ci.yml` (see the comment
186
+ # there): plain `uv sync` silently RE-RESOLVES when `pyproject.toml`
187
+ # has drifted from `uv.lock`, so a dependency bump committed without
188
+ # re-running `uv lock` still installs and still goes green — the
189
+ # committed lock just stops describing what actually ran
190
+ # (biffo-template#1731).
191
+ - run: uv sync --all-groups --locked
186
192
  - name: Lint
187
193
  if: ${{ !cancelled() }}
188
194
  run: uv run ruff check .
package/dist/index.js CHANGED
@@ -809,7 +809,13 @@ var EMPTY_SUMMARY = () => ({
809
809
  async function planCoreUpgrade(options) {
810
810
  const mergeFile = options.mergeFile ?? gitMergeFile;
811
811
  const trackedOnly = { trackedOnly: true };
812
- const base = new Set(listTemplateOwnedFiles(options.baseDir, options.manifest, trackedOnly));
812
+ const baseManifestPath = join5(options.baseDir, CORE_MANIFEST_FILE);
813
+ const baseManifest = existsSync5(baseManifestPath) ? readCoreManifest(options.baseDir) : null;
814
+ const base = new Set(
815
+ listTemplateOwnedFiles(options.baseDir, options.manifest, trackedOnly).filter(
816
+ (path) => baseManifest === null || isTemplateOwned(path, baseManifest)
817
+ )
818
+ );
813
819
  const ours = new Set(listTemplateOwnedFiles(options.oursDir, options.manifest));
814
820
  const theirs = new Set(listTemplateOwnedFiles(options.theirsDir, options.manifest, trackedOnly));
815
821
  const divergentPrefixes = readDivergenceConfig(options.oursDir).warnOnly.map((e) => e.prefix);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@biffo/cli",
3
- "version": "0.298.28",
3
+ "version": "0.298.31",
4
4
  "description": "Biffo project scaffolding CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",