@sentry/junior-maintenance 0.74.1 → 0.75.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sentry/junior-maintenance",
3
- "version": "0.74.1",
3
+ "version": "0.75.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -14,11 +14,11 @@ git branch --show-current
14
14
 
15
15
  Stop if `package.json`, `pnpm-lock.yaml`, or `pnpm-workspace.yaml` has unrelated uncommitted changes.
16
16
 
17
- ### 2. Inventory deps
17
+ ### 2. Inventory and target
18
18
 
19
- Collect direct Junior deps from `package.json` `@sentry/junior` and names starting with `@sentry/junior-`. Record each package's name, current version, and dependency section (`dependencies` / `devDependencies` / `optionalDependencies`). All must be pinned to the same exact version. Do not move packages between sections.
19
+ Inventory direct Junior deps from `package.json`: `@sentry/junior` and `@sentry/junior-*`. Record package, current exact version, and dependency section. Keep all Junior deps on one version and do not move packages between sections.
20
20
 
21
- ### 3. Resolve target
21
+ Resolve the target:
22
22
 
23
23
  ```bash
24
24
  pnpm view @sentry/junior dist-tags.latest
@@ -34,36 +34,19 @@ pnpm view <package>@<target> version
34
34
 
35
35
  Stop if any package lacks the target on npm.
36
36
 
37
- ### 3b. Build Junior release context
37
+ ### 3. Build release context
38
38
 
39
- Junior does not publish GitHub releases, git tags, or a CHANGELOG. Build a best-effort release summary to guide the update and populate the PR body.
39
+ Junior does not publish GitHub releases, tags, or a changelog. Use npm publish timestamps to summarize merged PRs between `old_version` and `target_version`:
40
40
 
41
- 1. Note `old_version` (current `@sentry/junior` from step 2) and `target_version` (from step 3).
42
-
43
- 2. Fetch npm publish timestamps:
44
-
45
- ```bash
46
- pnpm view @sentry/junior time --json
47
- ```
48
-
49
- Extract `old_published_at` and `target_published_at` from the result.
50
-
51
- 3. Query merged PRs in `getsentry/junior` between those timestamps:
52
-
53
- ```bash
54
- gh pr list --repo getsentry/junior --state merged \
55
- --search "merged:>=<old_published_at> merged:<=<target_published_at>" \
56
- --limit 100 \
57
- --json number,title,url,mergedAt
58
- ```
59
-
60
- 4. Classify the results:
61
- - **Breaking:** PR titles matching `^[a-z]+([^)]*)!:` (conventional-commit `!` marker), or body containing `BREAKING CHANGE`.
62
- - **Config-relevant:** titles/scopes mentioning `config`, `plugins`, `nitro`, `createApp`, `runtime`, `credentials`, `egress`, or `example`.
63
-
64
- 5. Save a compact summary — total PR count, breaking PRs (title + URL), config-relevant PRs — for the PR body. Do not list every fix/chore PR.
41
+ ```bash
42
+ pnpm view @sentry/junior time --json
43
+ gh pr list --repo getsentry/junior --state merged \
44
+ --search "merged:>=<old_published_at> merged:<=<target_published_at>" \
45
+ --limit 100 \
46
+ --json number,title,url,mergedAt
47
+ ```
65
48
 
66
- 6. If breaking PRs are found, flag the update as needing manual review in the PR body and keep the PR draft. Do **not** abort the update proceed and let checks and the config comparison (step 6c) surface concrete issues.
49
+ Save total PR count, breaking PRs (`!` or `BREAKING CHANGE`), and config-relevant PRs (`config`, `plugins`, `nitro`, `createApp`, `runtime`, `credentials`, `egress`, `example`). If any breaking PR exists, keep the PR draft and call out manual review, but continue the update.
67
50
 
68
51
  ### 4. Create or reuse branch
69
52
 
@@ -77,124 +60,55 @@ If `pnpm-workspace.yaml` has a `minimumReleaseAgeExclude` list, ensure every Jun
77
60
 
78
61
  Group `pnpm add` by dependency section:
79
62
 
80
- | Section | Flag |
81
- |---------|------|
82
- | `dependencies` | `-E` |
83
- | `devDependencies` | `-D -E` |
84
- | `optionalDependencies` | `-O -E` |
85
-
86
63
  ```bash
87
64
  pnpm add -E <deps-packages>@<target> ...
