Repository navigation
Add support for Haiku R1/beta6 - #3
jacob-carlborg wants to merge 7 commits into
Conversation
Build and release an R1/beta6 image alongside the R1/beta5 one. The installer boot steps are unchanged, since the Installer and DriveSetup flows are the same as in R1/beta5. R1/beta6 has not been released yet, so two release specific values are placeholders and need to be filled in once it ships: the SHA256 checksum of haiku-r1beta6-x86_64-anyboot.iso and the hrev used by the uname assertion in the build workflow. Both are marked with a TODO. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NksedEgMiTdqqBmtbmGKhM
R1/beta6 has not been officially released yet, so the ISO is not available on the release mirrors. Add an `iso_urls` variable that overrides where the installation ISO is downloaded from, and point R1/beta6 at the official test build, hrev59866_53. When the release is out, dropping `iso_urls` from the version's variable file and updating the checksum switches it back to the mirrors. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NksedEgMiTdqqBmtbmGKhM
The `*` pattern doesn't match a slash, so pushes to branches like `feature/foo` didn't trigger the workflow. `**` matches across path separators. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NksedEgMiTdqqBmtbmGKhM
The matrix didn't set `fail-fast`, so the default cancelled every other version as soon as one of them failed. That's especially unhelpful here, where each version is an independent image that takes several minutes to build. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NksedEgMiTdqqBmtbmGKhM
`pkgman refresh` has started failing with an I/O error part way through fetching the HaikuPorts repository cache from the package servers, which fails the whole build. It has failed that way in two separate runs, on a build that is otherwise unchanged, so retry the downloads a few times before giving up. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NksedEgMiTdqqBmtbmGKhM
|
CI status, and a blocker on the R1/beta5 job that isn't from this branch.
|
The Haiku project removed the R1/beta5 package repositories when releasing R1/beta6, so `pkgman refresh` fails with an I/O error while fetching the HaikuPorts repository, and the image can no longer be built. Reuse the image from `v0.1.0`, the last release that could build it, the same way freebsd-builder does for the versions it can no longer build. The copied image still goes through the image test on every build, it's just not rebuilt. This also reverts the retry added in 5f15777. The repositories are gone rather than flaky, so retrying only made the failure slower: all five attempts failed identically, in about five seconds each. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NksedEgMiTdqqBmtbmGKhM
When the boot steps don't match what the installer actually shows, SSH never becomes available and the build sits in the SSH retry loop until it times out. At `10000s` that's nearly three hours per attempt, which makes CI unusable for finding the problem. Six minutes is enough to reach SSH, so `15m` leaves plenty of room for a slow runner, and the job timeout bounds everything else. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NksedEgMiTdqqBmtbmGKhM
|
Update on both versions. R1/beta5: copied instead of builtPer the R1/beta5 package repositories being removed upstream, the R1/beta5 Worth being explicit: this freezes the R1/beta5 image. Any future change to what R1/beta6: the boot steps don't match the R1/beta6 installerThe build doesn't fail, it hangs. Packer types the whole boot command sequence, That repeated for 62 minutes before I cancelled it. The ISO downloads and Meanwhile the timeouts are bounded ( Generated by Claude Code |
|
Can't make heads nor tail from this claude code, but remember that r1beta5 is dropped for the repositories, you will have to switch repositories to r1beta6. See: https://github.com/Begasus/haikuports/wiki/Updating-Haiku-or-switch-from-nightly-to-beta-or-visa-versa#switch-from-nightly-to-r1b6-this-works-on-32bit-and-64bit (this works the same for updating r1beta5 as it does for nightly to update to r1beta6. |
|
R1/beta6 is already in master. |
Builds and releases an R1/beta6 image alongside the R1/beta5 one.
Run the workflow for branches containing a slash
branches: '*'doesn't match a slash, so pushes to branches likefeature/foonever triggered the workflow.**matches across pathseparators. This commit (
7e0bcd5) is independent of the rest and can becherry-picked if you'd rather land it on its own.
Build R1/beta6 from the official test build
R1/beta6 hasn't been officially released yet, so the ISO isn't on the release
mirrors.
main.pkr.hclgets aniso_urlsvariable that overrides where theinstallation ISO is downloaded from, defaulting to the existing mirror list,
and
var_files/r1beta6/x86-64.pkrvars.hclpoints at the official test build,hrev59866_53.When the release is out, dropping
iso_urlsfrom that file and replacing thechecksum switches R1/beta6 over to the mirrors. Nothing else needs to change.
Notes
DriveSetup flow shifted, that's where a hang would show up
verified locally, since the Haiku mirrors are unreachable from the
environment this was developed in, so the build is the first real check
packer validatepasses for both versions, andpacker consoleconfirmsR1/beta6 resolves to the test build URL while R1/beta5 still resolves to
the five mirrors
Generated by Claude Code