summaryrefslogtreecommitdiff
path: root/lib/bundler/checksum.rb
AgeCommit message (Collapse)Author
2023-12-25[rubygems/rubygems] Let the guards have some space to breatheMartin Emde
https://github.com/rubygems/rubygems/commit/73f1609715
2023-12-25[rubygems/rubygems] Use a mutex around Checksum::Store @store accessMartin Emde
Not wrapping to_lock since access to it is single threaded and read-only at the time of writing the lockfile. https://github.com/rubygems/rubygems/commit/3b53aa1b12
2023-12-15[rubygems/rubygems] Let the guards have some space to breatheMartin Emde
https://github.com/rubygems/rubygems/commit/73f1609715
2023-12-15[rubygems/rubygems] Use a mutex around Checksum::Store @store accessMartin Emde
Not wrapping to_lock since access to it is single threaded and read-only at the time of writing the lockfile. https://github.com/rubygems/rubygems/commit/3b53aa1b12
2023-12-15[rubygems/rubygems] Remove test-only & unused methods from Checksum::StoreMartin Emde
https://github.com/rubygems/rubygems/commit/79636dec12
2023-12-13[rubygems/rubygems] Store Checksum::Store indexed by spec.lock_nameMartin Emde
https://github.com/rubygems/rubygems/commit/34d6c6c72f
2023-12-07[rubygems/rubygems] Use modern hashes consistentlyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bb66253f2c
2023-12-06[rubygems/rubygems] Use String#unpack1 available since ruby 3.0Martin Emde
https://github.com/rubygems/rubygems/commit/46258d6cb4
2023-12-05[rubygems/rubygems] Converts Bundler lockfile checksum validation to opt-in onlyMartin Emde
Looks for the CHECKSUMS section in the lockfile, activating the feature only if the section exists. Without a CHECKSUMS section, Bundler will continue as normal, validating checksums when gems are installed while checksums from the compact index are present. https://github.com/rubygems/rubygems/commit/2353cc93a4
2023-10-23[rubygems/rubygems] Handle base64 encoded checksums in lockfile for future ↵Martin Emde
compatibility. Save checksums using = as separator. https://github.com/rubygems/rubygems/commit/a36ad7d160
2023-10-23[rubygems/rubygems] Improve errors and register checksums reliablyMartin Emde
Improve error reporting for checksums, raises a new error class. Solve for multi-source checksum errors. Add CHECKSUMS to tool/bundler/(dev|standard|rubocop)26_gems.rb https://github.com/rubygems/rubygems/commit/26ceee0e76 Co-authored-by: Samuel Giddins <segiddins@segiddins.me>
2023-10-23[rubygems/rubygems] Refactor Checksum classes and methods to reduceMartin Emde
code. (https://github.com/rubygems/rubygems/pull/6917) https://github.com/rubygems/rubygems/commit/2238bdaadc
2023-10-23[rubygems/rubygems] Refactor to checksums stored via sourceSamuel Giddins
This gets the specs passing, and handles the fact that we expect checkums to be pinned only to a particular source This also avoids reading in .gem files during lockfile generation, instead allowing us to query the source for each resolved gem to grab the checksum Finally, this opens up a route to having user-stored checksum databases, similar to how other package managers do this! Add checksums to dev lockfiles Handle full name conflicts from different original_platforms when adding checksums to store from compact index Specs passing on Bundler 3 https://github.com/rubygems/rubygems/commit/86c7084e1c
2023-10-23[rubygems/rubygems] Use the server checksum, then calculate from gem on disk ↵Mercedes Bernard
if possible 1. Use the checksum provided by the server if provided: provides security knowing if the gem you downloaded matches the gem on the server 2. Calculate the checksum from the gem on disk: provides security knowing if the gem has changed between installs 3. In some cases, neither is possible in which case we don't put anything in the checksum and we maintain functionality as it is today Add the checksums to specs in the index if we already have them Prior to checksums, we didn't lose any information when overwriting specs in the index with stubs. But now when we overwrite EndpointSpecifications or RemoteSpecifications with more generic specs, we could lose checksum info. This manually sets checksum info so we keep it in the index. https://github.com/rubygems/rubygems/commit/de00a4f153
2023-10-23[rubygems/rubygems] Add CHECKSUMS for each gem in lockfileThong Kuah
We lock the checksum for each resolved spec under a new CHECKSUMS section in the lockfile. If the locked spec does not resolve for the local platform, we preserve the locked checksum, similar to how we preserve specs. Checksum locking only makes sense on install. The compact index information is only available then. https://github.com/rubygems/rubygems/commit/bde37ca6bf