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

Make the documentation build reproducibly #1778

Closed
wants to merge 1 commit into
base: master
from

Conversation

Projects
None yet
2 participants
@lamby

lamby commented Dec 14, 2017

Whilst working on the Reproducible Builds effort [0], we noticed
that sonic-pi could not be built reproducibly.

This is because it iterates over internal data structures (hashes)
in a non-deterministic order. It also sorts a list only concerned
about the length of the fields, rather than (also) considering the
alphanumeric sort, leading to nondeterminstic output.

[0] https://reproducible-builds.org/

Make the documentation build reproducibly
Whilst working on the Reproducible Builds effort [0], we noticed
that sonic-pi could not be built reproducibly.

This is because it iterates over internal data structures (hashes)
in a non-deterministic order. It also sorts a list only concerned
about the length of the fields, rather than (also) considering the
alphanumeric sort, leading to nondeterminstic output.

 [0] https://reproducible-builds.org/
@samaaron

This comment has been minimized.

Show comment
Hide comment
@samaaron

samaaron Feb 22, 2018

Owner

Love the idea of reproducible builds, however, this commit makes the documentation appear in the wrong order it was intended. I guess I'm leaning on the fact that Ruby's hashes keep their order of insertion.

If there's a way of achieving deterministic builds yet preserving the current behaviour I'd love to consider a new pull request :-)

Owner

samaaron commented Feb 22, 2018

Love the idea of reproducible builds, however, this commit makes the documentation appear in the wrong order it was intended. I guess I'm leaning on the fact that Ruby's hashes keep their order of insertion.

If there's a way of achieving deterministic builds yet preserving the current behaviour I'd love to consider a new pull request :-)

@samaaron samaaron closed this Feb 22, 2018

@lamby

This comment has been minimized.

Show comment
Hide comment
@lamby

lamby Feb 22, 2018

makes the documentation appear in the wrong order it was intended

Hm? The current order is random/non-deterministic.. ie. unreliable! So I'm not sure how it is the "intended" order. :)

lamby commented Feb 22, 2018

makes the documentation appear in the wrong order it was intended

Hm? The current order is random/non-deterministic.. ie. unreliable! So I'm not sure how it is the "intended" order. :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment