@norskvideo/ctl-dev-kit 0.2.85 → 0.2.87

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.
@@ -255,8 +255,11 @@ that way. Hand the suite a value by having both sides derive it (a tiny script
255
255
  the hook runs and the test imports), not through `$GITHUB_ENV`.
256
256
 
257
257
  `bun run test:integration` is the product's claim of what its tier is, and
258
- ctl's release gate believes it: a `ctl-candidate` dispatch runs this workflow
259
- and the reported result decides whether `latest` moves.
258
+ two things believe it: the repo's nightly bump PR runs it on a new ctl pin and
259
+ merges only when it is green, and ctl's release gate sends a `ctl-candidate`
260
+ dispatch that runs this workflow and shows the result on the CI board. The
261
+ gate is advisory — the result does not hold ctl's `latest` — so the bump PR
262
+ is what keeps a ctl that breaks this product out of it.
260
263
 
261
264
  **Converging a repo.** The gate only takes over a copy whose first line is the
262
265
  canonical's marker (`# ctl-dev-kit convention: integration`); a copy without it
@@ -12,9 +12,10 @@
12
12
  # What the tier is: the product's slow suite (daemon + Docker + licence) run
13
13
  # against the RELEASED norsk-ctl binary, exactly as a customer would run it — a
14
14
  # split product repo has no ctl source. `bun run test:integration` is the
15
- # product's claim of what that suite is, and ctl's release gate believes it: a
16
- # ctl-candidate dispatch runs this and the result decides whether `latest`
17
- # moves.
15
+ # product's claim of what that suite is, and two things believe it: this
16
+ # repo's nightly bump PR, which runs it on a new ctl pin and merges only when
17
+ # green, and ctl's (advisory) release gate, whose ctl-candidate dispatch runs it
18
+ # and shows the result on the CI board.
18
19
  #
19
20
  # Per-repo variation lives in three optional hooks, not in this file:
20
21
  # scripts/integration/prepull-extra.sh extra images the suite launches (a
@@ -57,7 +58,7 @@ on:
57
58
  workflow_dispatch:
58
59
  inputs:
59
60
  ctl_channel:
60
- description: "norsk-ctl S3 channel to test against in place of the repo's pin (flake.nix ctlVersion). Empty runs the pin; release-gate dispatches 'rc' to validate a candidate before promoting latest."
61
+ description: "norsk-ctl S3 channel to test against in place of the repo's pin (flake.nix ctlVersion). Empty runs the pin; release-gate dispatches 'rc' to report on a candidate (advisory: latest is not held on it)."
61
62
  type: string
62
63
  default: ""
63
64
 
@@ -66,7 +67,8 @@ permissions:
66
67
 
67
68
  # A ctl-candidate validation must not be cancellable out of a result, because
68
69
  # release-collect scores anything other than a literal success as red — a
69
- # CANCELLED run included — and answers a red with one re-dispatch.
70
+ # CANCELLED run included. (Until the gate went advisory on 2026-10-17 it also
71
+ # answered a red with one re-dispatch, which is what made this bite.)
70
72
  #
71
73
  # Keying on event_name alone was not enough: every candidate is the SAME event,
72
74
  # so they shared a group and cancelled each other, and the re-dispatch cancelled
@@ -583,8 +585,9 @@ jobs:
583
585
  fi
584
586
 
585
587
  # Report the rc-candidate validation result to the norsk-ctl release gate. Only
586
- # on a ctl-candidate dispatch; release-collect tallies these and promotes
587
- # latest once every gating product is green on the candidate.
588
+ # on a ctl-candidate dispatch; release-collect records it for the CI board.
589
+ # Advisory: ctl promotes latest without waiting on it, and this repo takes a
590
+ # new ctl only through its bump PR, which runs this tier on the new pin.
588
591
  report-candidate:
589
592
  needs: integration
590
593
  if: ${{ always() && github.event_name == 'repository_dispatch' && github.event.action == 'ctl-candidate' }}
@@ -602,7 +605,8 @@ jobs:
602
605
  set -euo pipefail
603
606
  state=failure; [ "$RESULT" = "success" ] && state=success
604
607
  # `tier: integration`, named rather than defaulted: the release gate
605
- # tallies per tier, and this is the one that gates (docs/release-gate.md).
608
+ # tallies per tier, and this is the one that launches instances
609
+ # (docs/release-gate.md).
606
610
  body="$(jq -nc --arg p "$product" --arg v "$VERSION" --arg r "$state" \
607
611
  '{event_type:"ctl-candidate-result",client_payload:{product:$p,version:$v,result:$r,tier:"integration"}}')"
608
612
  code="$(curl -sS -o /dev/null -w '%{http_code}' -X POST \
@@ -30,7 +30,7 @@ on:
30
30
  workflow_dispatch:
31
31
  inputs:
32
32
  ctl_channel:
33
- description: "norsk-ctl S3 channel to test against in place of the repo's pin (flake.nix ctlVersion). Empty runs the pin; release-gate dispatches 'rc' to validate a candidate before promoting latest."
33
+ description: "norsk-ctl S3 channel to test against in place of the repo's pin (flake.nix ctlVersion). Empty runs the pin; release-gate dispatches 'rc' to report on a candidate (advisory: latest is not held on it)."
34
34
  type: string
35
35
  default: ""
36
36
 
@@ -503,8 +503,9 @@ jobs:
503
503
  fi
504
504
 
505
505
  # Report the rc-candidate validation result to the norsk-ctl release gate. Only
506
- # on a ctl-candidate dispatch; release-collect tallies these and promotes
507
- # latest once every gating product is green on the candidate.
506
+ # on a ctl-candidate dispatch; release-collect records it for the CI board.
507
+ # Advisory: ctl promotes latest without waiting on it, and this repo takes a
508
+ # new ctl only through its bump PR, which runs this tier on the new pin.
508
509
  report-candidate:
509
510
  needs: smoke
510
511
  if: ${{ always() && github.event_name == 'repository_dispatch' && github.event.action == 'ctl-candidate' }}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@norskvideo/ctl-dev-kit",
3
- "version": "0.2.85",
3
+ "version": "0.2.87",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  "./create-product": "./create-product/create-product.ts",
@@ -39,10 +39,10 @@
39
39
  },
40
40
  "devDependencies": {
41
41
  "@norskvideo/ctl-oas-to-ts": "^0.1.0",
42
- "@norskvideo/norsk-sdk": "1.3.1-2026-10-15-05457f88",
43
- "@norskvideo/norsk-studio": "1.30.0-2026-10-15-8f57d57e",
44
- "@norskvideo/norsk-studio-builder": "1.30.0-2026-10-15-8f57d57e",
45
- "@norskvideo/norsk-studio-built-ins": "1.30.0-2026-10-15-8f57d57e",
42
+ "@norskvideo/norsk-sdk": "1.3.1-2026-10-16-e43e0f90",
43
+ "@norskvideo/norsk-studio": "1.30.0-2026-10-16-837e5d98",
44
+ "@norskvideo/norsk-studio-builder": "1.30.0-2026-10-16-837e5d98",
45
+ "@norskvideo/norsk-studio-built-ins": "1.30.0-2026-10-16-837e5d98",
46
46
  "@playwright/test": "^1.59.0",
47
47
  "@testing-library/jest-dom": "^6.9.1",
48
48
  "@testing-library/react": "^16.3.2",