Skip to content

feat(config): add workspace.deferPublish to skip publishers on release#583

Merged
BryanFRD merged 1 commit into
mainfrom
feat/defer-publish
Jun 16, 2026
Merged

feat(config): add workspace.deferPublish to skip publishers on release#583
BryanFRD merged 1 commit into
mainfrom
feat/defer-publish

Conversation

@BryanFRD

Copy link
Copy Markdown
Contributor

@

What

Adds workspace.deferPublish (bool, default false). When true, ferrflow release skips the inline publisher phase; ferrflow publish still runs the publishers regardless.

Why

Publishers run at the end of ferrflow release, inside whatever job runs the release. When that job is minimal (no docker buildx / helm / built npm dist/), repos had to keep a separate config file for ferrflow publish so the release run wouldn't try to publish and fail. That two-file split is awkward. With deferPublish: true, a repo keeps one .ferrflow (publishers + the flag): release versions/tags, and a separate ferrflow publish job (with the toolchain) publishes.

Notes

  • Default false → existing behaviour unchanged (publishers run on release, as Kit relies on).
  • Flag is read from config by the binary — no action / reusable-workflow changes needed.
  • Implemented as a guard in the release post-publish phase; ferrflow publish ignores the flag.

Verification

Unit tests (parse + default). Functional check in a temp repo: ferrflow --dry-run release with deferPublish: true shows no publisher output, while ferrflow --dry-run publish runs them. Full suite + clippy green; schema mirrored to FerrFlow-Cloud.

Closes #582
@

@BryanFRD BryanFRD enabled auto-merge (squash) June 16, 2026 17:48
@BryanFRD BryanFRD merged commit 31d6250 into main Jun 16, 2026
39 checks passed
@BryanFRD BryanFRD deleted the feat/defer-publish branch June 16, 2026 17:51

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Details
Benchmark suite Current: 74c68d6 Previous: 0b5fe57 Ratio
version_files/toml_read 8130 ns/iter (± 59) 8489 ns/iter (± 791) 0.96
version_files/toml_write 183557 ns/iter (± 19643) 132036 ns/iter (± 10286) 1.39
version_files/json_read 5522 ns/iter (± 41) 5314 ns/iter (± 69) 1.04
version_files/json_write 137826 ns/iter (± 25747) 130851 ns/iter (± 8755) 1.05
version_files/xml_read 5164 ns/iter (± 46) 5140 ns/iter (± 16) 1.00
version_files/xml_write 129313 ns/iter (± 9980) 138826 ns/iter (± 18123) 0.93
version_files/gradle_read 5028 ns/iter (± 58) 4981 ns/iter (± 37) 1.01
version_files/gradle_write 129980 ns/iter (± 9352) 128857 ns/iter (± 12186) 1.01

This comment was automatically generated by workflow using github-action-benchmark.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: 74c68d6 Previous: 0b5fe57 Ratio
version_files/toml_write 183557 ns/iter (± 19643) 132036 ns/iter (± 10286) 1.39

This comment was automatically generated by workflow using github-action-benchmark.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(config): add workspace.deferPublish to skip publishers on release

1 participant