Fallout-build / Fallout-build/Fallout

[Foundation] FT-3: Convert public static build properties to BuildContext-backed facades

Open
#308 0 comments 0 reactions 0 assignees View on GitHub
enhancement target/vCurrent
Dominant language
C#
Stars
154
Forks
19
Avg merge
1d 22h
Merged PRs (30d)
15

Description

## Summary

Convert the public static build properties to **thin facades over `BuildContext.Current`**, and stop the engine internals from reading the statics directly. Backwards-compatible: the public API is preserved.

## Findings (file:line)

`FalloutBuild.Statics.cs` — these are public static and set once in the static ctor:
- `RootDirectory` (`:36`), `TemporaryDirectory` (`:41`), `BuildAssemblyFile` (`:46`), `BuildAssemblyDirectory` (`:51`), `BuildProjectDirectory` (`:56`), `BuildProjectFile` (`:61`), `Verbosity` (`:67`, mutable), `Host` (`:77`, mutable), `LoadedLocalProfiles` (`:80`).

## Scope

- Re-express each as `=> BuildContext.Current.<…>` (facade).
- Replace direct static reads inside `Execution/` with `ctx.<…>`.

## Acceptance criteria

- No `FalloutBuild.` reads remain inside the `Execution/` namespace.
- Public API signatures unchanged — verify against the PublicApi snapshot (`build/Build.PublicApi.cs`).
- **Non-breaking.**

## Notes

- **Important:** these statics are *public API*, so removing them would be a breaking change (batched to the year cut per CLAUDE.md rule #2). The facade approach keeps this non-breaking — do NOT remove them.
- Depends on: FT-2.
- Size: **M**.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.