dotnet / dotnet/msbuild

reproducible-builds; bit-for-bit identical binary

Open
#3,327 1 comment 3 reactions 0 assignees View on GitHub
triaged
Dominant language
C#
Stars
5.5k
Forks
1.5k
Avg merge
1d 13h
Merged PRs (30d)
133

Description

Currently msbuild will produce binaries, that are not bit-for-bit identical, even if the source code is identical.
* same source code build on a different day will produce different binaries
* same source code build on a different machine with same compiler and same tools will produce different binaries

It would be very helpful tool for error diagnosis, and build system verification if the binaries would be identical (for the same version of the compiler).

advantages (listed on https://github.com/jasonwhite/ducible):
* confidence that two parties built a binary with the same environment,
* recreating a release bit-for-bit from source code,
* recreating debug symbols for a particular version of source code,
* verifiable and correct distributed builds,
* better caching of builds,
* no spurious changes in binaries under version control.

There is another github project concering this issue:
https://github.com/jasonwhite/ducible
https://reproducible-builds.org/

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the MSBuild build process described in this issue and compare it with the ducible project and reproducible-builds.org. Identify which build inputs vary across dates and machines, then define success as identical binaries for identical source, compiler, and tools.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.