Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a wild idea, and I'm not sure yet if we should go through with it, really. It came about from a short discussion in #nix-darwin. (Not sure where to find IRC logs.) Two parts:
Is creating a disk image (sparse bundle) faster than an APFS volume? -> Some test runs on GitHub Actions still seem to indicate we can't really get below ~5s with this method. (Though Mac runners have very inconsistent perf)
Then antifuchs came up with the brilliant idea: What if we commit a prepared, empty disk image? -> I did see a 3s run, so maybe? Again, perf is super inconsistent.
But, there are also downsides which make this questionable:
Another idea that's not in this PR: distribute an image with the Nix store and DB already present. Though, we'd still need to compress the image, so I think this essentially just moves the unarchive step around in the process. Sounds like there's little benefit.
With the super inconsistent performance of Mac runners, I'm really not sure any of this is worth the trouble. This PR is really just to have the effort documented and maybe some discussion. 🙂
For reference, the command used to create the image is: