summaryrefslogtreecommitdiff
path: root/test/rubygems
AgeCommit message (Collapse)Author
2024-11-25[rubygems/rubygems] Prevent a warning: net/http: Content-Type did not setYusuke Endoh
`make test-all RUBYOPT=-w` in the ruby/ruby repo printed the warning. This change prevents the warning by specifying the content-type explicitly. A follow-up to https://github.com/rubygems/rubygems/commit/b70c1bb1503d https://github.com/rubygems/rubygems/commit/d573af07f6
2024-11-20[rubygems/rubygems] Add --attestation option to gem pushSamuel Giddins
Signed-off-by: Samuel Giddins <segiddins@segiddins.me> https://github.com/rubygems/rubygems/commit/a5412d9a0e
2024-11-14[rubygems/rubygems] Update test_project_sanity.rbDave Corson-Knowles
https://github.com/rubygems/rubygems/commit/279eefb8a3
2024-11-06[rubygems/rubygems] Fix manifest in gem package using incorrect platform ↵David Rodríguez
sometimes If a gem package is built from a specification whose platform has been modified, it will include metadata using the old platform. This change should fix the problem by making sure `original_platform` is always properly set. https://github.com/rubygems/rubygems/commit/ecd5cd4547
2024-11-04Validate user input encodingDavid Rodríguez
If the user has the encoding of her system messed up, she may end up sending us incorrectly encoding input, causing "invalid byte sequence in UTF-8" errors at random places. These errors can be forced on a system without encoding issues with something like: ``` $ gem install$(echo -e "\xFF") foo /Users/deivid/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/config_file.rb:534:in `block in set_config_file_name': invalid byte sequence in UTF-8 (ArgumentError) from /Users/deivid/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/config_file.rb:530:in `each' from /Users/deivid/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/config_file.rb:530:in `set_config_file_name' from /Users/deivid/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/config_file.rb:177:in `initialize' from /Users/deivid/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/gem_runner.rb:71:in `new' from /Users/deivid/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/gem_runner.rb:71:in `do_configuration' from /Users/deivid/.asdf/installs/ruby/3.2.1/lib/ruby/site_ruby/3.2.0/rubygems/gem_runner.rb:33:in `run' from /Users/deivid/.asdf/installs/ruby/3.2.1/bin/gem:10:in `<main>' ``` This commit makes RubyGems print a better error in this case: ``` $ ruby -Ilib bin/gem install$(echo -e "\xFF") foo /Users/deivid/Code/rubygems/rubygems/lib/rubygems/gem_runner.rb:75:in `validate_encoding': invalid argument: 'install�' has invalid encoding (Gem::OptionParser::InvalidArgument) from /Users/deivid/Code/rubygems/rubygems/lib/rubygems/gem_runner.rb:31:in `run' from bin/gem:10:in `<main>' ```
2024-11-04[rubygems/rubygems] Fix commands with 2 MFA requests when webauthn is enabledDavid Rodríguez
If a command requires two MFA authenticated requests, and webauthn is enabled, then first one will succeed but the second one will fail because it tries to reuse the OTP code from the first request and that does not work. This happens when you have not yet logged in to rubygems.org, or when you have an API key with invalid scopes for the current operation. In that case, we need: * An API request to get a token or change scopes for the one that you have. * Another API request to perform the actual operation. Instead of trying to reuse the token, make sure it's cleared so we are asked to authenticate again. We only do this when webauthn is enabled because reusing TOPT tokens otherwise is allowed and I don't want to break that. https://github.com/rubygems/rubygems/commit/669e343935
2024-11-04[rubygems/rubygems] TermError should inherit from SystemExitDavid Rodríguez
The `gem owner` command rescues standard errors, but does not rescue SystemExit errors. If TermError is a standard error, not a system exit, tests don't behave like realworld for this command. https://github.com/rubygems/rubygems/commit/cf7d500f4d
2024-10-30[rubygems/rubygems] Fix `gem update --system` leaving old default bundler ↵David Rodríguez
executables around https://github.com/rubygems/rubygems/commit/4b81add54c
2024-10-24[rubygems/rubygems] [SpecFetcher tests] Use >3 character long fake gem name.Ellen Marie Dash
https://github.com/rubygems/rubygems/commit/ce06b8f0d9
2024-10-23[rubygems/rubygems] Add another bail-early condition to ↵Ellen Marie Dash
suggest_gems_from_name(), with test. https://github.com/rubygems/rubygems/commit/7bb7c0ac2d
2024-10-14[rubygems/rubygems] Fix `gem contents` for default gemsDavid Rodríguez
A default gem does not always live in the same place. For example, Bundler may be installed to `site_dir` when RubyGems have been upgraded. A more reliable way seems to actually activate the default gem, so that we can know for sure where it lives. https://github.com/rubygems/rubygems/commit/c69f6dfb18
2024-10-14[rubygems/rubygems] Fix duplicated specs when they have been previously ↵David Rodríguez
activated https://github.com/rubygems/rubygems/commit/b44bf2ac74
2024-10-11[rubygems/rubygems] Check that the binstub was actually resetDavid Rodríguez
https://github.com/rubygems/rubygems/commit/d46fca6126
2024-10-10[rubygems/rubygems] Only pristine executables for default gemsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/1cfc1d626c
2024-10-10[rubygems/rubygems] Fix `gem pristine etc` resetting gem twice sometimesDavid Rodríguez
If a default version and a regular version of etc are present at the same time, RubyGems will end up duplicating work and running pristine twice. The `etc` gem is special because it's loaded by RubyGems by default. When doing this, RubyGems will activate the regularly installed version. The when `gem pristine` runs, it will find to installed specifications but materialize both to the already activated specification. Before: ``` $ gem pristine etc --version 1.4.3 Restoring gems to pristine condition... Building native extensions. This could take a while... Restored etc-1.4.3 Building native extensions. This could take a while... Restored etc-1.4.3 ``` After: ``` $ gem pristine etc --version 1.4.3 Restoring gems to pristine condition... Skipped etc-1.4.3, it is a default gem Building native extensions. This could take a while... Restored etc-1.4.3 ``` https://github.com/rubygems/rubygems/commit/5c279ac56b
2024-10-10[rubygems/rubygems] Improve some indentationsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/30f228a97f
2024-10-10[rubygems/rubygems] Run specs that now pass on JRubyDavid Rodríguez
https://github.com/rubygems/rubygems/commit/2af077ee38
2024-10-09[rubygems/rubygems] Remove unused variableDavid Rodríguez
https://github.com/rubygems/rubygems/commit/b31f33d55c
2024-10-09[rubygems/rubygems] Fix a `gem install` crash during "done installing" hooksDavid Rodríguez
It would happen when the gem is already installed to multiple GEM_PATHS. RubyGems was removing duplicate specs without considering the potentially different `base_dir`. That was causing the gem to be misidentified as not already installed, and a nil specification getting returned from the installer as a result, causing the crash. Solve it by making sure `Gem::Specification.all` really iterates through all the different specifications in all GEM_PATHs. https://github.com/rubygems/rubygems/commit/0d8c208f65
2024-10-09[rubygems/rubygems] Allow `gem pristine` to reset default gems tooDavid Rodríguez
https://github.com/rubygems/rubygems/commit/c9e665eb8a
2024-10-03Update default gem test for colon-style hash inspecttompng
Notes: Merged: https://github.com/ruby/ruby/pull/10924
2024-10-02[rubygems/rubygems] Fix error in one source when fetching dependency APIs ↵David Rodríguez
clearing results from all sources https://github.com/rubygems/rubygems/commit/0549ddbcc5
2024-10-02[rubygems/rubygems] Standarize "ins" test command tooDavid Rodríguez
https://github.com/rubygems/rubygems/commit/517e9a8669
2024-10-02[rubygems/rubygems] Fix weirdness of "interrupt" test commandDavid Rodríguez
https://github.com/rubygems/rubygems/commit/0a75590ac9
2024-09-30[rubygems/rubygems] Don't add duplicated specs to unresolved specsDavid Rodríguez
This could happen when a regular gem shadows a default gem. https://github.com/rubygems/rubygems/commit/9ef70dd1f7
2024-09-30[rubygems/rubygems] Don't list duplicated version in ↵David Rodríguez
`Gem::Specification.reset` warning https://github.com/rubygems/rubygems/commit/e6e3db821f
2024-09-28[rubygems/rubygems] Improve Gem::SpecFetcher tests.Ellen Marie Dash
https://github.com/rubygems/rubygems/commit/6e0456583b
2024-09-28[rubygems/rubygems] [tests] Don't expect suggestions that aren't actually ↵Ellen Marie Dash
helpful. https://github.com/rubygems/rubygems/commit/e7d6b92e31
2024-09-27[rubygems/rubygems] Warning about PATH in `--user-install` mode is only ↵David Rodríguez
necessary for gems with executables https://github.com/rubygems/rubygems/commit/2fe0f452a2
2024-09-20[rubygems/rubygems] Unconditionally set installed_by_versionSamuel Giddins
It has been supported since RubyGems 2.2.0 via https://github.com/rubygems/rubygems/commit/4525e45a4d45 Signed-off-by: Samuel Giddins <segiddins@segiddins.me> https://github.com/rubygems/rubygems/commit/bf39c583e8
2024-09-09[rubygems/rubygems] Make `gem exec` use the standard GEM_HOMEDavid Rodríguez
https://github.com/rubygems/rubygems/commit/032b3c518a
2024-09-09[rubygems/rubygems] Fix `gem fetch` always exiting with zero status codeDavid Rodríguez
https://github.com/rubygems/rubygems/commit/5887e6dfa1
2024-09-06[rubygems/rubygems] Fix `gem install does-not-exist` being super slowDavid Rodríguez
Every time a gem is not found in the Compact Index API, RubyGems will fallback to the full index, which is very slow. This is unnecessary because both indexes should be providing the same gems, so if a gem can't be found in the Compact Index API, it won't be found in the full index. We _do_ want a fallback to the full index, whenever the Compact Index API is not implemented. To detect that, we check that the API responds to the "/versions" endpoint, just like Bundler does. Before: ``` $ time gem install fooasdsfafs ERROR: Could not find a valid gem 'fooasdsfafs' (>= 0) in any repository gem 20,77s user 0,59s system 96% cpu 22,017 total ``` After: ``` $ time gem install fooasdsfafs ERROR: Could not find a valid gem 'fooasdsfafs' (>= 0) in any repository gem 5,02s user 0,09s system 91% cpu 5,568 total ``` https://github.com/rubygems/rubygems/commit/c0d6b9eea7
2024-09-06[rubygems/rubygems] Ensure that the lock file will be removedNobuyoshi Nakada
https://github.com/rubygems/rubygems/commit/2706acb271
2024-09-06[rubygems/rubygems] Remove the lock file for binstubsNobuyoshi Nakada
https://github.com/rubygems/rubygems/pull/7806#issuecomment-2241662488 https://github.com/rubygems/rubygems/commit/4f06ee234a
2024-09-03[rubygems/rubygems] standardize pretty-print output for Gem::Source and ↵Durable Programming Team
subclasses https://github.com/rubygems/rubygems/commit/6d5fbf82f1
2024-09-02[rubygems/rubygems] Simplify `Gem.read_binary` and `Gem.write_binary`Nobuyoshi Nakada
Since `Gem.open_file` no longer locks the target file and is same as `File.open` now, simply `Gem.read_binary` should read in binary mode. Also the body of `Gem.write_binary` is same as `File.binwrite`. https://github.com/rubygems/rubygems/commit/44df9045df
2024-09-01Skip RDoc related feature if Gem::RDoc is not availableHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/11491
2024-08-31[rubygems/rubygems] fix `@license` typo preventing licenses from being ↵Durable Programming Team
correctly unmarshalled https://github.com/rubygems/rubygems/commit/d6ba7ef79f
2024-08-29Make optional benchmark test in ↵Hiroshi SHIBATA
test_find_in_unresolved_tree_is_not_exponentiental Notes: Merged: https://github.com/ruby/ruby/pull/11490
2024-08-29Don't use benchmark for test_activate_via_require_respects_loaded_filesHiroshi SHIBATA
benchmark.rb may extract as bundled gems in the future release Notes: Merged: https://github.com/ruby/ruby/pull/11490
2024-08-29Removed redundant require for TestGemRequireHiroshi SHIBATA
Notes: Merged: https://github.com/ruby/ruby/pull/11490
2024-08-27[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.101 to 0.9.102. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.101...v0.9.102) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/2487c88dfe
2024-08-26[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.101 to 0.9.102. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.101...v0.9.102) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/57afcf60b5
2024-08-21[rubygems/rubygems] Fix `gem uninstall <name>:<version>` failing on shadowed ↵David Rodríguez
default gems https://github.com/rubygems/rubygems/commit/29357a5dd6
2024-08-19[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.100 to 0.9.101. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.100...v0.9.101) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/3addc2c3e7
2024-08-19[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.100 to 0.9.101. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.100...v0.9.101) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/d26f5824a7
2024-08-05[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.99 to 0.9.100. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.99...v0.9.100) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/dd5df7d614
2024-08-05[rubygems/rubygems] Bump rb-sysdependabot[bot]
Bumps [rb-sys](https://github.com/oxidize-rb/rb-sys) from 0.9.98 to 0.9.100. - [Release notes](https://github.com/oxidize-rb/rb-sys/releases) - [Commits](https://github.com/oxidize-rb/rb-sys/compare/v0.9.98...v0.9.100) --- updated-dependencies: - dependency-name: rb-sys dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> https://github.com/rubygems/rubygems/commit/6f05927746
2024-07-30[rubygems/rubygems] Fix `gem list` regression when a regular gem shadows a ↵David Rodríguez
default one Previously, if you have bundler installed both as a regular gem and a default gem, the default gem would be displayed by `gem list`. https://github.com/rubygems/rubygems/commit/10a6b1736e