Repository navigation
build: Purview.Build as a local tool, plus Docker test tiering - #13
Merged
Merged
Conversation
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
All changes are build/tooling only.
package.jsonis untouched, and thev1.0.0-prerelease.6tag already exists, so merging this produces no new release.Changes
Purview.BuildSdk/ Purview package versions brought up to date where applicable.Purview.Buildinstalled as a .NET local tool. Added to.config/dotnet-tools.json; theJustfilenow usesdotnet tool restoreplusdotnet purview-buildinstead of a hand-rolleddotnet tool install --tool-path .tools/purview-build. The deadpipeline_feedvariable is removed and the docs updated.RequiredCompilerFlagsdeclared explicitly.Purview.Build0.5.3 defaults it to empty; earlier versions forced theoptimization=releasecheck 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.Buildpinned to 0.5.3.Verification
just pipeline-pack-validateagainst 0.5.3: all packages valid, pipeline exits 0.DockerContainerBackend.CreateContainerbuilds the underlying Testcontainers container, which connects to the daemon, so the two tests covering it were integration tests sitting inDocker.UnitTestsand failed the always-on fast tier on any machine without Docker. Moved toDocker.IntegrationTestsbehind the existingDockerTest.SkipIfUnavailableAsyncguard; the genuinely daemon-free surface stays in the unit project.