Skip to content

Commit 9abdffa

Browse files
theoephraimclaude
andauthored
Replace changesets with bumpy v1 (#632)
* replace changesets with bumpy (our own version) * update CI workflows for bumpy v1 - release.yaml: use BUMPY_GH_TOKEN for version branch push/PR creation, switch to OIDC trusted publishing (drop NPM_TOKEN), add explicit build step - test.yaml: add bumpy ci check step to comment release plan on PRs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * upgrade bumpy to v1 and configure vscode extension publishing Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * upgrade bumpy to v1.1, clean up vscode plugin npm publishing - Upgrade @varlock/bumpy to 1.1.0 - Remove README.npm.md and prepack/postpack scripts (no longer published to npm) - Revert unrelated regex change in diagnostics-core.ts - Add $schema and comments support to bumpy config - Update vscode settings for bumpy config file association Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * update release-preview script for bumpy v1 Replace hardcoded vscode plugin filter with generic skipNpmPublish check from bumpy config. Add comments explaining that bumpy status includes pending releases from main for consistent preview packages. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 9a53403 commit 9abdffa

37 files changed

Lines changed: 538 additions & 1207 deletions

.bumpy/README.md

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
# 🐸 Bumpy
2+
3+
This directory is used by [bumpy](https://bumpy.varlock.dev) to manage versioning and changelogs.
4+
5+
Bumpy is a modern versioning tool for JavaScript/TypeScript projects (monorepos and single packages). It uses **bump files** — small markdown files in this directory — to declare pending version changes. These files are consumed during the release process to compute version bumps, update changelogs, and publish packages.
6+
7+
## How it works
8+
9+
1. When you make a change that should trigger a release, create a bump file (typically one per PR)
10+
2. Bump files accumulate on your main branch until you're ready to release
11+
3. At release time, bumpy merges all pending bumps into a release plan, updates versions and changelogs, and publishes packages
12+
13+
## Creating bump files
14+
15+
### Interactive
16+
17+
```bash
18+
bunx bumpy add
19+
```
20+
21+
### Non-interactive (useful for AI-assisted development)
22+
23+
```bash
24+
bunx bumpy add --packages "package-name:minor,other-package:patch" --message "Description of changes" --name "my-change"
25+
```
26+
27+
### By hand
28+
29+
Create a `.md` file in this directory with YAML frontmatter mapping package names to bump levels (`major`, `minor`, `patch`, or `none`), and a markdown body for the changelog entry:
30+
31+
```markdown
32+
---
33+
'package-name': minor
34+
---
35+
36+
Added a new feature.
37+
```
38+
39+
### From conventional commits
40+
41+
```bash
42+
bunx bumpy generate
43+
```
44+
45+
### Empty bump files
46+
47+
For PRs that intentionally don't need a release (docs, CI, etc.):
48+
49+
```bash
50+
bunx bumpy add --empty --name "docs-update"
51+
```
52+
53+
## Keeping bump files up to date
54+
55+
As a PR evolves, make sure its bump file stays in sync. If the scope of changes grows (e.g., a patch becomes a new feature), update the bump level and description to match. Reviewers and AI assistants should treat the bump file as part of the PR — just like tests and docs.
56+
57+
## Files in this directory
58+
59+
- `_config.json` — bumpy configuration
60+
- `README.md` — this file
61+
- `*.md` (other than README.md) — pending bump files
62+
63+
📖 Full documentation: https://bumpy.varlock.dev

.bumpy/_config.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"$schema": "../node_modules/@varlock/bumpy/config-schema.json",
3+
"baseBranch": "main",
4+
"changelog": ["github", { "internalAuthors": ["theoephraim", "philmillman"] }],
5+
"packages": {
6+
// this is the vscode extension
7+
"env-spec-language": {
8+
"skipNpmPublish": true,
9+
"buildCommand": "bun run package",
10+
"publishCommand": "bun run publish:vsce && bun run publish:ovsx"
11+
}
12+
}
13+
}

.bumpy/changesets-to-bumpy.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
---
File renamed without changes.
File renamed without changes.
File renamed without changes.

.changeset/README.md

Lines changed: 0 additions & 14 deletions
This file was deleted.

.changeset/config.json

Lines changed: 0 additions & 18 deletions
This file was deleted.

.github/COPILOT_RULES.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,16 @@ bun run lint:fix
1313

1414
### 2. Always Add a Changeset
1515
```bash
16-
bun run changeset:add
16+
bun run bumpy:add
1717
```
1818
- Every PR NEEDS a changeset
19-
- If only internal changes (docs, CI, tests, config) you can use an empty changeset
19+
- If only internal changes (docs, CI, tests, config) you can use an empty changeset: `bumpy add --empty`
2020
- IF the work affects any published packages, select them
2121
- Choose the correct version bump type (patch/minor/major)
2222
- Write a clear, user-facing description
23-
- **If bun fails**: Use `npm run changeset:add` as fallback
23+
- For non-interactive (AI/CI): `bumpy add --packages "varlock:patch" --message "description" --name "changeset-name"`
2424

25-
Example changeset:
25+
Example changeset (`.bumpy/<name>.md`):
2626
```
2727
---
2828
"varlock": patch
@@ -51,7 +51,7 @@ bun run build:libs
5151
| Task | Command | When |
5252
|------|---------|------|
5353
| Lint & Fix | `bun run lint:fix` | After every code change |
54-
| Add Changeset | `bun run changeset:add` | When changing published packages |
54+
| Add Changeset | `bun run bumpy:add` | When changing published packages |
5555
| Build Check | `bun run build:libs` | Before completing any task |
5656
| Run Tests | `bun run test:ci` | When changing logic |
5757

.github/agents/pr-guidelines.md

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -25,22 +25,21 @@ When implementing a new feature or making significant changes, the PR should inc
2525
- `/reference/*.mdx` - API reference documentation
2626

2727
### 4. Changeset
28-
- **Always** create a changeset file in `.changeset/` directory
28+
- **Always** create a changeset file in `.bumpy/` directory
2929
- Use semantic versioning: `minor` for new features, `patch` for bug fixes, `major` for breaking changes
3030
- Include clear description of the changes, but keep it short
31-
- Format: Create a new `.md` file in `.changeset/` with:
31+
- Use non-interactive mode: `bumpy add --packages "varlock:minor" --message "description" --name "changeset-name"`
32+
- Or create a `.md` file in `.bumpy/` manually:
3233
```markdown
3334
---
3435
"varlock": <minor|patch|major>
3536
---
36-
37+
3738
Brief description of the change
3839
(or use bullet list for multiple changes)
39-
- An empty changeset is needed for changes that do not affect any published packages
40-
```markdown
41-
---
42-
---
4340
```
41+
- An empty changeset is needed for changes that do not affect any published packages:
42+
`bumpy add --empty`
4443

4544
### 5. Code Review
4645
- Run `bun run lint:fix` and then resolve remaining lint errors
@@ -52,12 +51,11 @@ When implementing a new feature or making significant changes, the PR should inc
5251
- Fix any discovered vulnerabilities
5352
- Include security summary in PR
5453

55-
## Changeset Commands
54+
## Bumpy Commands
5655

5756
Available commands (defined in root `package.json`):
58-
- `bun run changeset:add` - Interactively create a changeset (not available in CI)
59-
- `bun run changeset:version` - Bundle changesets into version bumps
60-
- `bun run changeset:publish` - Publish packages to npm
57+
- `bun run bumpy:add` - Interactively create a changeset
58+
- `bumpy add --packages "pkg:bump" --message "desc" --name "name"` - Non-interactive (AI/CI)
6159

6260
## Documentation Structure
6361

0 commit comments

Comments
 (0)