Two release-process bugs surfaced while cutting 0.15.2 (both trace to the #237 packaging work). 0.15.2 itself shipped fine after manual workarounds; these are so the next release doesn't need them.
1. Symbol packages rejected — non-portable PDBs
nuget.org rejected all three .snupkg uploads: "The uploaded symbols package contains one or more pdbs that are not portable."
Cause: src/build.props:32 sets <DebugType>full</DebugType>, which emits full/Windows PDBs (magic Micr…, not portable BSJB). nuget's symbol server only accepts portable PDBs.
Fix: <DebugType>portable</DebugType> in build.props. (Also reconsider bundling .pdb into lib/ in the nuspecs — with portable symbols the .snupkg is the right delivery; pdbs-in-lib is redundant.)
Note: 0.15.2's main packages are already published and usable (pdbs are bundled in lib/), so symbols for 0.15.2 are simply skipped — re-uploading isn't viable because a rebuild changes the DLL debug signatures.
2. Policy pack fails — PolicyTool not published to bld/tools
CreateNuget.ps1 packing ReactiveDomain.Policy.nuspec failed: "Could not find a part of the path '…\bld\tools\net8.0'."
Cause: the Policy nuspec (added in #237) bundles the PolicyTool exe from ..\bld\tools\{tfm}\ReactiveDomain.PolicyTool.exe (+ es_settings.json), which comes from publishing PolicyTool via its FolderProfile.pubxml (PublishDir=..\..\bld\tools\$(TargetFramework)). Neither CreateNuget.ps1 nor the documented dotnet msbuild …sln -c Release runs that publish, so bld/tools/ never exists and Policy fails to pack every release.
Fix: add the PolicyTool publish to the release step (in CreateNuget.ps1 before packing, or the documented build sequence). The commands used tonight:
dotnet publish src/ReactiveDomain.PolicyTool/ReactiveDomain.PolicyTool.csproj -c Release -f net8.0 -p:PublishProfile=FolderProfile
dotnet publish src/ReactiveDomain.PolicyTool/ReactiveDomain.PolicyTool.csproj -c Release -f net10.0 -p:PublishProfile=FolderProfile
Related
Also on 0.15.3: #247 (CheckAssemblyVersion parse broke on the nuget list deprecation warning) and #248 (Foundation.Tests timing flakes). These three are the "make the release repeatable" set.
Two release-process bugs surfaced while cutting 0.15.2 (both trace to the #237 packaging work). 0.15.2 itself shipped fine after manual workarounds; these are so the next release doesn't need them.
1. Symbol packages rejected — non-portable PDBs
nuget.org rejected all three
.snupkguploads: "The uploaded symbols package contains one or more pdbs that are not portable."Cause:
src/build.props:32sets<DebugType>full</DebugType>, which emits full/Windows PDBs (magicMicr…, not portableBSJB). nuget's symbol server only accepts portable PDBs.Fix:
<DebugType>portable</DebugType>inbuild.props. (Also reconsider bundling.pdbintolib/in the nuspecs — with portable symbols the.snupkgis the right delivery; pdbs-in-lib is redundant.)Note: 0.15.2's main packages are already published and usable (pdbs are bundled in
lib/), so symbols for 0.15.2 are simply skipped — re-uploading isn't viable because a rebuild changes the DLL debug signatures.2. Policy pack fails — PolicyTool not published to bld/tools
CreateNuget.ps1packingReactiveDomain.Policy.nuspecfailed: "Could not find a part of the path '…\bld\tools\net8.0'."Cause: the Policy nuspec (added in #237) bundles the PolicyTool exe from
..\bld\tools\{tfm}\ReactiveDomain.PolicyTool.exe(+es_settings.json), which comes from publishing PolicyTool via itsFolderProfile.pubxml(PublishDir=..\..\bld\tools\$(TargetFramework)). NeitherCreateNuget.ps1nor the documenteddotnet msbuild …sln -c Releaseruns that publish, sobld/tools/never exists and Policy fails to pack every release.Fix: add the PolicyTool publish to the release step (in
CreateNuget.ps1before packing, or the documented build sequence). The commands used tonight:Related
Also on 0.15.3: #247 (CheckAssemblyVersion parse broke on the
nuget listdeprecation warning) and #248 (Foundation.Tests timing flakes). These three are the "make the release repeatable" set.