rlsbl 0.66.4 → 0.67.1

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 +15 -10
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -75,7 +75,7 @@ All commands auto-detect targets (versioning) from project files (`package.json`
75
75
  | `monorepo release-order` | Compute and display the topological release order for all projects in the monorepo workspace based on their declared depends-on relationships. Projects with no dependencies are listed first, followed by projects that depend on them, ensuring each project is released only after its dependencies. Detects and reports circular dependency errors. |
76
76
  | `monorepo outdated` | Scan all projects in the monorepo workspace for intra-workspace dependencies that reference older versions than what is currently available in the workspace. Lists each outdated dependency with the referenced version and the latest available version, helping identify which downstream projects need a version bump after upstream releases. |
77
77
  | `monorepo snapshot` | Generate a committed JSON artifact at .rlsbl-monorepo/snapshot.json summarizing all packages, versions, dependencies, and graph structure. Use --check to verify the snapshot is up-to-date without regenerating it (exits 1 if stale). |
78
- | `monorepo mirror` | Initialize a subtree mirror repository for a monorepo project. Splits the project's subtree, pushes it to the configured subtree_remote, clones the mirror, scaffolds rlsbl CI, and pushes the result. |
78
+ | `monorepo mirror` | Initialize a subtree mirror repository for a monorepo project by performing a full git subtree split of the project's history, pushing the extracted tree to the configured subtree_remote URL, cloning the resulting standalone mirror repository, running rlsbl scaffold to generate CI workflows for independent publishing, and pushing the scaffolded mirror to its remote. |
79
79
  | `monorepo graph` | Export the monorepo dependency graph in JSON, DOT (Graphviz), or indented text tree format. Supports filtering by a root package (transitive deps) or reverse package (transitive rdeps), with optional depth limiting. Use --output to write to a file instead of stdout. |
80
80
  | `monorepo impact` | Analyze the impact of changes to a package, file, or git diff range on the monorepo dependency graph. Shows direct and transitive dependents, test scope, and release candidates. Supports package names, file paths, and --since for git-based change detection. |
81
81
  | `monorepo release` | Execute a batch release of multiple monorepo packages in topological order. Reads package configurations from .rlsbl-monorepo/releases/unreleased.toml. Each package is released sequentially using the single-package release flow, with leaves (no dependencies) released first. Supports --dry-run, --yes, --allow-dirty flags. |
@@ -139,7 +139,7 @@ Created files are committed automatically by default.
139
139
  | `.rlsbl/hooks/pre-checks.sh` | User-customizable pre-checks validation |
140
140
  | `.rlsbl/hooks/pre-release.sh` | User-customizable pre-release validation |
141
141
  | `.rlsbl/hooks/post-release.sh` | User-customizable post-release actions |
142
- | `.git/hooks/pre-push` | One-liner: `exec rlsbl pre-push-check "$@"` |
142
+ | `.git/hooks/pre-push` | Captures push refs, runs `rlsbl check --tag prepush` |
143
143
  | `.rlsbl/bases/` | Three-way merge bases for scaffold |
144
144
 
145
145
  **Three-way merge:** Bases are stored at scaffold time. On re-run, user customizations and template updates merge via `git merge-file`. Conflicts get git-style conflict markers.
@@ -157,7 +157,7 @@ See [docs/ci-customization.md](docs/ci-customization.md) for an example.
157
157
 
158
158
  ## Check system
159
159
 
160
- rlsbl includes 49 checks across 6 tags.
160
+ rlsbl includes 50 checks across 6 tags.
161
161
 
162
162
  | Tag | Checks | Description |
163
163
  |-----|--------|-------------|
@@ -169,7 +169,7 @@ rlsbl includes 49 checks across 6 tags.
169
169
  | (untagged) | 4 | Additional validation checks |
170
170
 
171
171
  ```
172
- rlsbl check --all # run all 49 checks
172
+ rlsbl check --all # run all 50 checks
173
173
  rlsbl check --tag changelog # run checks by tag
174
174
  rlsbl check --name lock # run a single check
175
175
  ```
@@ -211,17 +211,22 @@ On partial failure, prints a structured summary table with remediation commands
211
211
 
212
212
  ## Pre-push hook
213
213
 
214
- The `.git/hooks/pre-push` hook calls `rlsbl pre-push-check`, which:
214
+ The `.git/hooks/pre-push` hook captures push refs from git and runs `rlsbl check --tag prepush`, which enforces:
215
215
 
216
- 1. Detects project type (`package.json`, `pyproject.toml`, or `VERSION`)
217
- 2. Extracts the current version
218
- 3. Checks that `CHANGELOG.md` contains a `## <version>` heading
219
- 4. Blocks the push if the entry is missing
216
+ 1. **Changelog coverage** -- every pushed commit must have a JSONL entry
217
+ 2. **Gitignore guard** -- rlsbl-managed files must not be gitignored
218
+ 3. **Manual push warning** -- warns when pushing to a release branch outside `rlsbl release`
219
+ 4. **Test suite** -- runs project tests (single-project) or affected project tests (monorepo)
220
+
221
+ Old hooks that call `rlsbl pre-push-check` still work but show a deprecation warning. Run `rlsbl scaffold` to update to the current hook format.
220
222
 
221
223
  To reinstall manually:
222
224
 
223
225
  ```
224
- echo '#!/bin/sh' > .git/hooks/pre-push && echo 'exec rlsbl pre-push-check "$@"' >> .git/hooks/pre-push && chmod +x .git/hooks/pre-push
226
+ echo '#!/usr/bin/env bash' > .git/hooks/pre-push
227
+ echo 'export RLSBL_PUSH_STDIN="$(cat)"' >> .git/hooks/pre-push
228
+ echo 'exec rlsbl check --tag prepush' >> .git/hooks/pre-push
229
+ chmod +x .git/hooks/pre-push
225
230
  ```
226
231
 
227
232
  ## Ecosystem tagging
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rlsbl",
3
- "version": "0.66.4",
3
+ "version": "0.67.1",
4
4
  "description": "Release orchestration and project scaffolding for npm, PyPI, and Go",
5
5
  "license": "MIT",
6
6
  "bin": {