rlsbl 0.11.2 → 0.12.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.
Files changed (2) hide show
  1. package/README.md +27 -20
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # rlsbl
6
6
 
7
- Release orchestration and project scaffolding CLI for npm, PyPI, and Go. Pure Python, no dependencies.
7
+ Release orchestration and project scaffolding CLI for npm, PyPI, and Go. Pure Python, one dependency (tomlkit).
8
8
 
9
9
  ## Install
10
10
 
@@ -38,17 +38,18 @@ All commands auto-detect registries from project files (`package.json`, `pyproje
38
38
  | `release [patch\|minor\|major]` | Bump version, commit, tag, push, create GitHub Release |
39
39
  | `scaffold [--force] [--update]` | Scaffold CI/CD, hooks, and release infrastructure |
40
40
  | `status` | Show version, branch, last tag, changelog coverage, CI presence |
41
- | `check <name>` | Check name availability on npm/PyPI (parallel variant queries) |
41
+ | `check <name>` | Check name availability on npm/PyPI/GitHub (parallel variant queries) |
42
42
  | `config [show\|init\|migrate\|status]` | Manage project configuration and schema migrations |
43
43
  | `undo [--yes]` | Revert the last release (tag, commit, GitHub Release) |
44
44
  | `discover [--mine]` | List rlsbl ecosystem projects via GitHub topic search |
45
- | `watch [<sha>]` | Monitor CI runs for a commit (parallel polling), notify on completion |
45
+ | `watch [<sha>]` | Monitor CI runs for a commit (parallel polling), print workflow audit summary, notify on completion |
46
46
  | `unreleased [--json]` | List commits since last tag, report changelog coverage |
47
47
  | `prs` | List open pull requests for the current repo |
48
+ | `targets` | List available release targets with detection status |
48
49
  | `record-gif` | Record a demo GIF with vhs |
49
50
  | `pre-push-check` | Verify CHANGELOG entry exists for the current version |
50
51
 
51
- Global flags: `--help`, `--version`, `--registry <npm|pypi|go>`, `--no-tag`.
52
+ Global flags: `--help`, `--version`, `--target <npm|pypi|go>`, `--registry <npm|pypi|go>` (deprecated alias for `--target`), `--no-tag`.
52
53
 
53
54
  ## Release flow
54
55
 
@@ -56,22 +57,28 @@ When you run `rlsbl release [patch|minor|major]`:
56
57
 
57
58
  1. Verifies `gh` CLI is installed and authenticated
58
59
  2. Checks working tree is clean
59
- 3. Reads the current version from the primary project file
60
- 4. Computes the new version; confirms the tag does not already exist
61
- 5. Validates `CHANGELOG.md` contains a `## <new-version>` section
62
- 6. Runs `.rlsbl/hooks/pre-release.sh` if present (non-zero exit aborts; receives `RLSBL_VERSION`)
63
- 7. Acquires advisory lockfile (`.rlsbl/lock`) to prevent concurrent operations
64
- 8. Writes the new version to all detected project files and `.rlsbl/version`
65
- 9. Adds `rlsbl` keyword to manifests if ecosystem tagging is enabled
66
- 10. Verifies no unexpected files were modified (race condition guard)
67
- 11. Commits the version bump (uses `safegit` if available)
68
- 12. Tags and pushes to `origin`
69
- 13. Creates a GitHub Release with the changelog entry as notes
70
- 14. Adds `rlsbl` topic to the GitHub repo (if tagging enabled)
71
- 15. Runs `.rlsbl/hooks/post-release.sh` if present (non-fatal; receives `RLSBL_VERSION`)
72
- 16. Prints `Watch CI: rlsbl watch <sha>`
73
-
74
- Use `--dry-run` to preview without changes. Use `--yes` for non-interactive mode (CI, AI agents).
60
+ 3. Fetches origin and verifies local branch is not behind remote (use `--skip-remote-check` for offline releases)
61
+ 4. Reads the current version from the primary project file
62
+ 5. Computes the new version; confirms the tag does not already exist
63
+ 6. Validates `CHANGELOG.md` contains a `## <new-version>` section
64
+ 7. Runs `.rlsbl/hooks/pre-release.sh` if present (non-zero exit aborts; receives `RLSBL_VERSION`)
65
+ 8. Acquires advisory lockfile (`.rlsbl/lock`) to prevent concurrent operations
66
+ 9. Writes the new version to all detected project files and `.rlsbl/version`
67
+ 10. Adds `rlsbl` keyword to manifests if ecosystem tagging is enabled
68
+ 11. Verifies no unexpected files were modified (race condition guard)
69
+ 12. Commits the version bump (uses `safegit` if available)
70
+ 13. Tags and pushes to `origin`
71
+ 14. Creates a GitHub Release with the changelog entry as notes
72
+ 15. Adds `rlsbl` topic to the GitHub repo (if tagging enabled)
73
+ 16. Runs secondary release targets (e.g., docs via selfdoc); use `--include`/`--exclude` to control
74
+ 17. Runs `.rlsbl/hooks/post-release.sh` if present (non-fatal; receives `RLSBL_VERSION`)
75
+ 18. Prints `Watch CI: rlsbl watch <sha>`
76
+
77
+ Use `--dry-run` to preview without changes. Use `--yes` for non-interactive mode (CI, AI agents). Use `--skip-remote-check` for offline releases.
78
+
79
+ **Multi-target releases:** Secondary targets (e.g., docs) run automatically during release. Control which targets run with `--include <target>` and `--exclude <target>` (comma-separated). Configure defaults in `.rlsbl/config.json` via the `release_targets` list. Use `rlsbl targets` to see all available targets.
80
+
81
+ **Documentation:** Use [selfdoc](https://github.com/smm-h/selfdoc) for documentation generation. rlsbl auto-triggers selfdoc during releases when `selfdoc.json` is detected.
75
82
 
76
83
  First release: if the current version has never been tagged, `release` publishes it as-is (bump type is ignored).
77
84
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rlsbl",
3
- "version": "0.11.2",
3
+ "version": "0.12.0",
4
4
  "description": "Release orchestration and project scaffolding for npm, PyPI, and Go",
5
5
  "license": "MIT",
6
6
  "bin": {