Skip to content

Selectively disable reproducibility check on build - #195

Merged
ppkarwasz merged 1 commit into
develocityfrom
feature/disable-reproducibility
Jun 19, 2024
Merged

ppkarwasz merged 1 commit into
develocityfrom
feature/disable-reproducibility

Conversation

@ppkarwasz

@ppkarwasz ppkarwasz commented Jun 19, 2024 •

Copy link
Copy Markdown
Member

This PR is against the develocity branch.

We add a reproducibility-check-enabled option to the reusable build that will allow us to turn off the reproducibility check on certain builds.

While the reproducibility check might detect some problems in a release build, IMHO it only increases the build time in most builds.

Reproducibility problems are usually rare and are mostly due to the introduction of additional plugins.
Also note that some kinds of reproducibility problems can only be detected by running the build on a different machine. We already encountered problems that only depended on the absolute path of the folder, where the build runs.

We add a `reproducibility-check-enabled` option to the reusable build
that will allow us to turn off the reproducibility check on certain
builds.

While the reproducibility check might detect some problems in a release
build, IMHO it only increases the build time in most builds.

Reproducibility problems are usually rare and are mostly due to
the introduction of additional plugins.
Also note that some kinds of reproducibility problems can only be
detected by running the build on a **different** machine.
We already encountered problems that only depended on the absolute path
of the folder, where the build runs.
@ppkarwasz
ppkarwasz merged commit 926b488 into develocity Jun 19, 2024
@ppkarwasz
ppkarwasz deleted the feature/disable-reproducibility branch June 19, 2024 12:51
@vy

vy commented Jun 19, 2024

Copy link
Copy Markdown
Member

I think it is okay to confine this to release-specific branches.

Also note that some kinds of reproducibility problems can only be detected by running the build on a different machine.

I don't agree with this sentiment. I think our reproducibility definition is unnecessarily broad: all JDK vendors, all OS'es, etc. We can specialize on a certain setup: Zulu, Linux, x64. If the community cares about reproducibility on a certain other configuration, they are always more than welcome to contribute and maintain it.

@ppkarwasz

Copy link
Copy Markdown
Member Author

Also note that some kinds of reproducibility problems can only be detected by running the build on a different machine.

I don't agree with this sentiment. I think our reproducibility definition is unnecessarily broad: all JDK vendors, all OS'es, etc. We can specialize on a certain setup: Zulu, Linux, x64. If the community cares about reproducibility on a certain other configuration, they are always more than welcome to contribute and maintain it.

The reproducibility failure I have in mind generated different builds from /home/piotr and /home/volkan.

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.

2 participants