@bensandee/tooling 0.32.0 → 0.34.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.
package/README.md CHANGED
@@ -32,7 +32,7 @@ The tool auto-detects project structure, CI platform, project type, and Docker p
32
32
  | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
33
33
  | `tooling repo:sync [dir]` | Detect, generate, and sync project tooling (idempotent). First run prompts for release strategy, CI platform (if not detected), and formatter (if Prettier found). Subsequent runs are non-interactive. |
34
34
  | `tooling repo:sync --check [dir]` | Dry-run drift detection. Exits 1 if files would change. CI-friendly. |
35
- | `tooling checks:run` | Run project checks (build, docker:build, typecheck, lint, test, format, knip, tooling:check, docker:check). Flags: `--skip`, `--add`, `--fail-fast`. |
35
+ | `tooling checks:run` | Run project checks (build, docker:build, typecheck, lint, test, format, knip, tooling:check, docker:check). Flags: `--skip`, `--add`, `--fail-fast`, `--verbose`. |
36
36
 
37
37
  **Flags:** `--yes` (accept all defaults), `--no-ci`, `--no-prompt`, `--eslint-plugin`
38
38
 
@@ -60,13 +60,39 @@ The generated `ci:check` script defaults to `pnpm check --skip 'docker:*'` since
60
60
 
61
61
  ### Release management
62
62
 
63
- | Command | Description |
64
- | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
65
- | `tooling release:changesets` | Changesets version/publish for Forgejo CI. Flag: `--dry-run`. Env: `FORGEJO_SERVER_URL`, `FORGEJO_REPOSITORY`, `RELEASE_TOKEN`. |
66
- | `tooling release:simple` | Streamlined release using commit-and-tag-version. |
67
- | `tooling release:trigger` | Trigger a release workflow. |
68
- | `tooling forgejo:create-release` | Create a Forgejo release from a tag. |
69
- | `tooling changesets:merge` | Merge a changesets version PR. |
63
+ | Command | Description |
64
+ | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
65
+ | `tooling release:changesets` | Changesets version/publish for Forgejo CI. Flags: `--dry-run`, `--verbose`. Env: `FORGEJO_SERVER_URL`, `FORGEJO_REPOSITORY`, `RELEASE_TOKEN`. |
66
+ | `tooling release:simple` | Streamlined release using commit-and-tag-version. Flags: `--release-as`, `--first-release`, `--prerelease`, `--verbose`. |
67
+ | `tooling release:trigger` | Trigger a release workflow. |
68
+ | `tooling forgejo:create-release` | Create a Forgejo release from a tag. |
69
+ | `tooling changesets:merge` | Merge a changesets version PR. |
70
+
71
+ #### `release:simple`
72
+
73
+ Uses `commit-and-tag-version` under the hood. Version bumps are auto-detected from [Conventional Commits](https://www.conventionalcommits.org/):
74
+
75
+ | Commit prefix | Bump | Example |
76
+ | ----------------------- | ----- | ------------------------------------ |
77
+ | `fix:` | patch | `fix: handle null response` |
78
+ | `feat:` | minor | `feat: add retry logic` |
79
+ | `feat!:` / `fix!:` etc | major | `feat!: drop v1 API` |
80
+ | `BREAKING CHANGE:` body | major | Any type with breaking change footer |
81
+
82
+ Override auto-detection with CLI flags:
83
+
84
+ ```bash
85
+ # Force a major bump
86
+ tooling release:simple --release-as major
87
+
88
+ # Force a specific version
89
+ tooling release:simple --release-as 2.0.0
90
+
91
+ # Create a prerelease
92
+ tooling release:simple --release-as major --prerelease beta # → 2.0.0-beta.0
93
+ ```
94
+
95
+ The generated release workflow exposes these as optional `workflow_dispatch` inputs (`bump` and `prerelease`), so bumps can also be controlled from the CI UI.
70
96
 
71
97
  ### Docker
72
98
 
@@ -121,7 +147,7 @@ To give individual packages a standalone `image:build` script for local testing:
121
147
  }
122
148
  ```
123
149
 
124
- **Flags:** `--package <dir>` (build a single package)
150
+ **Flags:** `--package <dir>` (build a single package), `--verbose`
125
151
 
126
152
  #### `docker:publish`
127
153
 
@@ -131,16 +157,18 @@ Tags generated per package: `latest`, `vX.Y.Z`, `vX.Y`, `vX`
131
157
 
132
158
  Each package is tagged independently using its own version, so packages in a monorepo can have different release cadences. Packages without a `version` field are rejected at publish time.
133
159
 
134
- **Flags:** `--dry-run` (build and tag only, skip login/push/logout)
160
+ **Flags:** `--dry-run` (build and tag only, skip login/push/logout), `--verbose`
135
161
 
136
- **Required environment variables:**
162
+ **Required CI variables:**
137
163
 
138
- | Variable | Description |
139
- | --------------------------- | --------------------------------------------------------------------- |
140
- | `DOCKER_REGISTRY_HOST` | Registry hostname (e.g. `code.orangebikelabs.com`) |
141
- | `DOCKER_REGISTRY_NAMESPACE` | Full namespace for tagging (e.g. `code.orangebikelabs.com/bensandee`) |
142
- | `DOCKER_USERNAME` | Registry username |
143
- | `DOCKER_PASSWORD` | Registry password |
164
+ | Variable | Type | Description |
165
+ | --------------------------- | -------- | --------------------------------------------------------------------- |
166
+ | `DOCKER_REGISTRY_HOST` | variable | Registry hostname (e.g. `code.orangebikelabs.com`) |
167
+ | `DOCKER_REGISTRY_NAMESPACE` | variable | Full namespace for tagging (e.g. `code.orangebikelabs.com/bensandee`) |
168
+ | `DOCKER_USERNAME` | secret | Registry username |
169
+ | `DOCKER_PASSWORD` | secret | Registry password |
170
+
171
+ **Forgejo setup:** On Forgejo, `DOCKER_USERNAME` is your Forgejo account username, and `DOCKER_PASSWORD` can reuse the same token as `RELEASE_TOKEN`. The token needs write permissions on the org, package, and repository scopes. These permissions should be set for the **user** if the package is under a user namespace (e.g. `bensandee`), or the **organization** if it's under an org namespace (e.g. `orangebikelabs`).
144
172
 
145
173
  ## Config file
146
174
 
@@ -160,6 +188,17 @@ Available override fields:
160
188
  | `projectType` | string | Auto-detected from `package.json` deps |
161
189
  | `detectPackageTypes` | boolean | `true` |
162
190
 
191
+ ## Debug logging
192
+
193
+ All CLI commands support a `--verbose` flag for detailed debug output. Alternatively, set `TOOLING_DEBUG=true` as an environment variable — useful in CI workflows:
194
+
195
+ ```yaml
196
+ env:
197
+ TOOLING_DEBUG: "true"
198
+ ```
199
+
200
+ Debug output is prefixed with `[debug]` and includes exec results (exit codes, stdout/stderr), compose configuration details, container health statuses, and retry attempts.
201
+
163
202
  ## Library API
164
203
 
165
204
  The `"."` export provides type-only exports for programmatic use: