summaryrefslogtreecommitdiff
path: root/spec/bundler/bundler
AgeCommit message (Collapse)Author
2024-03-28Use www.rfc-editor.org for RFC text.Hiroshi SHIBATA
We use the following site for that now: * https://tools.ietf.org/ or http * https://datatracker.ietf.org or http Today, IETF said the official site of RFC is www.rfc-editor.org. FYI: https://authors.ietf.org/en/references-in-rfcxml I replaced them to www.rfc-editor.org.
2024-03-18[rubygems/rubygems] Deprecate `bundle plugin install --local-git=`Cody Cutrer
It's the exact same implementation as --git https://github.com/rubygems/rubygems/commit/18eb2418c6
2024-03-17[rubygems/rubygems] Ignore commented out keys in config fileDavid Rodriguez
https://github.com/rubygems/rubygems/commit/c4a8d2a930
2024-02-16[rubygems/rubygems] Add `gitlab:` Git source shorthandJason Garber
This new shorthand, similar to the existing `github:` shorthand, adds support for Gitlab repositories with a notable difference. Gitlab projects may be organized into projects and subprojects. An example Ruby gem exists at: https://gitlab.com/gitlab-org/analytics-section/product-analytics/gl-application-sdk-rb With the new shorthand, a user may install this gem from its repository by adding: ```ruby gem "gitlab-sdk", gitlab: "gitlab-org/analytics-section/product-analytics/gl-application-sdk-rb" ``` As with the `github:` shorthand, a supplied string with no `/` will be interpreted as `example/example`. Also in keeping with the utility of the `github:` shorthand, the new `gitlab:` shorthand also supports Merge Request URLs. ```ruby gem "gitlab-sdk", gitlab: "https://gitlab.com/gitlab-org/analytics-section/product-analytics/gl-application-sdk-rb/-/merge_requests/27" ``` The `gitlab:` gem source shortcut is modeled on the existing `github:` shortcut, so the new specs mimic the existing examples. https://github.com/rubygems/rubygems/commit/f4399018c0
2024-02-15[rubygems/rubygems] use full path for instance_evalCody Cutrer
so that __dir__ and __FILE__ will work properly from within that gemfile fragment, if eval_gemfile is given a relative path https://github.com/rubygems/rubygems/commit/d521bf9790
2024-02-15Update the error message format in bundlerYusuke Endoh
2024-02-08[rubygems/rubygems] Improve assertionDavid Rodriguez
https://github.com/rubygems/rubygems/commit/7f2f2b898c Co-authored-by: Martin Emde <martin.emde@gmail.com>
2024-02-08[rubygems/rubygems] Run definition specs in an isolated locationDavid Rodriguez
And consistently pass Pathname's to `Definition.new` like production code does. https://github.com/rubygems/rubygems/commit/660def5b68
2024-02-08[rubygems/rubygems] Fix incorrect 4th parameter to Definition.newDavid Rodriguez
https://github.com/rubygems/rubygems/commit/54948e428d
2024-02-08[rubygems/rubygems] Move `subject` to top level contextDavid Rodriguez
https://github.com/rubygems/rubygems/commit/331c415af0
2024-02-08[rubygems/rubygems] Refactor lockfile generationDavid Rodríguez
https://github.com/rubygems/rubygems/commit/6a0c03c77f
2024-01-29[rubygems/rubygems] Properly restore empty env varsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/e0d68a8688
2024-01-29[rubygems/rubygems] Use rubygems vendored uri from Bundler when availableDavid Rodríguez
https://github.com/rubygems/rubygems/commit/5d6a8f2fb4
2024-01-24[rubygems/rubygems] Simplified test-case for original issueHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/89086c5458
2024-01-24[rubygems/rubygems] Keep compatibility of past versionsHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/54b67fb251
2024-01-24[rubygems/rubygems] Skip to load commented out wordsHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/e6a9148ba2
2024-01-05[rubygems/rubygems] Quote Etag in `If-None-Match` header of compact index ↵Martin Emde
request https://github.com/rubygems/rubygems/commit/d26bcd7551
2023-12-22Merge RubyGems-3.5.2 and Bundler-2.5.2Hiroshi SHIBATA
2023-12-15[rubygems/rubygems] Remove test-only & unused methods from Checksum::StoreMartin Emde
https://github.com/rubygems/rubygems/commit/79636dec12
2023-12-14[rubygems/rubygems] Remove extension building sync stuff no longer present ↵David Rodríguez
in RubyGems https://github.com/rubygems/rubygems/commit/59a85388b9
2023-12-13[rubygems/rubygems] Revert "Merge pull request #7167 from ↵Martin Emde
nevinera/add-json-output-option-to-bundle-outdated" This reverts commit https://github.com/rubygems/rubygems/commit/a4ac5116b8ea, reversing changes made to https://github.com/rubygems/rubygems/commit/8a6b180d0ae5. https://github.com/rubygems/rubygems/commit/a1efe4015d
2023-12-13[rubygems/rubygems] Add 3.4 as a supported ruby versionSamuel Giddins
Since ruby trunk will be 3.4 very soon https://github.com/rubygems/rubygems/commit/36dd9a35dc
2023-12-13[rubygems/rubygems] Use vendored net-http in BundlerDavid Rodríguez
https://github.com/rubygems/rubygems/commit/0d758e8926
2023-12-12[rubygems/rubygems] Resolve `ruby file: ".ruby-version"` relative to GemfileMartin Emde
https://github.com/rubygems/rubygems/commit/0cbbaed8a5
2023-12-07[rubygems/rubygems] Use modern hashes consistentlyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bb66253f2c
2023-12-06[rubygems/rubygems] Bundler::Fetcher uses Bundler::CIDetectorEric Mueller
Additionally, the result is memoized, as it's used twice in a row. This change does result in a net behavioral diff, as the list of ENVs being checked has been updated (now includes buildkite, taskcluster, cirrus, dsari, and drops buildbox and snap) https://github.com/rubygems/rubygems/commit/3fb445a5a1
2023-12-06[rubygems/rubygems] Duplicate Gem::CIDetector into bundlerEric Mueller
Because bundler needs to support older versions of rubygems, we can't actually rely on Gem::CIDetector (yet - in a year or so they might be able to consolidate, if they don't change futher). So we're copying it into the Bundler:: namespace, and enforcing that they stay completely in sync with a test. No other tests are needed, since Gem::CIDetector is already tested, and this is and will remain identical. https://github.com/rubygems/rubygems/commit/abc67f0da1
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-12-01[rubygems/rubygems] major_deprecation accepts :removed_messageEric Mueller
If supplied, it uses that in place of the message for the case where the deprecation version is already past. https://github.com/rubygems/rubygems/commit/1deb73663c
2023-11-27Opaque Etags for compact index requestsJosef Šimánek
This changes the CompactIndexClient to store etags received from the compact index in separate files rather than relying on the MD5 checksum of the file as the etag. Smoothes the upgrade from md5 etags to opaque by generating them when no etag file exists. This should reduce the initial impact of changing the caching behavior by reducing cache misses when the MD5 etag is the same. Eventually, the MD5 behavior should be retired and the etag should be considered completely opaque with no assumption that MD5 would match.
2023-11-26[rubygems/rubygems] Reduce allocations when installing gems with bundlerSamuel Giddins
``` ==> memprof.after.txt <== Total allocated: 1.13 MB (2352 objects) Total retained: 10.08 kB (78 objects) ==> memprof.before.txt <== Total allocated: 46.27 MB (38439 objects) Total retained: 9.94 kB (75 objects) ``` Yes, we were allocating 45MB of arrays in `dependencies_installed?`, it was accidentally cubic. https://github.com/rubygems/rubygems/commit/13ab874388
2023-11-23[rubygems/rubygems] Add --json bundle-outdated flag to produce ↵Eric Mueller
json-parseable output https://github.com/rubygems/rubygems/commit/65efa44bc0
2023-11-15[rubygems/rubygems] User bundler UA when downloading gemsSamuel Giddins
Gem::RemoteFetcher uses Gem::Request, which adds the RubyGems UA. Gem::RemoteFetcher is used to download gems, as well as the full index. We would like the bundler UA to be used whenever bundler is making requests. This PR also avoids unsafely mutating the headers hash on the shared `Gem::RemoteFetcher.fetcher` instance, which could cause corruption or incorrect headers when making parallel requests. Instead, we create one remote fetcher per rubygems remote, which is similar to the connection segregation bundler is already doing https://github.com/rubygems/rubygems/commit/f0e8dacdec
2023-11-13[rubygems/rubygems] Drop support for Ruby 2.6 and Ruby 2.7 in BundlerDavid Rodríguez
https://github.com/rubygems/rubygems/commit/93619c97ff
2023-11-13[rubygems/rubygems] Remove unused `SpecSet#merge`David Rodríguez
https://github.com/rubygems/rubygems/commit/53e0490b55
2023-11-08Add foo.gemspec for failing testPeter Zhu
foo.gemspec was added in rubygems/rubygems@8d699ed096960ed9a6636bd27143952ff5f8addc but was not sync'd in commit b4bf8c9ee2d716adf5fc08e67c4b26d6a8f929c2. This causes the spec to fail.
2023-11-08[rubygems/rubygems] Ensure we are using the same extension dirHan Young
Since #6945 the extension dir changed to Gem::BasicSpecification's implementation, we didn't hook that in rubygems_ext.rb. So for universal rubies, we ended up using the universal platform name when installing, but arch replaced platform name when checking. This lead to native extensions can never be correctly installed on universal rubies. Hook Gem::BasicSpecifications so the behavior is consistent on installing and checking. https://github.com/rubygems/rubygems/commit/8d699ed096
2023-11-08[rubygems/rubygems] Better error when having an insecure install folderDavid Rodríguez
https://github.com/rubygems/rubygems/commit/e41156e272
2023-10-24[rubygems/rubygems] Handle empty arrayHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/7c0afdd9af
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
2023-10-16Re-resolve when lockfile is invalidDavid Rodriguez
Move the check for unmet dependencies in lockfile just in time to be able to re-resolve if unmet dependencies are found.
2023-10-09[rubygems/rubygems] Avoid duplicates -rbundler/setup in RUBYOPT with Ruby ↵Jacopo
preview When using a Ruby preview the require path of `bundler/setup` is similar to `-r/opt/ruby3.3.0-preview2/lib/ruby/3.3.0+0/bundler/setup`. The special character `+` in the string makes the Regexp fail, leading to multiple addition of the same require statement each time `set_rubyopt` is called (e.g. server reloading). Escaping the characters in the string esure a correct match with all the different Ruby versions. https://github.com/rubygems/rubygems/commit/dd43dfa709
2023-10-03[rubygems/rubygems] 🐛 Specification of branch or ref with tag is ambiguousPeter Boling
- Specs for GitProxy were incorrect and insufficient - Specs are now correct and less insufficient https://github.com/rubygems/rubygems/commit/63d0a8cfd0
2023-10-02[rubygems/rubygems] Support Ruby's preview version format (Ex: ↵Harshal Bhakta
3.3.0-preview2) in Gemfile https://github.com/rubygems/rubygems/commit/4c1a0511b6
2023-09-20[rubygems/rubygems] Bundler error handlingSamuel Giddins
https://github.com/rubygems/rubygems/commit/63b422b71a