@ferrflow/linux-arm64 7.7.2 → 7.8.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
@@ -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
@@ -12,5 +12,5 @@
12
12
  "type": "git",
13
13
  "url": "git+https://github.com/FerrLabs/FerrFlow.git"
14
14
  },
15
- "version": "7.7.2"
15
+ "version": "7.8.0"
16
16
  }