New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Build a deterministic build #9
Comments
iBrotNano
added
the
task
Work on the project, the build pipeline or any other task.
label
Feb 27, 2023
iBrotNano
added a commit
that referenced
this issue
Mar 6, 2023
iBrotNano
added a commit
that referenced
this issue
Mar 6, 2023
iBrotNano
added a commit
that referenced
this issue
Mar 6, 2023
iBrotNano
added a commit
that referenced
this issue
Mar 6, 2023
iBrotNano
added a commit
that referenced
this issue
Mar 7, 2023
- Set the dotnet version to 7.0.x to use the latest patch version for building
iBrotNano
added a commit
that referenced
this issue
Mar 7, 2023
iBrotNano
added a commit
that referenced
this issue
Mar 7, 2023
Merged
iBrotNano
added a commit
that referenced
this issue
Mar 8, 2023
* #11 Set a fix version for dotnet * #9 Removed the fix dotnet build version * #9 Set the pack command with the argument --no-build * #9 Chaged the .NET SDK version to 7.0.201 * #9 Deterministic set to true * #9 Excluded the build folder of Shouldly - Set the dotnet version to 7.0.x to use the latest patch version for building * #9 Commented Directory.Build.props * #9 Standard templates for the documentation * Update CHANGELOG.md
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Requirements
Open Questions?
Blockers
Description
A deterministic build is a build which binaries are the same regardless on which machine they are build.
https://devblogs.microsoft.com/dotnet/producing-packages-with-source-link/#deterministic-builds
Conditions
Side effects
Locally build binaries should not be build deterministic because it prevents debugging.
Acceptance tests
Design
How can the task be done? describes how to configure the build. I will create a parameter in Directory.Build.props which can be set on the buildserver build and can be omit locally.
Dissection
Development
TODOs
feature
branch if needed (Maybe configuration changes or new project files)Directory.Build.props
to enable deterministic build configurationDeterministic
is set tofalse
Shouldly.props
part of the NuGet?<ExcludeAssets>build</ExcludeAssets>
Notes
I could proof that the MSBuild version has no impact on the result.
I compile the assembly as a reference assembly. No metadata of private membes is published or can be used. This way only the public API of the assembly can be used. This is a more stable way to publish assemblies and should be used as default.
https://learn.microsoft.com/en-us/dotnet/standard/assembly/reference-assemblies
Debug
Documentation
Decisions
PIAs
Links
Demo
The NuGet is deterministic.
Deployment
feature
intomaster
with asquash
and remove thefeature
branchThe text was updated successfully, but these errors were encountered: