Skip to content
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

docs: how to reproduce released artifacts #3451

Merged
merged 4 commits into from
Oct 29, 2024
Merged

Conversation

burgerdev
Copy link
Contributor

@burgerdev burgerdev commented Oct 22, 2024

Context

There's an implicit assumption that our release artifacts are reproducible, but the exact requirements are unclear. According to reproducible-builds.org, a reproducible build needs to come with a build environment definition.

A user found an issue where the local Nix store state influences build outcomes. This was not caught by our tests because they are only testing a narrow build environment.

Proposed change(s)

  • Fix the issue and add a test for it.
  • Document our reproducibility claims, in particular that
    • Artifacts are expected to be reproducible (and it's a bug if not).
    • Set a baseline for reasonable host environments.
    • Our supported and tested environment for reproduction is defined by the workflow.

Additional info

Checklist

Copy link

netlify bot commented Oct 22, 2024

Deploy Preview for constellation-docs ready!

Name Link
🔨 Latest commit 0c7fbf7
🔍 Latest deploy log https://app.netlify.com/sites/constellation-docs/deploys/671a614499dc0600098b5e8a
😎 Deploy Preview https://deploy-preview-3451--constellation-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@burgerdev burgerdev added the documentation Improvements or additions to documentation label Oct 22, 2024
@burgerdev burgerdev changed the title document how to reproduce released artifacts docs: how to reproduce released artifacts Oct 22, 2024
@burgerdev burgerdev added this to the v2.20.0 milestone Oct 22, 2024
@burgerdev burgerdev marked this pull request as ready for review October 22, 2024 16:36
@burgerdev burgerdev requested a review from thomasten as a code owner October 22, 2024 16:36
Copy link
Contributor

@msanft msanft left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wonderful, thank you!

uses: ./.github/actions/setup_bazel_nix
if: matrix.deps == 'conventional'

- name: Setup Bazel (eccentric)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Love this!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if I should perform the nix installation manually, too, to serve as build environment setup instructions.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the action and added a manual download/exec of the nix-installer. Renovate should upgrade it every once in a while with the config change.

.github/workflows/reproducible-builds.yml Outdated Show resolved Hide resolved
docs/docs/workflows/reproducible-builds.md Outdated Show resolved Hide resolved
Copy link
Member

@m1ghtym0 m1ghtym0 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome, thanks!

@burgerdev burgerdev force-pushed the burgerdev/reproducibility branch from 20d81f4 to 0c7fbf7 Compare October 24, 2024 15:01
Copy link
Member

@3u13r 3u13r left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@burgerdev burgerdev merged commit bff8bce into main Oct 29, 2024
8 checks passed
@burgerdev burgerdev deleted the burgerdev/reproducibility branch October 29, 2024 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants