10000 Guix Release Transition Plan for 22.0 · Issue #21145 · bitcoin/bitcoin · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Guix Release Transition Plan for 22.0 #21145

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

Closed
13 of 15 tasks
dongcarl opened this issue Feb 10, 2021 · 12 comments
Closed
13 of 15 tasks

Guix Release Transition Plan for 22.0 #21145

dongcarl opened this issue Feb 10, 2021 · 12 comments
Milestone

Comments

@dongcarl
Copy link
Contributor
dongcarl commented Feb 10, 2021

Timeline

The v22.0 Feature Freeze is on June 15th, which is 17 weeks from Feb 11th. With that in mind, what follows is a tentative timeline for us to switch from Gitian release builds to Guix ones for v22.0, subject to change.

Building + User Testing (~9 wks ending April 15th)

Outstanding PRs/Issues

TODOs

  • Workflow-related
  • Documentation-related
    • guix: Add installation instructions for Guix specific to Bitcoin Core builds
      The GNU manual is too generic at times and somewhat difficult to navigate
    • guix: Update all release documentation for new Guix process
      release-process.md et al.

Non-codesigned dress rehearsal (~2 wks ending April 29nd)

At this point, users should be able to follow release-process.md in order to perform Guix builds and attest to their outputs in guix.sigs.

In order to further improve the usability of this process, I will work with a few brave volunteers to walk through the core parts of release-process.md, namely:

  1. Installing Guix on their build machine
  2. Setting up a directory structure for Guix builds
  3. Performing a non-codesigned Guix build
  4. Uploading their SHA256SUMs and signatures to guix.sigs

What to expect should you be brave enough to volunteer:

  1. I will open a direct line of communication where you can reach me for help
  2. I will document hiccups and open PRs to address common problems
  3. Depending on the performance characteristics of your build machine, whether or not you are using substitutes, and whether you request that Guix bootstraps, these builds can take up to a day or two.
    I know it's fun to watch build logs scroll by 😄 , but we will most likely start the build on day n and check back on it on day n+1

I would especially like to help volunteers who are not running Debian/Ubuntu, as diverse testing across distros/kernels is always a plus!

Please reach out to me if you are willing to volunteer for this.

Release dress rehearsal + refinement (~2 wks ending May 13th)

After we have performed user testing and ironed out usability kinks, I would like to do a dress rehearsal for the full release process.

Here's how this differs from just "user testing":

  1. The commit we build will be tagged
  2. Codesignatures will be made and up 8000 loaded to bitcoin-detached-sigs
  3. SHA256SUMs and signatures of codesigned binaries will be uploaded to guix.sigs

This is to make sure that when we do the actual release for v22.0, there are no surprises.

Contingency buffer (~4+ wks ending June 15th)

If we run into any surprises (and I'm sure we will) this contingency buffer will give us some breathing room before the feature freeze.

What I need help with

High-priority

  • Review of outstanding PRs
  • Volunteers for user testing (Available sometime between March 19th and April 22nd)
  • Feedback on this timeline and remaining tasks outlined: am I missing anything? too optimistic?

Normal Priority

  • Setting up a bitcoin-core/guix.sigs GitHub repository
  • Verifying that Guix debug symbol output works

Nice-to-have's

  • Packaging Guix v1.2.0 for your favourite distribution (please reach out if you do attempt this, I may be able to offer help!)
  • guix: Make it arch agnostic #21194 | guix: Make it arch agnostic
@fanquake
Copy link
Member

Looks pretty good. If anyone wants an intro to Guix I have a few resources here as well: https://github.com/fanquake/core-review/tree/master/guix.

@hebasto
Copy link
Member
hebasto commented Mar 2, 2021

@dongcarl

#21272 | guix: Passthrough SDK_PATH into container

Could be checked now :)

@laanwj
Copy link
Member
laanwj commented Apr 6, 2021

Setting up a bitcoin-core/guix.sigs GitHub repository

This was done: https://github.com/bitcoin-core/guix.sigs

@maflcko
Copy link
Member
maflcko commented Apr 24, 2021

The gitian binaries are currently compiled with gcc-8, however the guix ones with gcc-9, which has the memcmp bug (#20005)? Given that gcc-11 has been released (presumably with a fix for that), would it make sense to use gcc-11 over gcc-9 for guix?

For reference, bumping to gcc-9 happened in #21298 IIRC

@dongcarl
Copy link
Contributor Author

Hmmm, good point! Looking at the GCC repo, it seems this commit is the fix: gcc-mirror/gcc@e4c9aac

$ git tag --contains e4c9aac98611f63847ef6c57916808d9a2d7abcb
releases/gcc-10.3.0

So we can also use gcc 10.3 if that's alright with folks. Guix already has that packaged unlike gcc-11. Going back to gcc-8 should also be possible for Gitian parity.

@dongcarl
Copy link
Contributor Author

re: #21145 (comment)

I think downgrading to gcc-8 across-the-board might be the best choice for now. Opened: #21799

@Sjors
Copy link
Member
Sjors commented May 14, 2021

We'll also need instructions similar to https://github.com/bitcoin-core/docs/blob/master/gitian-building.md

The PR description of #21239 (comment) is a start. It helped me make bitcoin-core/guix.sigs#10. Though I was missing instructions of what needs to be copied over if the build is on a different machine than the signing. The directory guix-build-$VERSION/output seems to be enough.

Alternatively it might make more sense to use NO_SIGN=1 and then copy the right files from the gitian repo and then sign somehow.

@dongcarl
Copy link
Contributor Author

@Sjors This one desperately requires updating, but most of it should be here: #21711

@maflcko
Copy link
Member
maflcko commented May 25, 2021

I've left a good first issue in bitcoin-core/guix.sigs#8

@maflcko
Copy link
Member
maflcko commented Jun 17, 2021

Anything left to do here? Can this be closed?

@laanwj
Copy link
Member
laanwj commented Jun 17, 2021

I think it can be closed now that #22182 is merged.
There's #21711 still open but it isn't mentioned here and already has the 22.0 milestone.

@dongcarl
Copy link
Contributor Author
dongcarl commented Jun 17, 2021

Closing this issue now that all feature-related PRs have been merged. Thanks everyone for reviews, testing, and patience!

@bitcoin bitcoin locked as resolved and limited conversation to collaborators Aug 18, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants
0