Skip to content

build: Purview.Build as a local tool, plus Docker test tiering - #13

Merged
kieronlanning merged 5 commits into
mainfrom
chore/purview-deps-and-docker-test-tiering
Oct 13, 2026
Merged

kieronlanning merged 5 commits into
mainfrom
chore/purview-deps-and-docker-test-tiering

Conversation

@kieronlanning

Copy link
Copy Markdown
Contributor

All changes are build/tooling only. package.json is untouched, and the v1.0.0-prerelease.6 tag already exists, so merging this produces no new release.

Changes

  • Purview.BuildSdk / Purview package versions brought up to date where applicable.
  • Purview.Build installed as a .NET local tool. Added to .config/dotnet-tools.json; the Justfile now uses dotnet tool restore plus dotnet purview-build instead of a hand-rolled dotnet tool install --tool-path .tools/purview-build. The dead pipeline_feed variable is removed and the docs updated.
  • RequiredCompilerFlags declared explicitly. Purview.Build 0.5.3 defaults it to empty; earlier versions forced the optimization=release check on and could not be configured off, because binding an empty JSON array contributes no configuration keys. Declaring it keeps the check this repository has always run under rather than silently losing it.
  • Purview.Build pinned to 0.5.3.

Verification

just pipeline-pack-validate against 0.5.3: all packages valid, pipeline exits 0.

  • Docker test tiering. DockerContainerBackend.CreateContainer builds the underlying Testcontainers container, which connects to the daemon, so the two tests covering it were integration tests sitting in Docker.UnitTests and failed the always-on fast tier on any machine without Docker. Moved to Docker.IntegrationTests behind the existing DockerTest.SkipIfUnavailableAsync guard; the genuinely daemon-free surface stays in the unit project.

…tor 5.0.3

Update Purview.BuildSdk from 1.0.4 to 1.0.5 and Purview.Telemetry.SourceGenerator
from 5.0.1 to 5.0.3.

Drop the redundant purview- prefix from the package.json name and add a description.
DockerContainerBackend.CreateContainer builds the underlying Testcontainers
container, which connects to the daemon, so the two tests covering it were
integration tests sitting in Docker.UnitTests. They failed the always-on fast
tier on any machine without Docker.

Move them to Docker.IntegrationTests behind the existing
DockerTest.SkipIfUnavailableAsync guard, and leave the genuinely daemon-free
surface (Name and Create) in the unit project.

The new class is named DockerContainerBackendFactoryTests because the unit class
keeps the DockerContainerBackendTests name and both projects share the
Purview.Containers.Docker namespace.
Add Purview.Build 0.5.2 to .config/dotnet-tools.json and replace the hand-rolled
dotnet tool install --tool-path .tools/purview-build in the Justfile with
dotnet tool restore, running the pipeline as dotnet purview-build.

The version is now pinned in the tool manifest alongside CSharpier, so it is
restored by the same command as every other tool and needs no bespoke install
step, no --add-source feed argument and no platform-specific executable suffix.
The dead pipeline_feed variable is removed, and the docs describing the old
.tools/purview-build path are updated to match.
Purview.Build 0.5.3 defaults RequiredCompilerFlags to empty. Earlier versions
forced the optimization=release check on and could not be configured off, because
binding an empty JSON array contributes no configuration keys and so never
overwrote the tool's non-empty code default.

These packages have therefore always been validated against that flag. Declaring
it keeps that behaviour rather than silently losing the check on the move to
0.5.3.

Verified with just pipeline-pack-validate: all packages still valid.
Picks up the fix that makes RequiredCompilerFlags configurable: earlier versions
forced the compiler-flag check on because binding an empty JSON array
contributes no configuration keys, so the tool's non-empty code default could
never be overridden.

This repository declares "RequiredCompilerFlags": ["optimization=release"]
explicitly, so the check it has always run under is preserved.

Verified with just pipeline-pack-validate against 0.5.3.
@kieronlanning
kieronlanning merged commit 83ecae2 into main Oct 13, 2026
2 of 4 checks passed
@kieronlanning
kieronlanning deleted the chore/purview-deps-and-docker-test-tiering branch October 13, 2026 11:52
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.

1 participant