testing and improvements emphasizing platform resolution#1
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
A big focus of this project is supporting gem versions that distribute native compiled binaries. Gems with precompiled artifacts offer the benefits of faster compile times, less build time complexity, and presumably better cache behavior.
You can see some thoughts on this from an interesting recent blog post, Faster bundler which notes the Shopify/cibuildgem project to help make it easier for developers to publish their gems for a matrix of supported systems.
Further, this project is using newer Bundler 2.6+ feature to include checksums in the Gemfile.lock. That means no more need for a tool like Bundix to fetch gems and calculate their checksums, and save an intermediate
gemset.nixfile. We can just parse the Gemfile.lock directly and use that to drive gem downloads.This PR builds on top of the initial prototype to capture a bunch of critiques and wishlist items into a TODO.md, makes some test rig improvements, and fixes some bugs. Mostly it's focusing on improving the platform resolution logic.
Most of the prose in TODO.md is a result of some Q&A with Claude, and it generated most of the unit tests as well. Everything was reviewed in close detail before committing; note the conspicuous lack of em-dashes!