Skip to content

Pack the IceRpc.Protobuf.Tools task assembly from bin instead of obj - #4942

Merged
pepone merged 1 commit into
icerpc:mainfrom
pepone:fix/build-sign-protobuf-task-assembly
Sep 11, 2026
Merged

Pack the IceRpc.Protobuf.Tools task assembly from bin instead of obj#4942
pepone merged 1 commit into
icerpc:mainfrom
pepone:fix/build-sign-protobuf-task-assembly

Conversation

@pepone

@pepone pepone commented Sep 11, 2026

Copy link
Copy Markdown
Member

Fixes #4814

The release workflow signs the assemblies matching src/<Project>/bin/Release/net*/<Project>.dll and then runs dotnet pack --no-build. IceRpc.Protobuf.Tools packed its MSBuild task assembly from $(IntermediateOutputPath), so tasks/IceRpc.Protobuf.Tools.dll in the published package was the unsigned obj copy. This packs it from $(OutputPath) instead, as IceRpc.Slice.Tools already does.

Verified locally: after a Release build, appending bytes to the bin copy (to stand in for signing) and running dotnet pack --no-build produced a package whose tasks/ dll matched the obj copy before this change and the bin copy after it.

The unsigned first-party dependency copies in the Tools packages' tools/ folder are tracked in #4949.

What's Changed entry

None — packaging fix, the task assembly is now signed like the other assemblies in the package.

The release workflow signs the assemblies under bin/Release and then runs
`dotnet pack --no-build`, but IceRpc.Protobuf.Tools packed its MSBuild task
assembly from $(IntermediateOutputPath), so tasks/IceRpc.Protobuf.Tools.dll in
the published package was the unsigned obj copy. Pack it from $(OutputPath),
as IceRpc.Slice.Tools already does.

Fixes icerpc#4814
Copilot AI lite review requested due to automatic review settings September 11, 2026 10:31
@pepone pepone added this to the 0.6.1 milestone Sep 11, 2026
@pepone pepone added build-system ai-audit AI-generated audit finding — needs human triage labels Sep 11, 2026

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The focused packaging change has no unresolved review issues.

Pull request overview

Updates Protobuf tools packaging to use the signed task assembly from bin instead of obj.

Changes:

  • Packs the task DLL from $(OutputPath).
  • Aligns with the Slice tools packaging convention.
File summaries
File Summary
src/IceRpc.Protobuf.Tools/IceRpc.Protobuf.Tools.csproj Packages the task assembly from the bin output directory.
Review details
  • Files reviewed: 1/1 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@bernardnormier bernardnormier left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Three things on the description.

Drop the last sentence: the 0.6.1 milestone is how we say a PR needs a backport.

It needs a What's Changed section, per the PR template: None — packaging fix, the task assembly is now signed like the other assemblies in the package.

Please file an issue for the unsigned first-party dependency copies in tools/ and link it from the description
instead of describing the gap here.

@pepone
pepone merged commit ccc014c into icerpc:main Sep 11, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-audit AI-generated audit finding — needs human triage build-system

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Audit-Medium] Stable release signing omits the packed MSBuild task assembly

4 participants