Skip to content

build: pack published libraries from source with shared package metadata - #265

Merged
PatrickRitchie merged 1 commit into
masterfrom
feat/packaging-metadata
Nov 13, 2026
Merged

PatrickRitchie merged 1 commit into
masterfrom
feat/packaging-metadata

Conversation

@PatrickRitchie

Copy link
Copy Markdown
Contributor

Prepares the repository for building releases from the private MTConnect.NET.Builder. The package metadata and the list of packable projects now live here, so anyone can pack the libraries or build the Agent image from source.

Changes

  • Opt-in packaging. Directory.Build.props sets IsPackable=false and the shared NuGet metadata (Authors, PackageProjectUrl https://www.TrakHound.com, MIT license, icon, repository type). Each of the 27 published projects sets IsPackable=true and no longer includes the icon itself.
  • MTConnect.NET-AgentModule-WebUI is now published.
  • Solution Package configuration. AdapterModule-MQTT, AdapterModule-SHDR, AgentModule-MqttRelay and MTConnect.NET-SysML mapped Package|Any CPU to Debug, which packed net8.0 only (NU5128). They now map to Package.
  • CI release-pack runs dotnet pack MTConnect.NET.sln -c Package and fails unless it produces exactly EXPECTED_PACKAGES (27) packages.
  • Dockerfile / .dockerignore build the Agent image from source (SDK 10.0 build stage, runtime 8.0 image, non-root, health check on port 5000).
  • The in-repo Builder's config template and docs/development/builder.md are updated to match.

Testing

  • Locally (Windows): solution pack gives 27 .nupkg + 27 .snupkg. Compared with the previous Builder output, the file lists match and the only nuspec difference is the added projectUrl.
  • The Docker image builds and runs healthy, and /probe returns 200.
  • The new Builder packed this commit from a clean checkout and matched its 27-package list.
  • Not yet run on Linux CI. The format, docs-prepare and build-and-test jobs already fail on master for unrelated reasons.

🤖 Generated with Claude Code

- Directory.Build.props holds the NuGet metadata only the Builder passed
  before (authors, license, icon, project URL, repository type) and makes
  projects opt in to packing with <IsPackable>true</IsPackable>
- The 27 published projects opt in (adds MTConnect.NET-AgentModule-WebUI,
  which was missing from the Builder's package list); the icon is included
  once from Directory.Build.props instead of in each project
- Map the solution's Package configuration to Package for AdapterModule-MQTT,
  AdapterModule-SHDR, AgentModule-MqttRelay and SysML (they built Debug,
  net8.0 only, and failed the pack with NU5128)
- CI release-pack packs with -c Package and checks the package count
- Add a Dockerfile that builds the Agent image from source
- Builder template: list WebUI and use https://www.TrakHound.com

`dotnet pack MTConnect.NET.sln -c Package` now produces the same packages
as `libraries nuget build` (identical file lists; the nuspecs differ only in
the added projectUrl).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@PatrickRitchie
PatrickRitchie merged commit 144c6e5 into master Nov 13, 2026
2 of 6 checks passed
@PatrickRitchie
PatrickRitchie deleted the feat/packaging-metadata branch November 13, 2026 19:30
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