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
- #20629 | depends: Improve id string robustness
- #21087 | guix: Passthrough BASE_CACHE into container
- #21088 | guix: Jump forwards in time-machine and adapt
- #21089 | guix: Add support for powerpc64{,le}
- #21203 | guix: gnutls-3.6.12 build failures when using
--bootstrap --no-substitutes
- #21239 | guix: Add codesigning support for osx+win
- #21271 | guix: Explicitly set umask in build container
- #21272 | guix: Passthrough SDK_PATH into container
- #21273 | guix: Brainstorm w/re guix.sigs repo layout
- #21375 | guix: Misc feedback-based fixes + hier restructuring
- #21304 | guix: Add guix-clean script + establish gc-root for container profiles
- #21462 | guix: Add guix-{attest,verify} scripts
TODOs
- Workflow-related
- Setting up a
bitcoin-core/guix.sigs
GitHub repository
- Setting up a
- 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:
- Installing Guix on their build machine
- Setting up a directory structure for Guix builds
- Performing a non-codesigned Guix build
- Uploading their SHA256SUMs and signatures to
guix.sigs
What to expect should you be brave enough to volunteer:
- I will open a direct line of communication where you can reach me for help
- I will document hiccups and open PRs to address common problems
- 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 dayn+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”:
- The commit we build will be tagged
- Codesignatures will be made and uploaded to
bitcoin-detached-sigs
- 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!)
- #21194 | guix: Make it arch agnostic