summaryrefslogtreecommitdiff
path: root/spec/bundler/support
AgeCommit message (Collapse)Author
2024-03-04[rubygems/rubygems] Clear `RUBY_CODESIGN` env var while running testsYuta Saito
The `RUBY_CODESIGN` environment variable is used by mkmf-generated Makefile to sign extension bundles on macOS. The variable specifies a key identifier to use for signing given by the user. However, the key is usually stored in `$HOME/Library/Keychains` directory, and the test suite creates a fake `$HOME` directory. This causes the test suite to try to find the specified key from the fake home directory, which results in a failure. https://github.com/rubygems/rubygems/commit/ddcfc65bf7
2024-02-19[rubygems/rubygems] Use FileUtils.mkdir_pHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/af806b8dff
2024-02-16Avoid to fail with race conditionHiroshi SHIBATA
2024-02-02[rubygems/rubygems] Add missing Windows jobDavid Rodriguez
Specs that use extension gems were failing in the new job but I noticed that they were using very non standard `extconf.rb` files. The hack being removed here was added just to make specs pass when run in ruby-core but it seems the underlying issue has been fixed now, and it's causing issues with Ruby 3.3 and Windows, so necessary so I'm removing it and moving on. https://github.com/rubygems/rubygems/commit/5b78275f0e
2024-01-31[rubygems/rubygems] Make slow perf specs more stableDavid Rodriguez
This seems worse to detect performance regressions, but at least should not have many false positives. https://github.com/rubygems/rubygems/commit/0b28e55415
2024-01-31[rubygems/rubygems] Fix some flaky test failures on WindowsDavid Rodriguez
Some specs assert empty output, but sometimes they print warnings about redefinition warnings. Ignore those until they are fixed upstream. https://github.com/rubygems/rubygems/commit/0cd3b6dbae
2024-01-17Inject base64 for basic auth examples of bundlerHiroshi SHIBATA
2024-01-11[rubygems/rubygems] Show diff on source control errorsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d728fa1b04
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-17Adjust rubygems styleHiroshi SHIBATA
2023-12-17Restore tracked_files for ruby core repoHiroshi SHIBATA
2023-12-16Use regex instead of hard coded pathsHiroshi SHIBATA
2023-12-16We don't use tracked_files in before(:suite). It breaks with release package.Hiroshi SHIBATA
2023-12-13Normalize bundler bindirDavid Rodríguez
This makes bundler consistent with all other gems, and makes the default installation of Bundler in the release package look like any other bundler installation. Before (on preview3, for example), Bundler executable is installed at: lib/ruby/gems/3.3.0+0/gems/bundler-2.5.0.dev/libexec/bundle Now it's installed in the standard location: lib/ruby/gems/3.3.0+0/gems/bundler-2.5.0.dev/exe/bundle
2023-12-13[rubygems/rubygems] Use vendored net-http in BundlerDavid Rodríguez
https://github.com/rubygems/rubygems/commit/0d758e8926
2023-12-13[rubygems/rubygems] Load hax.rb before anything when ↵David Rodríguez
`BUNDLER_IGNORE_DEFAULT_GEM` set https://github.com/rubygems/rubygems/commit/111bd11c36
2023-12-12[rubygems/rubygems] Bump rake version used by testsDavid Rodríguez
And make it easier to update next time. https://github.com/rubygems/rubygems/commit/1ea4bfa5d8
2023-12-08[rubygems/rubygems] Migrate documentation to be generated with nronnDavid Rodríguez
https://github.com/rubygems/rubygems/commit/55281f0eaa
2023-12-08[rubygems/rubygems] Extract generate_index command to ↵Samuel Giddins
rubygems-generate_index gem So generate_index can be implemented with dependencies, such as the compact index Took this approach from feedback in https://github.com/rubygems/rubygems/pull/6853 Running `gem generate_index` by default will use an installed rubygems-generate_index, or install and then use the command from the gem Apply suggestions from code review https://github.com/rubygems/rubygems/commit/fc1cb9bc9e Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
2023-12-07[rubygems/rubygems] Use modern hashes consistentlyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bb66253f2c
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-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-27[rubygems/rubygems] Remove no longer necessary workaround for old RubyGemsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ed4eaefac0
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] Let RuboCop target Ruby 3.0David Rodríguez
https://github.com/rubygems/rubygems/commit/70243b1d72
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] Automatically lock extra ruby platformsDavid Rodríguez
Since we started locking the specific platform in the lockfile, that has created an annoying situation for users that don't develop on Linux. They will create a lockfile on their machines, locking their local platform, for example, darwin. But then that lockfile won't work automatically when deploying to Heroku for example, because the lockfile is frozen and the Linux platform is not included. There's the chance though that resolving against two platforms (Linux + the local platform) won't succeed while resolving for just the current platform will. So, instead, we check other platform specific variants available for the resolution we initially found, and lock those platforms and specs too if they satisfy the resolution. This is only done when generating new lockfiles from scratch, existing lockfiles should keep working as before, and it's only done for "ruby platforms", i.e., not Java or Windows which have their own complexities, and so are excluded. With this change, we expect that MacOS users can bundle locally and deploy to Heroku without needing to do anything special. https://github.com/rubygems/rubygems/commit/5f24f06bc5
2023-11-13[rubygems/rubygems] Refactor platform test helpersDavid Rodriguez
https://github.com/rubygems/rubygems/commit/7ab4c203f9
2023-11-09[rubygems/rubygems] Explicitly pass install-dir when installing system gems ↵David Rodríguez
in Bundler specs We want to avoid any "user home" fallbacks, since that won't work with Bundler. So if there's a permissions issue during specs, it's best to raise immediately. https://github.com/rubygems/rubygems/commit/767a3e7533
2023-11-09[rubygems/rubygems] Remove unused logicDavid Rodríguez
https://github.com/rubygems/rubygems/commit/2eb2860e9e
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-03[rubygems/rubygems] Fix typoDavid Rodriguez
https://github.com/rubygems/rubygems/commit/64e7a2656a
2023-08-28[rubygems/rubygems] Don't check for circular deps on full index sourcesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d275cdccb1
2023-08-16[rubygems/rubygems] Use better status for authentication failuresDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ffa395411f
2023-07-25[rubygems/rubygems] Added warnings targets for old version of RubyHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/d0c1d97105
2023-07-25[rubygems/rubygems] Added csv as stub gem to build_repo1Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/d2f2597c31
2023-07-24[rubygems/rubygems] Refactor spec helpers for reading lockfilesDavid Rodríguez
https://github.com/rubygems/rubygems/commit/ea2a30ba08
2023-06-20Merge rubygems/rubygems HEADHiroshi SHIBATA
Pick from https://github.com/rubygems/rubygems/commit/880dd95996c93adc1e032399816931b243c5fe17 Notes: Merged: https://github.com/ruby/ruby/pull/7961
2023-06-15[rubygems/rubygems] Rubocop 1.51.0 or later didn't support Ruby 2.6Hiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/522b5f1ecd
2023-05-31[rubygems/rubygems] tool_dir needs to handle ruby/ruby repo nowHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/550d90f4ba
2023-05-30Merge RubyGems/Bundler master from 4076391fce5847689bf2ec402b17133fe4e32285Hiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/7873
2023-04-11Removed file that is part of d89cc317c642848008f5b17a82196d25ddcdf124Hiroshi SHIBATA
2023-04-07[rubygems/rubygems] Remove one fallback to full indexes on big gemfilesDavid Rodríguez
If Gemfile has a lot of dependencies, we have an optimization that uses the full index in that case, assuming it's going to be faster. I think this is an old optimization that predates compact index API times, I believe we no longer need it these days. Also, since a few releases ago we check for circular dependencies when resolving by looping through all versions of each name and removing those that have circular dependencies that would trip up the resolver. This loop becomes actually very slow when full indexes are used because to find dependencies of a gemspec, we need to explicitly fetch the marshaled gemspec (`gemspec.rz` endpoint) for it, so the optimization has the opposite effect of making things very slow. https://github.com/rubygems/rubygems/commit/2f46289bd3
2023-03-23Don't remove RUBY platform when healing a lockfile with missing specsDavid Rodríguez
Notes: Merged: https://github.com/ruby/ruby/pull/7582