Skip to content

refactor(platform): phase 2/9 bootstrap cfg_select boundary, Rust 1.95, and exact-occurrence ratchet #1308

Closed

Description

@zackees

Parent: #1306
Depends on: phase 1 research gate

Context

Use the reviewed phase 1 inventory as the only input to the transitional baseline. This phase creates the boundary and enforcement but does not migrate a capability.

Scope

  • Raise every fbuild-owned build/MSRV pin from Rust 1.94.1 to one selected 1.95.x release, with drift tests; preserve intentional arbitrary-toolchain fixtures.
  • Add fbuild_core::platform with exactly one std::cfg_select! selector for Windows, Linux, and macOS and no fallback.
  • Add neutral facade indexes and private concrete roots with required READMEs; do not add a workspace crate.
  • Add a pre-expansion enforce_platform_boundary Dylint and an independent whole-tree/manifest checker.
  • Freeze the reconciled exact-occurrence ledger. New, stale, duplicate, malformed, or growing entries and scanner/Dylint disagreement must fail CI.
  • Add forbidden and allowed fixtures, including private/inactive/test code and a second identical occurrence in a grandfathered file.
  • Wire all checks into existing Dylint and normal CI entrypoints and document the boundary.

Acceptance criteria

  • RED evidence for missing selector/toolchain/enforcement is recorded.
  • Rust 1.95.x declarations and drift coverage are complete.
  • The single selector and six neutral namespaces compile on all supported hosts.
  • Exact-occurrence baseline is frozen from phase 1 and cannot silently grow.
  • Dylint, scanner, manifest checker, targeted tests, workspace check/clippy, and repo tests are GREEN.
  • No capability implementation has moved yet.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions