Skip to content

(#170) Retrofit demo/{script,frosting} ahead of v8.0.0 release - #171

Merged
gep13 merged 5 commits into
cake-contrib:developfrom
gep13:feature/cake-5
May 7, 2026
Merged

gep13 merged 5 commits into
cake-contrib:developfrom
gep13:feature/cake-5

Conversation

@gep13

@gep13 gep13 commented May 7, 2026

Copy link
Copy Markdown
Member

Closes #170.

The Cake 5 work landed unreleased on develop via #153 (closed #152), and the baseline retrofit landed via #169. v8.0.0 will ship that combined state, plus the workspace's standard demo-pattern retrofit so future per-Cake-major catch-up PRs have a stable shape.

Scope

  • PackageTags canonicalisation — cake;cake-build;cake-addin;addin;script;build;filehelpers (workspace canonical prefix + one addin-specific tail tag).
  • Tests TFM rotation — drop net9.0 from the tests project; tests now target net8.0 only (lowest of the addin's net8.0;net9.0 range, per the workspace tests-TFM rotation table).
  • Move test.cake → demo/script/filehelpers.cake — preserves git history via git mv. Renamed from test.cake to match Cake.Coveralls' workspace-canonical <addin-shortname>.cake pattern. Adds demo/script/.config/dotnet-tools.json (cake.tool 5.1.0, latest of Cake 5.x as of 2026-05-07) plus build.ps1 / build.sh wrappers that cd to the script dir, restore the local tool, then run dotnet cake filehelpers.cake.
  • Add demo/frosting/ — Cake.Frosting 5.1.0. Mirrors the alias surface of filehelpers.cake as a Frosting project, with tasks chained via [IsDependentOn] to preserve the Setup → Read → Write → Append → Touch → Find → Replace → Cleanup ordering. BuildContext owns the working-directory + sample/written/touched paths so each task accesses them through one shared place.
  • Wire Run demo/script + Run demo/frosting into build.yml — both demos run after the recipe build (if: success()) so they consume the published library produced by DotNetCore-Pack. demo/sdk joins at v9.0.0 (the Cake 6 catch-up).

Out of scope

  • Cake.Core / Cake.Common (5.0.0) and the addin's TFMs (net8.0;net9.0) are unchanged — those are the per-major contract anchors and stay locked until v9.0.0.
  • Cake 6 / .NET 10 / demo/sdk work — tracked by Update Cake.FileHelpers add-in to target Cake v6.0.0 #155 against milestone 9.0.0.

Local verification

  • dotnet cake recipe.cake --target=Package — green (4 test runs, package built).
  • ./demo/script/build.ps1 — all 8 tasks executed, all assertions passed.
  • ./demo/frosting/build.ps1 — all 8 tasks executed in dependency order, all assertions passed.

Release context

The v8.0.0 milestone covers the full Cake 4 → Cake 5 jump:

gep13 added 5 commits May 7, 2026 08:37
Workspace conventions adopted in the v8.0.0 retrofit:

- PackageTags: canonical prefix `cake;cake-build;cake-addin;addin;script;build`
  with `filehelpers` as the addin-specific tail tag (one of three permitted).
- Tests project drops to `net8.0` only — the lowest of the addin's range
  (`net8.0;net9.0`), per the workspace tests-TFM rotation table for Cake 5.x.

Cake.Core/Common (5.0.0) and addin TFMs (net8.0;net9.0) unchanged — those
are the per-major contract anchors and stay locked to N.0.0 / their
declared range until the next per-Cake-major catch-up.
…0 wrappers

Workspace standard since 2026-05-04: every per-Cake-major catch-up arc
ships demo/{script,frosting} from day one (demo/sdk joins at Cake 6).
Retrofitting Cake.FileHelpers into that shape now so the v9.0.0
catch-up only adds demo/sdk on top.

- git mv test.cake -> demo/script/test.cake (rename preserves history).
- #reference path updated for the new depth and rebased to net8.0
  (workspace anchor for demo/* HintPath / #reference, matching the
  Cake.Coveralls demo/script convention).
- demo/script/.config/dotnet-tools.json pins cake.tool to 5.1.0
  (latest of Cake 5.x as of 2026-05-07; Renovate will track).
- demo/script/build.ps1 + build.sh wrappers cd to the script dir,
  restore the local tool, then run `dotnet cake test.cake`.

The v8.0.0 release ships the unreleased Cake 5 work that landed on
develop via cake-contrib#153 (closes cake-contrib#152), plus this retrofit. Cake.Core /
Cake.Common stay at 5.0.0 — the per-major contract anchor.
Workspace pattern (Cake.Coveralls demo/script ships coveralls.cake):
the script's filename matches the addin's short name, not the generic
test.cake the root copy used. Renaming now so the v8.0.0 retrofit lands
the workspace-canonical layout in one go.

Wrappers updated to invoke filehelpers.cake; no other call sites yet.
… Frosting

Mirror of demo/script/filehelpers.cake's task surface as a Frosting
project, so the workspace's standard demo-pattern is complete from
day one (demo/sdk joins at the Cake 6 catch-up release in v9.0.0).

- Cake.Frosting 5.1.0 (latest of Cake 5.x as of 2026-05-07).
- HintPath references Cake.FileHelpers.dll from
  BuildArtifacts/temp/_PublishedLibraries/Cake.FileHelpers/net8.0/
  (the workspace anchor TFM for demo/* references; Renovate will
  not touch this since it's a HintPath, not a PackageReference).
- Tasks chained via [IsDependentOn] to preserve the deterministic
  Setup -> Read -> Write -> Append -> Touch -> Find -> Replace ->
  Cleanup ordering that demo/script/filehelpers.cake relies on
  (Replace mutates sample files in-place, so it must run after
  Read / Find).
- BuildContext owns the working directory + sample/written/touched
  file paths so each task accesses them through one shared place
  rather than recomputing.
Run both demos as separate CI steps after the recipe build, so
regressions in either invocation surface in the same workflow as
the addin's own test suite. demo/sdk joins at v9.0.0 (Cake 6).

`if: success()` keeps the demos gated on the recipe build passing
first — they consume BuildArtifacts/temp/_PublishedLibraries/ which
only exists after DotNetCore-Pack runs.

@gep13 gep13 left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

LGTM!

@gep13
gep13 merged commit e5e10e4 into cake-contrib:develop May 7, 2026
4 checks passed
@gep13
gep13 deleted the feature/cake-5 branch May 7, 2026 18:05
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.

Retrofit demo/{script,frosting} ahead of v8.0.0 release Update Cake.FileHelpers to target Cake v5.0.0

1 participant