Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
{
"extends": [
"github>unional/renovate-preset"
],
"packageRules": [
{
"description": "changesets/action's major is the v1/v2 line boundary, not a dependency bump. Moving it is a deliberate release decision made alongside the consumers' @changesets/cli major. See README 'Why there are two lines'.",
"matchManagers": ["github-actions"],
"matchDepNames": ["changesets/action"],
"matchUpdateTypes": ["major"],
"enabled": false
}
]
}
4 changes: 2 additions & 2 deletions .github/workflows/pnpm-release-changeset-oidc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ jobs:
run: pnpm install

- name: Install playwright browsers
uses: repobuddy/.github/.github/actions/setup-playwright@main
uses: repobuddy/.github/.github/actions/setup-playwright@v1

- name: Install vsce
run: pnpm install -g vsce
Expand All @@ -91,7 +91,7 @@ jobs:
# No .npmrc token step: the OIDC exchange supplies credentials at publish time.
- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@v2.1.1
uses: changesets/action@v1
with:
commit: 'chore: version packages'
version: pnpm run version
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pnpm-release-changeset.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
run: pnpm install

- name: Install playwright browsers
uses: repobuddy/.github/.github/actions/setup-playwright@main
uses: repobuddy/.github/.github/actions/setup-playwright@v1

- name: Install vsce
run: pnpm install -g vsce
Expand All @@ -53,7 +53,7 @@ jobs:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@v2.1.1
uses: changesets/action@v1
with:
commit: 'chore: version packages'
version: pnpm run version
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pnpm-verify.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ jobs:
run: pnpm install

- name: Install playwright browsers
uses: repobuddy/.github/.github/actions/setup-playwright@main
uses: repobuddy/.github/.github/actions/setup-playwright@v1

- name: Verify
if: matrix.os == 'ubuntu-latest'
Expand Down
25 changes: 13 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ lines exist in parallel rather than one being a migration deadline:
| --- | --- | --- |
| `repobuddy/repobuddy` | `^3.0.0` | `@v2` |
| `repobuddy/storybook` | `^2.29.7` | `@v1` |
| `repobuddy/visual-testing` | `^2.29.8` | `@v1` |
| `repobuddy/visual-testing` | `^3.0.0` | `@v2` |
| `repobuddy/rolldown-inline-type-exports` | `^2.29.8` | `@v1` |
| `repobuddy/jest-watch-toggle-config-2` | `^2.25.2` | `@v1` |

Expand Down Expand Up @@ -126,6 +126,13 @@ Tagging fixes the consumer half of this — an auto-merged bump now lands on
`main` and waits there until someone cuts a release. The Mergify rule not
actually excluding majors is a separate defect and should be fixed on its own.

It kept happening after the lines were split: Renovate carried `main` on to
`changesets/action` `v2`, `v2.1.0` and `v2.1.1` while `main` is the v1 line, so
the v1 workflows ran action v2 against v1 input names and every release on that
line aborted with *"The following inputs have been renamed"*. `.github/renovate.json`
now disables major updates for `changesets/action` outright, because that major
is the line boundary — it is moved by cutting a new line, never by a bump.

### Starting version: `v1.0.0`

Not `v0.x`. Two reasons:
Expand Down Expand Up @@ -287,22 +294,16 @@ and `v2` substituted.
Step 3 is the one that is easy to get wrong or forget. If the alias is not
moved, the release is invisible to everyone pinning it.

#### Known gap: internal refs still float on `@main`
#### Internal refs

Workflows in this repo consume this repo's own composite action:

```text
uses: repobuddy/.github/.github/actions/setup-playwright@main
uses: repobuddy/.github/.github/actions/setup-playwright@v1
```

A reusable workflow cannot reference a sibling action by relative path — `./`
resolves against the *caller's* checkout, not this repo's — so these must be
fully-qualified `owner/repo/path@ref`, and today that ref is `@main`. **A
consumer pinned at `@v1` therefore still picks up `setup-playwright` from
`main`,** which partially defeats the pin.

This is deliberately not fixed in the same change that introduces the scheme:
re-pointing them to `@v1` before `v1` exists would break every current consumer
immediately. Once `v1.0.0` is cut, change these to `@v1` on `main` and `@v2` on
`v2.x` — the moving aliases, so they do not need touching on every subsequent
release — and include that edit in the following release.
fully-qualified `owner/repo/path@ref`. They carry the moving alias of their own
line: `@v1` on `main`, `@v2` on `v2.x`. That way a consumer pinned at `@v1` gets
`setup-playwright` from `v1` too, and the refs need no touching on each release.