Skip to content

Conversation

@r-vdp
Copy link
Contributor

@r-vdp r-vdp commented Aug 31, 2025

This fixes DeterminateSystems/bootspec#147 by bumping the bootspec to the latest version.
Upstream PR: DeterminateSystems/bootspec#207

This means that we now capture the full recursive JSON schema for specialisations, including extensions, while the previous type threw this information away.

This is essential for features like boot counting so that users can set separate sort keys for specialisations, to avoid the boot loader falling back to specialisations when a new generation fails to boot.
Often specialisations are special cases that we don't want to boot automatically, so they can now be sorted below all normal generations so that if a generation fails to boot, the boot loader will fall back onto the previous generation.

CC: @blitz @RaitoBezarius

@blitz
Copy link
Member

blitz commented Sep 1, 2025

Thanks for all the effort here! I wouldn't vendor the bootspec library though unless there is a clear sign that upstream and us have some unresolvable issues. Let's give the upstream PR a bit of time!

@r-vdp
Copy link
Contributor Author

r-vdp commented Sep 3, 2025

Thanks for all the effort here! I wouldn't vendor the bootspec library though unless there is a clear sign that upstream and us have some unresolvable issues. Let's give the upstream PR a bit of time!

Yeah, @RaitoBezarius suggested on matrix to vendor this crate when I discussed the issue with specialisation sort keys with him. He mentioned that there is some other lanzaboote-related work already in the pipeline that would also likely require either vendoring this crate or switching upstreams.

I don't know the details though, so I just followed his suggestion.

@r-vdp r-vdp force-pushed the rvdp/specialisation_sort_keys branch 4 times, most recently from a4dd182 to 97ff43a Compare September 15, 2025 22:25
…t-tool

This updates bootspec to version 2.0.0 which changes
the type of specialisations from `Generation` to
`bootspec::v1::SpecialistationV1`.
This means that we capture the full recursive JSON schema for specialisations,
including extensions, while the previous type threw this information away.

This is essential so that users can set separate sort keys for specialisations,
to avoid the boot loader falling back to specialisations when a new generation
fails to boot. Often specialisations are special cases that we don't want to boot
automatically, so they can now be sorted below all normal generations so that if
a generation fails to boot, the boot loader will fall back onto the previous generation.
@r-vdp r-vdp force-pushed the rvdp/specialisation_sort_keys branch from 97ff43a to c8bc77c Compare October 13, 2025 18:36
@r-vdp
Copy link
Contributor Author

r-vdp commented Oct 13, 2025

@blitz @RaitoBezarius the upstream bootspec PR was merged and a new release is out, so I updated this PR and I think it's good to go now!

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Extensions for specializationn

2 participants