Skip to content

Add paired-repository CI and pin the formatter toolchain #57

Description

@dv00d00

Problem

The tracked Directory.Build.targets makes local sibling checkouts reproducible enough to build, but the repository has no GitHub Actions workflow. Pull requests therefore do not prove that they use the intended AngleSharp source revision, build the complete solution, preserve formatting, or pass the supported test matrix.

CSharpier configuration is checked in, but its version is not pinned by a local .NET tool manifest. global.json selects the test runner but does not select an SDK feature band.

Direction

Add a focused paired-repository CI workflow before NuGet publishing work in #9:

  1. Check out AngleSharp.ReadOnlyDom and the compatible dv00d00/AngleSharp revision into the sibling layout expected by the tracked targets file.
  2. Set AngleSharpSourceRoot explicitly and verify that the source AngleSharp.Core.csproj is selected instead of the NuGet package.
  3. Restore once, build the solution serially (-m:1) because both solutions share AngleSharp output paths, and keep warnings at zero.
  4. Run a fast pull-request gate plus the complete net10.0 suite on merge/schedule if the full corpus is too slow for every push.
  5. Add .config/dotnet-tools.json pinning CSharpier and document dotnet tool restore plus the exact check command.
  6. Select the .NET 10 SDK feature band explicitly while allowing an intentional servicing roll-forward policy.

Acceptance criteria

  • A clean GitHub-hosted checkout restores and builds the complete Release solution against the intended AngleSharp source commit.
  • CI fails if the package reference is used accidentally or the paired source revision is incompatible.
  • Pull requests receive a bounded-time correctness gate with zero warnings.
  • The complete net10.0 suite runs on an explicit merge/scheduled gate and uploads its test report on failure.
  • CSharpier is restored from a repository-local manifest and checked without relying on a global tool installation.
  • The SDK setup and roll-forward policy are documented and reproducible on developer machines.
  • Forked pull requests require no write-capable secrets.

Metadata

Metadata

Assignees

No one assigned

    Labels

    architectureArchitecture and API designcorrectnessDOM correctness and contract behavior

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions