@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 +56 -17
- package/dist/bin.mjs +276 -198
- package/dist/{check-DMDdHanG.mjs → check-Ceom_OgJ.mjs} +61 -11
- package/dist/docker-check/index.d.mts +2 -0
- package/dist/docker-check/index.mjs +1 -1
- package/package.json +1 -1
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.
|
|
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
|
|
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:
|