@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 +1 -1
- package/skills/self-update/SKILL.md +39 -135
package/package.json
CHANGED
|
@@ -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
|
|
17
|
+
### 2. Inventory and target
|
|
18
18
|
|
|
19
|
-
|
|
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
|
-
|
|
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
|
-
###
|
|
37
|
+
### 3. Build release context
|
|
38
38
|
|
|
39
|
-
Junior does not publish GitHub releases,
|
|
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
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
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
|
-
|
|
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> ...
|
|
89
|
-
pnpm add -O -E <optDeps-packages>@<target> ...
|
|
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
|
-
###
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
95
|
+
```bash
|
|
96
|
+
git -C /tmp/junior-upstream diff <old_ref>..<target_ref> -- apps/example/vercel.json
|
|
97
|
+
```
|
|
182
98
|
|
|
183
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
|
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
|
|
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.
|