google / google/oss-rebuild

Expose the exact normalizations required to achieve reproduction

Open
#83 0 comments 0 reactions 1 assignee View on GitHub

@msuozzo is already working on this.

Since Jan 8, 2025.

Dominant language
Go
Stars
714
Forks
64
Avg merge
2d 6h
Merged PRs (30d)
58

Description

We currently apply all relevant normalizations to all artifacts meaning we neither know nor convey to the user which were the minimal set of normalizations that ended up being necessary to achieve an identical artifact.

Determining the minimal set of normalizations could be tricky but i think the best strategy would be to decompose our monolithic normalizer into a set of "passes" and, as we're normalizing each artifact, evaluate the similarity of the artifacts at each step. When passes 'do nothing', the degree of similarity should remain unchanged when the pass is applied.

I don't believe this approach would work for passes applied in a random order but I do think we could order them such that the similarity would monotonically increase.

Credit to @hboutemy for the idea 👍

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.