88
- pnpm add -D -E <devDeps-packages>@<target> ... # if any
89
- pnpm add -O -E <optDeps-packages>@<target> ... # if any
65
+ pnpm add -D -E <devDeps-packages>@<target> ...
66
+ pnpm add -O -E <optDeps-packages>@<target> ...
90
67
  ```
91
68
 
92
69
  Do not manually edit versions in `package.json`. Do not use local `../junior` linking scripts.
93
70
 
94
- ### 6b. Sync `nitro.config.ts` plugin packages
95
-
96
- After updating deps, check whether any **new** `@sentry/junior-*` packages were added (i.e. present in the new `package.json` but absent before the update). For each newly added package, ensure it is also listed in the `plugins.packages` array inside `juniorNitro({...})` in `nitro.config.ts`.
97
-
98
- **Packages that are NOT standalone plugins and do NOT need a `plugins.packages` entry:**
99
- - `@sentry/junior` (the base runtime)
100
- - `@sentry/junior-plugin-api` (plugin development utilities)
101
- - `@sentry/junior-testing` (test utilities)
71
+ ### 7. Sync local config
102
72
 
103
- For every other newly added `@sentry/junior-*` package, add it to `nitro.config.ts` if missing:
104
-
105
- ```typescript
106
- // nitro.config.ts — append the new package to plugins.packages
107
- juniorNitro({
108
- plugins: { packages: [
109
- // ... existing entries ...
110
- "@sentry/junior-<new-package>", // ← add here
111
- ] },
112
- })
113
- ```
114
-
115
- Verify by running:
73
+ If a new standalone `@sentry/junior-*` plugin package was added, list it in `juniorNitro({ plugins.packages })`. Exclude the base/runtime utility packages: `@sentry/junior`, `@sentry/junior-plugin-api`, `@sentry/junior-testing`.
116
74
 
117
75
  ```bash
118
76
  node scripts/check-plugin-packages.mjs
119
77
  ```
120
78
 
121
- This must exit 0 before proceeding. If it fails, fix `nitro.config.ts` and rerun.
122
-
123
- ### 6c. Compare consumer config against the Junior example app
124
-
125
- After updating deps, compare this app's configuration files against `apps/example/` in `getsentry/junior` for the target version. Goal: catch config-shape drift before checks run.
126
-
127
- 1. Clone `getsentry/junior` into a temp directory (skip if already present from a prior run):
79
+ Compare the consumer config with `apps/example` at `target_ref` to catch shape drift. Choose `target_ref` from the version bump commit, then the publish timestamp, then `origin/main` as approximate:
128
80
 
129
- ```bash
130
- git clone --filter=blob:none --depth=200 https://github.com/getsentry/junior.git /tmp/junior-upstream
131
- cd /tmp/junior-upstream
132
- ```
133
-
134
- 2. Select the best source ref for `target_version`:
135
-
136
- a. Try to find the version-bump commit:
137
- ```bash
138
- git log --oneline -S'"version": "<target_version>"' -- packages/junior/package.json
139
- ```
140
- If found, check out that commit.
141
-
142
- b. If not found, find the commit just before the npm publish timestamp:
143
- ```bash
144
- git rev-list -n 1 --before="<target_published_at>" origin/main
145
- ```
146
- If found, check out that commit.
147
-
148
- c. If neither works, use `origin/main` — mark the comparison as approximate in the PR body.
149
-
150
- 3. Run focused diffs between example app and consumer app:
151
-
152
- ```bash
153
- git diff --no-index -- /tmp/junior-upstream/apps/example/nitro.config.ts nitro.config.ts
154
- git diff --no-index -- /tmp/junior-upstream/apps/example/plugins.ts plugins.ts
155
- git diff --no-index -- /tmp/junior-upstream/apps/example/server.ts server.ts
156
- ```
157
-
158
- 4. Interpret the diffs structurally. Look for changes in:
159
- - `juniorNitro()` option shape (new/removed/renamed options)
160
- - `defineJuniorPlugins([...])` usage or call convention
161
- - Plugin factory call signatures (e.g. `githubPlugin({ ... })`)
162
- - `createApp({ ... })` option keys
163
- - Required support devDeps (`nitro`, `jiti`, `typescript`)
164
-
165
- **Ignore** app-local differences: env var names, local plugin/skill registrations, custom config defaults, SOUL/WORLD content, Slack personality settings.
166
-
167
- 5. Apply only obvious, low-risk fixes automatically — e.g. updating a renamed option key or adding a required new argument when the value is inferrable. For everything else, add a PR-body action item.
168
-
169
- 6. For `package.json`, compare only the build tooling (`nitro`, `jiti`, `typescript`) — do not copy the example's plugin dep list or version pins.
170
-
171
- 7. Save findings and any actions taken for the PR body.
81
+ ```bash
82
+ git clone --filter=blob:none --depth=200 https://github.com/getsentry/junior.git /tmp/junior-upstream
83
+ git -C /tmp/junior-upstream log --oneline -S'"version": "<target_version>"' -- packages/junior/package.json
84
+ git -C /tmp/junior-upstream rev-list -n 1 --before="<target_published_at>" origin/main
85
+ git -C /tmp/junior-upstream checkout <target_ref>
86
+ git diff --no-index -- /tmp/junior-upstream/apps/example/nitro.config.ts nitro.config.ts
87
+ git diff --no-index -- /tmp/junior-upstream/apps/example/plugins.ts plugins.ts
88
+ git diff --no-index -- /tmp/junior-upstream/apps/example/server.ts server.ts
89
+ ```
172
90
 
173
- ### 7. Verify lockfile correctness
91
+ Ignore app-local values. Apply only obvious low-risk fixes; put ambiguous drift in the PR body. For `package.json`, compare only build tooling (`nitro`, `jiti`, `typescript`), not plugin dependency lists or pins.
174
92
 
175
- 1. Check changed files:
176
- ```bash
177
- git diff --name-only
178
- ```
179
- Expected: `package.json`, `pnpm-lock.yaml`, optionally `pnpm-workspace.yaml`, and optionally `nitro.config.ts` if plugin registration changed in step 6b. Flag anything else.
93
+ For `vercel.json`, do not normalize the whole file against the example. Use upstream diff-backed changes when possible:
180
94
 
181
- 2. Confirm every Junior dep in `package.json` shows exact `<target>` — no old versions remain.
95
+ ```bash
96
+ git -C /tmp/junior-upstream diff <old_ref>..<target_ref> -- apps/example/vercel.json
97
+ ```
182
98
 
183
- 3. Prove lockfile agrees with package.json:
184
- ```bash
185
- pnpm install --frozen-lockfile
186
- ```
187
- If this fails, repair with `pnpm install --lockfile-only` then rerun. Stop if still broken.
99
+ Only act on Junior-owned deployment requirements proven by that diff or by release-window PRs/docs. If `old_ref` is unavailable, target-only example entries are context, not proof; mark the review approximate and leave a manual review item when needed.
188
100
 
189
- ### 8. Run checks
101
+ ### 8. Verify
190
102
 
191
103
  ```bash
