Skip to content

Prepare .NET beta packages and fix metric assertions and recursive folders - #55

Open
LukasNiessen wants to merge 1 commit into
mainfrom
codex/dotnet-beta-packaging-and-rule-fixes
Open

LukasNiessen wants to merge 1 commit into
mainfrom
codex/dotnet-beta-packaging-and-rule-fixes

Conversation

@LukasNiessen

Copy link
Copy Markdown
Collaborator

The promoted .NET implementation has no consumable NuGet release, metric rule assertions throw while formatting valid violations, and trailing /** folder selectors can omit direct children. This PR prepares the complete package graph and fixes those two behavior defects.

Changes:

  • Format all five metric violation families through the generic and xUnit assertion paths, preserving measured values, comparisons, predicate messages, subjects and zone coordinates. Add the required acyclic Testing → Metrics dependency and update its dogfood constraint.
  • Include the base folder when a glob ends in /**, with a regression where a direct-child violation was previously missed despite a nonempty nested selection.
  • Prepare all 11 .NET 10 packages at the proposed coordinated version 3.0.0-beta.1: root NuGet ID ArchUnit, supporting IDs ArchUnitSharp.*, existing assemblies/namespaces retained. Include repository metadata, original-author attribution, README and XML documentation.
  • Inspect package identities and the complete internal dependency graph, then restore/test a consumer outside the checkout using a fresh cache and package-source mapping. Exercise dependency, cycle and LOC fail/fix/pass scenarios plus layers/slices/graph examples.
  • Add package-consumer CI on Linux, Windows and macOS, a manual prepare/publish workflow, and migration/release documentation with explicit legacy-feature status.

Validation on macOS ARM64 with .NET SDK 10.0.403:

  • Release build: zero warnings/errors.
  • All 12 test suites pass: 1,882 tests, no skips. The explicit dogfood dependency table was updated after it correctly rejected the newly required Testing → Metrics edge; its six tests then passed.
  • dotnet format --verify-no-changes.
  • All 11 packages built and inspected; the fresh external consumer passed all four tests.
  • Publication guard correctly rejects the current artifacts because the promoted implementation has no confirmed license.
  • actionlint and git diff --check pass.

Release decisions still open under #53:

  • Review the proposed IDs/version and confirm license provenance with the implementation owner. Neither repository currently declares a recognized license; this PR deliberately does not reuse the legacy package’s license. Publication requires a reviewed root LICENSE included in every artifact.
  • Configure the NuGet environment/publishing rights, publish only after review, and verify public installation. No packages were published by this PR preparation.
  • Coordinate website changes after publication and the former repository owner’s redirect/retirement.

This does not expand the documented local-using dependency model (#47) or claim to resolve all selector compatibility differences in #54.

Fixes #51.
Refs #53 and #54.

This branch has not been deployed

No deployments
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.

Format metric violations in generic and xUnit assertions

1 participant