@leaflink/dom-testing-utils 0.0.0-PR-247--e479df5 → 0.0.0-PR-249--0a5d3a6

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.
Files changed (2) hide show
  1. package/README.md +16 -25
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -53,51 +53,42 @@ For detailed commit conventions and manual release instructions, see [CONTRIBUTI
53
53
 
54
54
  ## Dependency updates
55
55
 
56
- Dependency updates are handled by self-hosted [Renovate](https://docs.renovatebot.com/), invoked from `.github/workflows/renovate.yml` using a PAT (`RENOVATE_PAT`) issued from the `leaflink-automation` account. Configuration lives in [`.github/renovate.json5`](.github/renovate.json5). Tracking ticket: [MKPL-1055](https://leaflink.atlassian.net/browse/MKPL-1055).
56
+ Dependency updates are handled by self-hosted [Renovate](https://docs.renovatebot.com/) (Dependabot has been removed), invoked from `.github/workflows/renovate.yml` using a PAT (`RENOVATE_PAT`) issued from the `leaflink-automation` account. Configuration lives in [`.github/renovate.json5`](.github/renovate.json5). Tracking ticket: [MKPL-1055](https://leaflink.atlassian.net/browse/MKPL-1055).
57
57
 
58
58
  ### Schedule
59
59
 
60
- - Workflow cron wakes Renovate hourly.
61
- - Renovate only opens PRs between **1am–5am America/New_York**, every day.
62
- - A new release must be **≥ 10 days old** (`minimumReleaseAge`) before Renovate will propose it buffer against compromised/withdrawn publishes.
63
- - Merging is handled by a separate workflow (see [Auto-merge](#auto-merge)) that runs whenever required CI completes — independent of Renovate's schedule.
60
+ - Workflow cron wakes Renovate hourly; Renovate only opens or rebases PRs between **1am–5am America/New_York**, every day (`updateNotScheduled: false` keeps rebases inside the window too).
61
+ - A new release must be **≥ 10 days old** (`minimumReleaseAge`) before Renovate will propose it — buffer against compromised/withdrawn publishes. Pending updates park on the Dependency Dashboard (`internalChecksFilter: strict`) instead of opening un-mergeable PRs. pnpm enforces the same gate at install time (`minimumReleaseAge` in `pnpm-workspace.yaml`), covering the transitives Renovate doesn't gate. `@leaflink/*` packages are exempt on both sides.
62
+ - Merging is GitHub-native auto-merge (see [Auto-merge](#auto-merge)) and lands as soon as required CI passesindependent of Renovate's schedule.
64
63
 
65
64
  ### Update groups and auto-merge policy
66
65
 
67
66
  | Source | Update type | PR shape | Auto-merge |
68
67
  |---|---|---|---|
69
- | `devDependencies` | any | grouped as one PR (`chore(deps-dev): update dev dependencies`) | ✅ |
68
+ | `devDependencies` | minor / patch / digest / pin | grouped as one PR (`ci(deps-dev): ...`) | ✅ |
69
+ | `devDependencies` | **major** | individual PR (`chore(deps-dev): ...`) | ✅ attempted — if CI fails, the PR stays open for review |
70
70
  | `dependencies` / `peerDependencies` | **patch** | individual PR (`chore(deps): ...`) | ✅ |
71
71
  | `dependencies` / `peerDependencies` | **minor / major** | individual PR (`chore(deps): ...`) | ❌ awaits review |
72
- | `github-actions` | patch / minor / digest / pin | individual PR | ✅ |
73
- | `github-actions` | major | individual PR | ❌ awaits review |
74
- | Lockfile maintenance (transitive refresh of `pnpm-lock.yaml`) | weekly | `Refresh ... (chore(deps-dev))` | ✅ |
72
+ | `github-actions` | patch / minor / digest / pin | individual PR (`ci(deps): ...`) | ✅ |
73
+ | `github-actions` | major | individual PR (`ci(deps): ...`) | ❌ awaits review |
74
+ | `pnpm` (`packageManager` / `engines`) | minor / patch / digest / pin | individual PR (`chore(deps): ...`) | ✅ |
75
+ | `pnpm` | major | individual PR (`chore(deps): ...`) | ❌ awaits review |
76
+ | Lockfile maintenance (transitive refresh of `pnpm-lock.yaml`) | Mondays | `Refresh ... (chore(deps-dev))` | ✅ |
75
77
 
76
78
  Renovate PR bodies all link back to MKPL-1055 via `prBodyNotes`.
77
79
 
78
- ### Auto-merge
79
-
80
- `main` requires `quality-checks` + `release` status checks and a CODEOWNERS review. The `leaflink-automation` account (whose PAT Renovate uses) is in `main`'s `bypass_pull_request_allowances`, but Renovate itself won't call the merge API while the PR shows as `BLOCKED` in GitHub's API — even though the bypass would let it through.
80
+ Neither `ci` nor `chore` commits trigger a release, so dependency merges never publish a package version on their own — the bumped deps ship with the next `feat`/`fix`/`perf`/`revert` release.
81
81
 
82
- To work around this, `.github/workflows/renovate-merge.yml` performs the merge on Renovate's behalf:
83
-
84
- 1. Renovate creates the PR. Any rule with `automerge: true` adds `addLabels: ['automerge']`, so the label is the single source of truth for "Renovate intended to auto-merge this."
85
- 2. `PR Quality Checks` and `Release` run on the PR.
86
- 3. When either completes, the `Renovate Merge` workflow is triggered via `workflow_run`. It:
87
- - filters to PRs authored by `leaflink-automation` with the `automerge` label,
88
- - asserts both required checks are present and successful,
89
- - calls the merge API authenticated as `leaflink-automation`.
90
- 4. Because the user is on the bypass list, the merge call succeeds despite `BLOCKED` status.
82
+ ### Auto-merge
91
83
 
92
- Human PRs are unaffected — they still require CODEOWNERS review.
84
+ Renovate uses **GitHub-native auto-merge** (`platformAutomerge: true`). `main` requires the `quality-checks` + `release` status checks and a CODEOWNERS review; the terraform-managed default-branch ruleset exempts `leaflink-automation` (whose PAT Renovate uses) from the review requirement, so an automerge PR no longer shows as `BLOCKED` and lands as soon as both checks pass. Human PRs are unaffected — they still require CODEOWNERS review.
93
85
 
94
- The required-checks list in `renovate-merge.yml` (`REQUIRED_CHECKS`) is hard-coded and must stay in sync with branch protection on `main`.
86
+ > Historical note: a custom `renovate-merge.yml` workflow used to perform merges on Renovate's behalf to work around the `BLOCKED` quirk. It was removed in #227 once the ruleset bypass made native auto-merge viable.
95
87
 
96
88
  ### Where to look
97
89
 
98
- - **Dependency Dashboard issue** (auto-created by Renovate, label `dependencies`) — single source of truth for what Renovate sees, what it skipped, and why.
90
+ - **Dependency Dashboard issue** (auto-created by Renovate, label `dependencies`) — single source of truth for what Renovate sees, what it's withholding (age gate), what it skipped, and why.
99
91
  - **Workflow runs** for `Renovate` in the Actions tab — `workflow_dispatch` with `logLevel: debug` to debug Renovate itself.
100
- - **Workflow runs** for `Renovate Merge` in the Actions tab — shows which PRs were merged or skipped (with reason) when CI completed. `workflow_dispatch` for manual recovery.
101
92
  - **`config:recommended`** is the base preset; any unspecified behavior comes from there.
102
93
 
103
94
  ## Usage
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leaflink/dom-testing-utils",
3
- "version": "0.0.0-PR-247--e479df5",
3
+ "version": "0.0.0-PR-249--0a5d3a6",
4
4
  "description": "Frontend DOM testing utilities",
5
5
  "packageManager": "pnpm@11.9.0",
6
6
  "engines": {