104
+ git diff --name-only
105
+ pnpm install --frozen-lockfile
192
106
  pnpm check
193
107
  pnpm typecheck
194
108
  pnpm build
195
109
  ```
196
110
 
197
- Classify failures: update-related fix before PR; pre-existing or environment capture in PR and disclose. Do not silently skip failed checks.
111
+ Expected changed files: `package.json`, `pnpm-lock.yaml`, optional `pnpm-workspace.yaml`, optional `nitro.config.ts`, optional `vercel.json`. Confirm every Junior dep is exactly `<target>`. If the frozen install fails, repair with `pnpm install --lockfile-only` and rerun. Fix update-related check failures; disclose pre-existing or environment failures.
198
112
 
199
113
  ### 9. Commit
200
114
 
@@ -208,22 +122,12 @@ Mention `minimumReleaseAgeExclude` sync if `pnpm-workspace.yaml` changed.
208
122
 
209
123
  ### 10. Push and open/update draft PR
210
124
 
211
- PR body sections (in order):
212
-
213
- 1. **Version change** — old → new, package list with sections.
214
- 2. **Junior release window** — total PR count, breaking PRs (title + URL), config-relevant PRs. Sourced from step 3b. Include the disclaimer: _Junior does not publish GitHub releases, tags, or a changelog. This summary is derived from npm publish timestamps and merged PRs._
215
- 3. **Example app config comparison** — source ref used (commit SHA or approximate), files compared, findings, actions taken. Sourced from step 6c.
216
- 4. **`minimumReleaseAgeExclude` changes** (if any).
217
- 5. **`nitro.config.ts` plugin registration changes** (if any).
218
- 6. **Check results** — pass/fail per check, pre-existing failures noted.
219
- 7. **Unexpected diffs** — any changed files beyond `package.json`, `pnpm-lock.yaml`, `pnpm-workspace.yaml`, `nitro.config.ts`.
220
-
221
- If breaking PRs were found in step 3b, or config comparison found unresolved drift, or checks failed — keep the PR as draft and add a "Manual review required" section at the top summarizing blockers.
125
+ Open a draft PR. Include version change, release-window summary with the no-changelog disclaimer, config comparison findings, optional workspace/plugin/vercel changes, check results, and unexpected diffs. Add **Manual review required** when breaking PRs, unresolved config drift, approximate Vercel review, or failed checks exist.
222
126
 
223
127
  ## Stop conditions
224
128
 
225
129
  - Any Junior package lacks the target version on npm.
226
130
  - `pnpm install --frozen-lockfile` fails after repair.
227
- - Checks fail for non-pre-existing, non-environment reasons and no safe config fix is available from step 6c.
131
+ - Checks fail for non-pre-existing, non-environment reasons and no safe config fix is available from step 7.
228
132
  - `package.json` changed but `pnpm-lock.yaml` did not.
229
133
  - Example app comparison reveals a breaking plugin signature change whose required values cannot be inferred from the existing consumer config.