@ferrflow/linux-arm64 7.7.2 → 7.8.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.
- package/README.md +49 -0
- package/bin/ferrflow +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -305,6 +305,38 @@ format = "json"
|
|
|
305
305
|
|
|
306
306
|
</details>
|
|
307
307
|
|
|
308
|
+
#### One file per package
|
|
309
|
+
|
|
310
|
+
A large monorepo does not have to keep every package in the root config. List the per-package files
|
|
311
|
+
under `include`, and each project owns its own settings:
|
|
312
|
+
|
|
313
|
+
```json
|
|
314
|
+
{
|
|
315
|
+
"workspace": { "versioning": "semver" },
|
|
316
|
+
"include": ["services/*/ferrflow.json", "frontend/ferrflow.json"]
|
|
317
|
+
}
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
```json
|
|
321
|
+
{
|
|
322
|
+
"name": "api",
|
|
323
|
+
"changelog": "CHANGELOG.md",
|
|
324
|
+
"sharedPaths": ["../shared/"],
|
|
325
|
+
"versionedFiles": [{ "path": "Cargo.toml", "format": "toml" }]
|
|
326
|
+
}
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
Paths inside an included file are relative to that file, and `path` defaults to its directory. The
|
|
330
|
+
example above needs no `path`: `services/api/ferrflow.json` describes the package in
|
|
331
|
+
`services/api`, and moving the directory does not require editing anything.
|
|
332
|
+
|
|
333
|
+
Included files use the same keys as a `package` entry, so `dependsOn` still refers to packages by
|
|
334
|
+
name and works across files. They may use a different format than the root config, and they can be
|
|
335
|
+
mixed with an inline `package` array while you migrate.
|
|
336
|
+
|
|
337
|
+
The following are rejected rather than silently ignored: an `include` pattern matching no file, two
|
|
338
|
+
packages sharing a name, and an included file declaring `workspace`, `include`, or `package`.
|
|
339
|
+
|
|
308
340
|
## Versioning Strategies
|
|
309
341
|
|
|
310
342
|
Each package can use its own versioning strategy. Set a default at the workspace level and override per package:
|
|
@@ -450,6 +482,23 @@ skip_ci = false # force CI to run on release commits
|
|
|
450
482
|
|
|
451
483
|
In `pr` mode, `skip_ci` defaults to `false` since the PR merge triggers CI naturally.
|
|
452
484
|
|
|
485
|
+
### How `pr` mode releases
|
|
486
|
+
|
|
487
|
+
`pr` mode runs in two phases, so nothing is published for a release that has not been accepted.
|
|
488
|
+
|
|
489
|
+
The **proposing** run computes the bump, writes the version files and changelog onto the release
|
|
490
|
+
branch, and opens or updates the pull request. No tags are created and no releases are published.
|
|
491
|
+
Every later commit on the target branch regenerates the branch, so the open PR keeps tracking the
|
|
492
|
+
version that would ship now.
|
|
493
|
+
|
|
494
|
+
The **finalising** run happens after the PR merges. FerrFlow sees a `chore(release):` commit on the
|
|
495
|
+
target branch whose versions carry no tag, and tags exactly those versions before publishing the
|
|
496
|
+
releases. The versions are read from the version files, never recomputed, so merging a release PR
|
|
497
|
+
cannot cascade into a further bump. Squash merges and merge commits both work.
|
|
498
|
+
|
|
499
|
+
A package declared without `versionedFiles` has no version to read, so it is not finalised this way.
|
|
500
|
+
Use `commit` mode for tag-only packages.
|
|
501
|
+
|
|
453
502
|
## Floating Tags
|
|
454
503
|
|
|
455
504
|
Move abbreviated tags (e.g. `v1`, `v1.2`) to always point at the latest matching release:
|
package/bin/ferrflow
CHANGED
|
Binary file
|
package/package.json
CHANGED