ferrflow 7.35.6 → 7.36.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 +17 -0
- package/package.json +8 -8
- package/types/config.d.ts +52 -0
package/README.md
CHANGED
|
@@ -192,6 +192,8 @@ ferrflow migrate --from semantic-release
|
|
|
192
192
|
|
|
193
193
|
It maps `tagFormat`, `branches`, and the common plugins (`changelog`, `exec`, `github`/`gitlab`) to their FerrFlow equivalents, and prints a summary of what mapped, what was ignored, and what needs manual review. Anything without a FerrFlow equivalent is surfaced, never guessed. JSON `.releaserc` is supported today; YAML `.releaserc` and JS `release.config.js` are reported as unsupported rather than mis-parsed.
|
|
194
194
|
|
|
195
|
+
`ferrflow migrate --from release-please` also maps `extra-files` (`generic` markers to a `txt` selector, `toml` on `Cargo.toml` and `json` on `$.version` to their formats), `bump-minor-pre-major` and `bump-patch-for-minor-pre-major` to `preMajor` (`breaking: minor`, `feat: patch`), and writes `autoMergeReleases: false` since release-please never merges its release PR. Lockfile updates are enabled when a versioned manifest has one. Entries it cannot express are listed under "Review manually". Only non-default keys are written.
|
|
196
|
+
|
|
195
197
|
### JSON Schema
|
|
196
198
|
|
|
197
199
|
Add `$schema` to get autocompletion and validation in VS Code, WebStorm, and any JSON-aware editor:
|
|
@@ -391,6 +393,21 @@ versioning = "calver" # override: date-based
|
|
|
391
393
|
| `sequential` | `N` | `42` | Simple incrementing build number |
|
|
392
394
|
| `zerover` | `0.MINOR.PATCH` | `0.15.2` | Permanently unstable, never hits 1.0 |
|
|
393
395
|
|
|
396
|
+
### Pre-1.0 bump rules
|
|
397
|
+
|
|
398
|
+
By default a `semver` project jumps to `1.0.0` on its first breaking change. Set `preMajor` to stay in 0.x: while the current major is `0`, a breaking change bumps what `breaking` says and a `feat` bumps what `feat` says (`minor` or `patch`). `fix` is unchanged.
|
|
399
|
+
|
|
400
|
+
```toml
|
|
401
|
+
[workspace]
|
|
402
|
+
versioning = "semver"
|
|
403
|
+
|
|
404
|
+
[workspace.preMajor]
|
|
405
|
+
breaking = "minor"
|
|
406
|
+
feat = "patch"
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
From `0.5.0`: `feat!` gives `0.6.0`, `feat` and `fix` give `0.5.1`. This matches release-please's `bump-minor-pre-major` plus `bump-patch-for-minor-pre-major`. From `1.0.0` on it has no effect, and `ferrflow release --force-version 1.0.0` leaves 0.x. Packages can override it with their own `preMajor`. Unset keeps the standard rules.
|
|
410
|
+
|
|
394
411
|
## Tag Template
|
|
395
412
|
|
|
396
413
|
By default, FerrFlow tags single-repo releases as `v1.2.3` and monorepo releases as `api@v1.2.3`. Customize with `tag_template` at the workspace or package level using `{name}` and `{version}` placeholders.
|
package/package.json
CHANGED
|
@@ -31,13 +31,13 @@
|
|
|
31
31
|
"main": "./index.js",
|
|
32
32
|
"name": "ferrflow",
|
|
33
33
|
"optionalDependencies": {
|
|
34
|
-
"@ferrflow/darwin-arm64": "7.
|
|
35
|
-
"@ferrflow/darwin-x64": "7.
|
|
36
|
-
"@ferrflow/linux-arm": "7.
|
|
37
|
-
"@ferrflow/linux-arm64": "7.
|
|
38
|
-
"@ferrflow/linux-x64": "7.
|
|
39
|
-
"@ferrflow/win32-arm64": "7.
|
|
40
|
-
"@ferrflow/win32-x64": "7.
|
|
34
|
+
"@ferrflow/darwin-arm64": "7.36.0",
|
|
35
|
+
"@ferrflow/darwin-x64": "7.36.0",
|
|
36
|
+
"@ferrflow/linux-arm": "7.36.0",
|
|
37
|
+
"@ferrflow/linux-arm64": "7.36.0",
|
|
38
|
+
"@ferrflow/linux-x64": "7.36.0",
|
|
39
|
+
"@ferrflow/win32-arm64": "7.36.0",
|
|
40
|
+
"@ferrflow/win32-x64": "7.36.0"
|
|
41
41
|
},
|
|
42
42
|
"repository": {
|
|
43
43
|
"type": "git",
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
},
|
|
46
46
|
"type": "module",
|
|
47
47
|
"types": "./index.d.ts",
|
|
48
|
-
"version": "7.
|
|
48
|
+
"version": "7.36.0"
|
|
49
49
|
}
|
package/types/config.d.ts
CHANGED
|
@@ -133,6 +133,32 @@ export interface FerrFlowConfiguration {
|
|
|
133
133
|
* Default versioning strategy for all packages.
|
|
134
134
|
*/
|
|
135
135
|
versioning?: 'semver' | 'calver' | 'calver-short' | 'calver-seq' | 'calver-short-seq' | 'sequential' | 'zerover';
|
|
136
|
+
/**
|
|
137
|
+
* While the current major is 0 on a `semver` project, remaps the bump: `breaking` replaces what a breaking change bumps (normally major) and `feat` replaces what a `feat` bumps (normally minor). `{"breaking": "minor", "feat": "patch"}` matches release-please's bump-minor-pre-major and bump-patch-for-minor-pre-major. No effect from 1.0.0 on, leave 0.x with `ferrflow release --force-version 1.0.0`. Omit for the standard semver rules.
|
|
138
|
+
*/
|
|
139
|
+
preMajor?: {
|
|
140
|
+
/**
|
|
141
|
+
* Bump a breaking change takes while the current major is 0.
|
|
142
|
+
*/
|
|
143
|
+
breaking?: 'minor' | 'patch';
|
|
144
|
+
/**
|
|
145
|
+
* Bump a `feat` commit takes while the current major is 0.
|
|
146
|
+
*/
|
|
147
|
+
feat?: 'minor' | 'patch';
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Snake_case form of `preMajor`, both spellings are accepted. While the current major is 0 on a `semver` project, remaps the bump: `breaking` replaces what a breaking change bumps (normally major) and `feat` replaces what a `feat` bumps (normally minor). `{"breaking": "minor", "feat": "patch"}` matches release-please's bump-minor-pre-major and bump-patch-for-minor-pre-major. No effect from 1.0.0 on, leave 0.x with `ferrflow release --force-version 1.0.0`. Omit for the standard semver rules.
|
|
151
|
+
*/
|
|
152
|
+
pre_major?: {
|
|
153
|
+
/**
|
|
154
|
+
* Bump a breaking change takes while the current major is 0.
|
|
155
|
+
*/
|
|
156
|
+
breaking?: 'minor' | 'patch';
|
|
157
|
+
/**
|
|
158
|
+
* Bump a `feat` commit takes while the current major is 0.
|
|
159
|
+
*/
|
|
160
|
+
feat?: 'minor' | 'patch';
|
|
161
|
+
};
|
|
136
162
|
/**
|
|
137
163
|
* Version format built from named variables. Variables: year, short_year, month, padded_month, day, padded_day, week, padded_week, quarter, seq, major, minor, patch. Each must be separated by a literal so the previous version can be read back. The literals cannot carry whitespace, control characters, or the characters git reserves in a ref name (~ ^ : ? * [ backslash), because the version becomes a git tag. Takes precedence over 'versioning'.
|
|
138
164
|
*/
|
|
@@ -454,6 +480,32 @@ export interface FerrFlowConfiguration {
|
|
|
454
480
|
* Versioning strategy for this package. Overrides workspace default.
|
|
455
481
|
*/
|
|
456
482
|
versioning?: 'semver' | 'calver' | 'calver-short' | 'calver-seq' | 'calver-short-seq' | 'sequential' | 'zerover';
|
|
483
|
+
/**
|
|
484
|
+
* Per-package override for workspace.preMajor. While the current major is 0 on a `semver` project, remaps the bump: `breaking` replaces what a breaking change bumps (normally major) and `feat` replaces what a `feat` bumps (normally minor). `{"breaking": "minor", "feat": "patch"}` matches release-please's bump-minor-pre-major and bump-patch-for-minor-pre-major. No effect from 1.0.0 on, leave 0.x with `ferrflow release --force-version 1.0.0`. Omit for the standard semver rules.
|
|
485
|
+
*/
|
|
486
|
+
preMajor?: {
|
|
487
|
+
/**
|
|
488
|
+
* Bump a breaking change takes while the current major is 0.
|
|
489
|
+
*/
|
|
490
|
+
breaking?: 'minor' | 'patch';
|
|
491
|
+
/**
|
|
492
|
+
* Bump a `feat` commit takes while the current major is 0.
|
|
493
|
+
*/
|
|
494
|
+
feat?: 'minor' | 'patch';
|
|
495
|
+
};
|
|
496
|
+
/**
|
|
497
|
+
* Snake_case form of `preMajor`, both spellings are accepted. Per-package override for workspace.preMajor. While the current major is 0 on a `semver` project, remaps the bump: `breaking` replaces what a breaking change bumps (normally major) and `feat` replaces what a `feat` bumps (normally minor). `{"breaking": "minor", "feat": "patch"}` matches release-please's bump-minor-pre-major and bump-patch-for-minor-pre-major. No effect from 1.0.0 on, leave 0.x with `ferrflow release --force-version 1.0.0`. Omit for the standard semver rules.
|
|
498
|
+
*/
|
|
499
|
+
pre_major?: {
|
|
500
|
+
/**
|
|
501
|
+
* Bump a breaking change takes while the current major is 0.
|
|
502
|
+
*/
|
|
503
|
+
breaking?: 'minor' | 'patch';
|
|
504
|
+
/**
|
|
505
|
+
* Bump a `feat` commit takes while the current major is 0.
|
|
506
|
+
*/
|
|
507
|
+
feat?: 'minor' | 'patch';
|
|
508
|
+
};
|
|
457
509
|
/**
|
|
458
510
|
* Version format built from named variables. Variables: year, short_year, month, padded_month, day, padded_day, week, padded_week, quarter, seq, major, minor, patch. Each must be separated by a literal so the previous version can be read back. The literals cannot carry whitespace, control characters, or the characters git reserves in a ref name (~ ^ : ? * [ backslash), because the version becomes a git tag. Overrides workspace default. Takes precedence over 'versioning'.
|
|
459
511
|
*/
|