@mnci/cli 1.11.1 → 1.12.0

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.
package/README.md CHANGED
@@ -223,8 +223,11 @@ would make `npm run lint` and `npm run format:check` mutually unsatisfiable.
223
223
  Choosing Prettier means accepting its call there.
224
224
 
225
225
  `npm run lint` checks code quality; `npm run format` (write) and
226
- `npm run format:check` (CI-safe) handle formatting. The CI runs lint/test/build
227
- only — formatting is left as a local/pre-commit step.
226
+ `npm run format:check` (CI-safe) handle formatting. **Both run in CI**, as
227
+ separate steps: ESLint is configured for correctness only and deliberately
228
+ reports nothing about formatting, so Prettier needs a gate of its own or the
229
+ whole formatting opinion is advisory and a workspace drifts out of compliance
230
+ with no signal anywhere.
228
231
 
229
232
  TypeScript is not a question — every workspace runs the **dual compiler** from
230
233
  [Nx's TS 7 guide](https://nx.dev/docs/technologies/typescript/guides/typescript-7):
package/dist/cli.js CHANGED
@@ -167,9 +167,9 @@ function fileExists(path) {
167
167
 
168
168
  // src/util/names.ts
169
169
  function assertValidProjectName(name, label) {
170
- if (!/^[a-z][a-z0-9-]*$/.test(name)) {
170
+ if (!/^[a-z][a-z0-9-]*(?:\.[a-z0-9-]+)*$/.test(name)) {
171
171
  throw new Error(
172
- `${label} '${name}' is invalid \u2014 use lowercase letters, digits and hyphens, starting with a letter (e.g. 'my-project').`
172
+ `${label} '${name}' is invalid \u2014 use lowercase letters, digits, hyphens and dots, starting with a letter, with no leading, trailing or repeated dot (e.g. 'my-project', 'my.service').`
173
173
  );
174
174
  }
175
175
  }
@@ -1269,6 +1269,12 @@ out
1269
1269
  tmp
1270
1270
  package-lock.json
1271
1271
  *.lock
1272
+ .venv
1273
+ venv
1274
+ __pycache__
1275
+ .pytest_cache
1276
+ .ruff_cache
1277
+ .dart_tool
1272
1278
  `;
1273
1279
  function vscodeWorkspace(workspaceName) {
1274
1280
  return JSON.stringify(
@@ -1523,11 +1529,17 @@ steps:
1523
1529
  - script: npx nx sync:check
1524
1530
  displayName: Verify the workspace is synced (run 'npx nx sync' locally and commit if this fails)
1525
1531
 
1526
- # One verify for every run (PR and main). \`npm run lint\` abstracts the chosen
1527
- # linter (eslint via nx, or oxlint), so the pipeline needs no linter branch;
1528
- # Nx cache makes unchanged test/build projects instant.
1532
+ # One verify for every run (PR and main). Nx cache makes unchanged test/build
1533
+ # projects instant.
1529
1534
  - script: npm run lint
1530
1535
  displayName: Lint
1536
+
1537
+ # Prettier owns ALL formatting in this workspace, so it needs a gate of its
1538
+ # own: ESLint is configured for correctness only and deliberately reports
1539
+ # nothing about formatting. Without this step the entire formatting opinion is
1540
+ # advisory, and a workspace drifts out of compliance with no signal anywhere.
1541
+ - script: npm run format:check
1542
+ displayName: Check formatting (run 'npm run format' locally to fix)
1531
1543
  # \`lint\` here also runs any Nx lint targets \`npm run lint\` does not cover \u2014
1532
1544
  # notably Python's ruff (every Python project owns a hand-authored \`lint\`
1533
1545
  # target). For the eslint stack the JS lint runs twice, but Nx caches the
@@ -1694,11 +1706,18 @@ jobs:
1694
1706
  - run: npx nx sync:check
1695
1707
  name: Verify the workspace is synced (run 'npx nx sync' locally and commit if this fails)
1696
1708
 
1697
- # One verify for every run (PR and main). \`npm run lint\` abstracts the chosen
1698
- # linter (eslint via nx, or oxlint), so the workflow needs no linter branch;
1699
- # Nx cache makes unchanged test/build projects instant.
1709
+ # One verify for every run (PR and main). Nx cache makes unchanged
1710
+ # test/build projects instant.
1700
1711
  - run: npm run lint
1701
1712
  name: Lint
1713
+
1714
+ # Prettier owns ALL formatting in this workspace, so it needs a gate of
1715
+ # its own: ESLint is configured for correctness only and deliberately
1716
+ # reports nothing about formatting. Without this step the entire
1717
+ # formatting opinion is advisory, and a workspace drifts out of
1718
+ # compliance with no signal anywhere.
1719
+ - run: npm run format:check
1720
+ name: Check formatting (run 'npm run format' locally to fix)
1702
1721
  # \`lint\` here also runs any Nx lint targets \`npm run lint\` does not cover \u2014
1703
1722
  # notably Python's ruff (every Python project owns a hand-authored \`lint\`
1704
1723
  # target). For the eslint stack the JS lint runs twice, but Nx caches the