summaryrefslogtreecommitdiff
path: root/spec
AgeCommit message (Collapse)Author
2025-11-25[ruby/rubygems] Support bundle install --lockfile optionJeremy Evans
This allows for specifying the lockfile to read and write. It mirrors the --gemfile option, and has higher priority than the lockfile method in the Gemfile. It also mirrors the bundle lock --lockfile option. When the --lockfile option is used, it is applied twice. First, before the Gemfile is read, to specify the lockfile to operate on, and again after the Gemfile is read, so that if the Gemfile has a lockfile method that overrides the defintion's lockfile, the --lockfile option still has higher precedence. https://github.com/ruby/rubygems/commit/17acdd4a89
2025-11-24Add SIGABRT to reserved signals in bundler specPeter Zhu
2025-11-21[ruby/rubygems] Add go_gem/rake_task for Go native extention gem skeletonsue445
https://github.com/ruby/rubygems/commit/64f92d2da0
2025-11-20[ruby/rubygems] Keep legacy windows platform, not removed themHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/f360af8e3b
2025-11-20[ruby/rubygems] Add support for BUNDLE_LOCKFILE environment variableJeremy Evans
This specifies the lockfile location. This allows for easy support of different lockfiles per Ruby version or platform. https://github.com/ruby/rubygems/commit/b54d65bc0a Co-authored-by: Sutou Kouhei <kou@cozmixng.org> Co-authored-by: Colby Swandale <996377+colby-swandale@users.noreply.github.com>
2025-11-20[ruby/rubygems] Add support for bundle install --no-lockJeremy Evans
This allows for the same behavior as including `lockfile false` in the Gemfile. This allows you to get the behavior without modifying the Gemfile, which is useful if you do not control the Gemfile. This is similar to the --no-lock option already supported by `gem install -g Gemfile`. https://github.com/ruby/rubygems/commit/6c94623881 Co-authored-by: Colby Swandale <996377+colby-swandale@users.noreply.github.com>
2025-11-20[ruby/rubygems] Add support for lockfile in GemfileJeremy Evans
This allows you to specify the lockfile to use. This is useful if you want to use different lockfiles for different ruby versions or platforms. You can also skip writing the lockfile by using a false value. https://github.com/ruby/rubygems/commit/2896aa3fc2 Co-authored-by: Colby Swandale <996377+colby-swandale@users.noreply.github.com>
2025-11-20[ruby/rubygems] Change the logger instance for this spec:Edouard CHIN
- With the logger change that is now threadsafe, such code no longer behaves the same: ```ruby Bundler.ui.silence do Bundler.ui.level = 'info' Bundler.ui.info("foo") # This used to output something. Now it doesn't. end ``` IMHO this is the right behaviour since we are in a silence block, changing the level should have no effect. And fortunately it seems that we only need to change this spec. The call to `Bundler.ui.silence` is done in a `around` block https://github.com/ruby/rubygems/blob/4a13684f07ebb1dea5501e3f826fab414f96bf47/bundler/spec/spec_helper.rb#L119 https://github.com/ruby/rubygems/commit/e716adb6c9
2025-11-20[ruby/rubygems] Make the Bundler logger thread safe:Edouard CHIN
- The Logger is not thread safe when calling `with_level`. This now becomes problematic because we are using multiple threads during the resolution phase in order to fetch git gems. https://github.com/ruby/rubygems/commit/380653ae74
2025-11-20[ruby/rubygems] Improve error messages and handling in testseileencodes
This is a first pass to improve the way errors are handled and raised in bundler's tests. The goal is to clean up tests and modernize them - these were some obvious areas that could be cleaned up. - Instead of raising "ZOMG" in the load error tests, it now tests for the actual error and gem raising. - Improve error messages where applicable. - All errors raise a specific error class, rather than falling back to a default and just setting a message. - Removed arguments and `bundle_dir` option from `TheBundle` class as it wasn't actually used so therefore we don't need to raise an error for extra arguments. - Removed error from `BundlerBuilder`, as it won't work if it's not `bundler`, also it never uses `name`. The only reaon `name` is passed in is because of metaprogramming on loading the right builder. I think that should eventually be refactored. - Replaced and removed `update_repo3` and `update_repo4` in favor of just `build_repo3` and `build_repo4`. Rather than tell someone writing tests to use a different method, automatically use the right method. https://github.com/ruby/rubygems/commit/68c39c8451
2025-11-20Remove wrong testNobuyoshi Nakada
`realloc` is not guaranteed to return the same address when shrinking.
2025-11-20[ruby/rubygems] Bump up to 4.0.0.beta1Hiroshi SHIBATA
https://github.com/ruby/rubygems/commit/9be811c01a
2025-11-19Update to ruby/spec@6e62695Benoit Daloze
2025-11-19Fix provided features spec with --repeat 2Benoit Daloze
2025-11-19Update to ruby/spec@2e11d2aCharles Oliver Nutter
2025-11-19Update to ruby/mspec@bd8efcfCharles Oliver Nutter
2025-11-19[ruby/rubygems] Warn users that `bundle` now display the help:Edouard CHIN
- In https://github.com/ruby/rubygems/commit/31d67ecc056fb5a9193bc66a6e69e21576a87702 we enforced the new behaviour where running `bundle` no longer installs gems but displays the help. Users now have a way to configure their preferred default command using the `BUNDLE_DEFAULT_CLI_COMMAND` flag. With the preview of Ruby 4.0 now being released, some people will start to see this new change. The problem is that the previous behaviour had existed for like an eternity and we didn't warn users about this change in advance. I'd like to provide a deprecation/warning cycle because this is confusing users already and this breaks various CI setup that now needs to be changed immediately. https://github.com/ruby/rubygems/commit/e415480ac5
2025-11-19[ruby/rubygems] Add `--ext=go` to `bundle gem`Go Sueyoshi
(https://github.com/ruby/rubygems/pull/8183) * Add new gem templates * Add `--ext=go` in `bundle gem` * Add setup-go to .github/workflows/main.yml * Embed go version in go.mod * Use go in bundler CI * Add example method to template * Install Go in .circleci/config.yml * Install Go in .gitlab-ci.yml * Allow hard tabs in go template * Run `rake update_manifest` * Fix test * Move go_gem to gemspec Respect to 9b0ec80 * nits: :golf: * includes valid module name in go.mod * generate header file * Run `go mod tidy` to create `go.sum` * Check if `go.sum` is generated only when Go is installed To avoid test failure in environments where Go is not installed * Run CI * Workaround for hung up c.f. https://github.com/rubygems/rubygems/actions/runs/11639408044/job/32415545422 * Write man for --ext=go * Re-generate man with `./bin/rake man:build` * pinning :pushpin: * Update with `./bin/rake man:build` * nits: Extract to method * nits: Use `sys_exec` instead of `system` * Clean go module cache after test Workaround following error ``` 1) bundle gem gem naming with underscore --ext parameter set with go includes go_gem extension in extconf.rb Failure/Error: FileUtils.rm_r(dir) Errno::EACCES: Permission denied @ apply2files - /home/runner/work/rubygems/rubygems/bundler/tmp/2.2/home/go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/decode_test.go # ./spec/support/helpers.rb:37:in `block in reset!' # ./spec/support/helpers.rb:21:in `each' # ./spec/support/helpers.rb:21:in `reset!' # ./spec/spec_helper.rb:130:in `block (2 levels) in <top (required)>' # /home/runner/work/rubygems/rubygems/lib/rubygems.rb:303:in `load' # /home/runner/work/rubygems/rubygems/lib/rubygems.rb:303:in `activate_and_load_bin_path' ``` Files installed with `go get` have permissions set to 444 ref. https://github.com/golang/go/issues/35615 ``` $ ls -l /home/runner/work/rubygems/rubygems/bundler/tmp/2.2/home/go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/decode_test.go -r--r--r-- 1 runner runner 42320 Nov 15 06:38 /home/runner/work/rubygems/rubygems/bundler/tmp/2.2/home/go/pkg/mod/gopkg.in/yaml.v3@v3.0.1/decode_test.go ``` So they cannot be deleted by `FileUtils.rm_r`. Therefore, this is necessary to execute `go clean -modcache` separately from `FileUtils.rm_r` to circumvent it. * Remove needless changes ref. https://github.com/ruby/rubygems/pull/8183#discussion_r2532902051 * ci: setup-go is needless * Don't run go command in `bundle gem` ref. https://github.com/ruby/rubygems/pull/8183#discussion_r2532765470 * Revert unrelated date changes --------- https://github.com/ruby/rubygems/commit/260d7d60b3 Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org>
2025-11-18[ruby/rubygems] Handle to reverse order result in Ruby 3.2Hiroshi SHIBATA
https://github.com/ruby/rubygems/actions/runs/19458155903/job/55676075439?pr=3857 ``` -Did you mean 'methods' or 'method'? +Could not find gem 'methosd'. +Did you mean 'method' or 'methods'? ``` https://github.com/ruby/rubygems/commit/ab7d0fc7b0
2025-11-18[ruby/rubygems] Spelling with the latest version of did_you_meanHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/d604c1d1cb
2025-11-18[ruby/rubygems] More testsAustin Pray
https://github.com/ruby/rubygems/commit/210fa87f65
2025-11-18[ruby/rubygems] fix testsAustin Pray
https://github.com/ruby/rubygems/commit/1dc669a0ab
2025-11-18[ruby/rubygems] RubocopAustin Pray
https://github.com/ruby/rubygems/commit/a6bc30a827
2025-11-18[ruby/rubygems] use DidYouMean::SpellChecker for gem suggestionsAustin Pray
replaces Bundler::SimilarityDetector with DidYouMean::SpellChecker https://github.com/ruby/rubygems/commit/959bea1506
2025-11-14[Feature #21572] Syntax error at capture in alternation patternNobuyoshi Nakada
Should fail even with `-c` option.
2025-11-14[Feature #21275] Bump Unicode version to 17.0.0Mari Imaizumi
2025-11-14[ruby/rubygems] Suppress gem build message of bundler like this:Hiroshi SHIBATA
``` $ rake spec:regular Successfully built RubyGem Name: bundler Version: 4.0.0.dev File: bundler-4.0.0.dev.gem ``` https://github.com/ruby/rubygems/commit/8f0ca5eefa
2025-11-14[ruby/rubygems] Re-generate lockfile with double spacesHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/a65a4b775e
2025-11-14[ruby/rubygems] Fix triple spacing when generating lockfileJimmy Lin
https://github.com/ruby/rubygems/commit/d3baf4110e
2025-11-13[ruby/rubygems] We don't need to allow some warning because:David Rodríguez
Always build gems with RubyGems programmatically https://github.com/ruby/rubygems/commit/5cc0c34e64
2025-11-13[ruby/rubygems] Add debug logging information:Edouard CHIN
- I'd like to be able to see how long bundler takes for basic operations such as downloading a gem from Rubygems.org and installing a gem. It will now be possible with this commit by running `DEBUG=true bundle install` and have output that looks like: Fetching rack-test 2.2.0 Downloaded rack-test in: 50.523s Installing rack-test 2.2.0 Installed rack-test in: : 0.003s https://github.com/ruby/rubygems/commit/46386d43e1
2025-11-13[ruby/rubygems] Adjust the API_REQUEST_LIMIT:Edouard CHIN
- ### Problem This limit is used when Bundler fallback to getting a dependency list from a server `/dependencies?gem=` endpoint. Bundler uses this API endpoint fallback when a server doesn't expose the compact index API. This is not used for Rubygems.org, only private servers. This limit is then divided by the number of dependency to get and the result is the number of request we'll be doing. The bottleneck on the client is the network roundtrip. On the server, getting the info of 50 or 100 gems is a bit more expensive but this operation is heavily cached. This is an example of Rubygems.org implementation at the time the dependencies API wasn't deprecated https://github.com/rubygems/rubygems.org/blob/5a3a3ec02acc3a4e3aba077953a393ad20a06842/app/models/gem_dependent.rb#L15 ### Context This limit used to be 100 a while ago but got changed to 50 in https://github.com/ruby/rubygems/commit/e745f8dc901dd419e7dc8aede3e8d49569fc7b1e I don't know why. ### Solution 50 gems to query seems arbitrary low. By doubling this number, we make twice as less API requests which ultimately can shove up to two seconds on application relying on a large number of gems. https://github.com/ruby/rubygems/commit/831894043c
2025-11-12erb/new_spec.rb: Fix a missing doTakashi Kokubun
2025-11-12erb/new_spec.rb: Update a version guardTakashi Kokubun
to the released version
2025-11-12erb/new_spec.rb: Fetch private ERB::VERSIONTakashi Kokubun
for erb v4.0.4 or older
2025-11-12Reapply "[ruby/erb] Reapply "Remove safe_level and further positional"Takashi Kokubun
This reverts commit 5b6658a406b5f1c535aed4cb68e8e18a3cbabb81. With a ruby spec fix.
2025-11-12[ruby/rubygems] maybe this will work?Aaron Patterson
https://github.com/ruby/rubygems/commit/4d8b1c77f4
2025-11-12[ruby/rubygems] Shell out fewer timesAaron Patterson
This is a follow up to #9053. We can avoid shelling out for generating the gem index. https://github.com/ruby/rubygems/commit/e40bafe9f1
2025-11-12Replace Ruby 3.5 with Ruby 4.0Hiroshi SHIBATA
2025-11-11[Bug #21666] Get rid of use of unspecified valuesNobuyoshi Nakada
2025-11-11Support out-of-place build in ruby/ruby repoHiroshi SHIBATA
2025-11-11[ruby/rubygems] Use Spec::Path.relative_gemspecHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/2142e405b0
2025-11-11[ruby/rubygems] build gems directly instead of shelling outAaron Patterson
I'm trying to speed up the bundler tests. The tests shell out a lot in order to build gems. We can build gems without creating a sub-process. This change reduced the test suite time from ~24 minutes, to about ~21 minutes on my machine. Once we have more of these "asset generation" routines done in the same process, I think we can start caching the outputs for further improvements https://github.com/ruby/rubygems/commit/ebf27056c6
2025-11-10[ruby/rubygems] Hide patchlevel from lockfileHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/9b169c700f
2025-11-07[ruby/rubygems] Use Dir.pwd instead of Pathname.pwdHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/6c161b253d
2025-11-07[ruby/rubygems] Restore pathname for rake dev:depsHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/89e95d0f15
2025-11-07[ruby/rubygems] Replace Pathname#rmtree to FileUtils.rm_rf directlyHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/33c7a9a565
2025-11-07[ruby/rubygems] Removed unnecessary loading of pathnameHiroshi SHIBATA
https://github.com/ruby/rubygems/commit/6e965b7872
2025-11-07Update Bundler::CurrentRuby::ALL_RUBY_VERSIONSNobuyoshi Nakada
2025-11-06Adjust OpenSSL specs for digest algorithm lookupKazuki Yamaguchi
https://github.com/ruby/openssl/pull/958 changed the common logic for digest algorithm lookup: - If the argument is neither an OpenSSL::Digest instance nor a String, it is now implicitly converted to String with #to_str. This is consistent with algorithm name lookup logic in ruby/openssl for pkeys and ciphers. - If the name is not recognized, OpenSSL::Digest::DigestError is raised instead of RuntimeError. Update the specs accordingly: - Remove specs that expect #to_str not to be called. - Relax regexps matching TypeError messages. - Expect OpenSSL::Digest::DigestError instead of RuntimeError for ruby/openssl 4.0.0 and later.