summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2021-11-30[rubygems/rubygems] Fix race condition when reading & writing gemspecs ↵David Rodríguez
concurrently When bundler parallel installer installs gems concurrently, one can get confusing warnings like the following: ``` "[/home/runner/work/rubygems/rubygems/bundler/tmp/2/gems/system/specifications/zeitwerk-2.4.2.gemspec] isn't a Gem::Specification (NilClass instead). ``` I've got these warnings several times in the past, but I never managed to reproduce them, and never look deeply into the root cause, but this time a got a cause that reproduced quite frequently, so I looked into it. The problem is one thread reading a gemspec while another thread is writing it. The write of the gemspec was not protected, so `Gem::Specification.load` could end up seeing a truncated gemspec and thus throw this warning. The fix involve two changes: * Change the methods that write gemspecs to use `Gem.binary_write` which is protected by a lock. * Fix `Gem.binary_write` to create the file lock at file creation time, not when the file already exists after. The realworld user problem caused by this issue happens in bundler, but I'm fixing it in rubygems first, and then I'll backport to bundler whatever needs backporting to fix the issue on the bundler side. https://github.com/rubygems/rubygems/commit/a672e7555c
2021-11-30[rubygems/rubygems] Revert "Remove spec file before building"David Rodríguez
This reverts commit af604436d8141c34cb2e1e645b9b0d47bfd55a55. The issue that led to introducing it was never reproduced. I tried to repro with this patch and it still works just fine. Since this removal is getting in the middle for some race conditions I'm facing, I'm reverting the patch. https://github.com/rubygems/rubygems/commit/2dd267f0e4
2021-11-30[ruby/error_highlight] Ignore all syscall errorsYusuke Endoh
At least, Error::ENOTSUP may be raised on some extreme environments https://github.com/ruby/error_highlight/commit/2787983ff7
2021-11-30lib/pp.rb (width_for): Ignore all syscall errorsYusuke Endoh
According to nobu, Errno::EBAD is raised on Windows.
2021-11-30lib/pp.rb (width_for): ignore Errno::EINVALYusuke Endoh
The error is raised on Solaris http://rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20211130T030003Z.fail.html.gz ``` 1) Failure: TestRubyOptions#test_require [/export/home/users/chkbuild/cb-gcc/tmp/build/20211130T030003Z/ruby/test/ruby/test_rubyoptions.rb:265]: pid 7386 exit 1 | /export/home/users/chkbuild/cb-gcc/tmp/build/20211130T030003Z/ruby/lib/pp.rb:67:in `winsize': Invalid argument - <STDOUT> (Errno::EINVAL) ```
2021-11-30lib/pp.rb (PP.pp): Use io/console's winsize by defaultYusuke Endoh
[Feature #12913]
2021-11-30[rubygems/rubygems] Fix escape of filenames in `bundle doctor`ooooooo-q
https://github.com/rubygems/rubygems/commit/3ede1435ea
2021-11-29[rubygems/rubygems] Deprecate typo nameNobuyoshi Nakada
https://github.com/rubygems/rubygems/commit/62d54cbf08
2021-11-29[ruby/readline] Suppress constant redefinition warningNobuyoshi Nakada
When already set by `use_lib_reline` in test/readline/helper.rb of readline-ext. https://github.com/ruby/readline/commit/0e3ca3b217
2021-11-28[ruby/ostruct] [DOC] Fix code markups [ci skip]Nobuyoshi Nakada
Backquotes are not special characters in RDoc. https://github.com/ruby/ostruct/commit/a901df26b9
2021-11-27[ruby/cgi] Exclude unused files from built packageNobuyoshi Nakada
https://github.com/ruby/cgi/commit/e840b6c368
2021-11-27[ruby/cgi] Set extconf.rb to extensionsNobuyoshi Nakada
Fix https://github.com/ruby/cgi/pull/11 https://github.com/ruby/cgi/commit/60d8f5e7d9
2021-11-27[rubygems/rubygems] Fix missing locked specs when depended on other platformDavid Rodríguez
https://github.com/rubygems/rubygems/commit/0396e899db
2021-11-26mkmf: take `PKG_CONFIG_PATH` from `dir_config` library pathNobuyoshi Nakada
So that version dependent pkg-config files can override files in the default locations. Notes: Merged: https://github.com/ruby/ruby/pull/5182
2021-11-26mkmf: deal with environment variables in MakeMakefile#xpopenNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5182
2021-11-26mkmf: MakeMakefile#xpopen may be passed an option hashNobuyoshi Nakada
Notes: Merged: https://github.com/ruby/ruby/pull/5182
2021-11-26[rubygems/rubygems] Fix `bundle info` sometimes claiming that bundler has ↵David Rodríguez
been deleted https://github.com/rubygems/rubygems/commit/fe1a31db31
2021-11-25[rubygems/rubygems] Don't replace ENV twice on non Windows platformsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/8dc86b7096
2021-11-24[ruby/cgi] Bump versionYusuke Endoh
https://github.com/ruby/cgi/commit/c9c800715e
2021-11-24[ruby/cgi] When parsing cookies, only decode the valuesNobuyoshi Nakada
https://github.com/ruby/cgi/commit/052eb3a828
2021-11-22[rubygems/rubygems] Clarify `bundle viz` deprecationDavid Rodríguez
https://github.com/rubygems/rubygems/commit/7f22fe56b3
2021-11-21[ruby/reline] Correct padding space calculationima1zumi
fix https://github.com/ruby/irb/issues/308 This bug occurred when `dialog.width - calculate_width(s, true)` was negative. When `dialog.width` is shorter than `old_dialog.width`, it calculates how much padding it has to do. However, there are cases where `s` is longer than `dialog.width`, as in the issue. In that case, `padding_space_with_escape_sequences` will crash. Here, `old_dialog.width` is longer than `dialog.width`, so I changed the padding width to `old_dialog.width - dialog.width`. https://github.com/ruby/reline/commit/c581c31e0f
2021-11-19Do not document vendored files [ci skip]Nobuyoshi Nakada
Just duplications.
2021-11-19[rubygems/rubygems] Previous logic can mostly go nowDavid Rodríguez
https://github.com/rubygems/rubygems/commit/3241b34055
2021-11-19[rubygems/rubygems] Allow `bundle update` to downgrade gems by changing the ↵David Rodríguez
Gemfile https://github.com/rubygems/rubygems/commit/6a19cca7e5
2021-11-19[rubygems/rubygems] Extract a converge_specs method for later reusing itDavid Rodríguez
https://github.com/rubygems/rubygems/commit/e896e63ac3
2021-11-19[rubygems/rubygems] Avoid unnecessary loopDavid Rodríguez
https://github.com/rubygems/rubygems/commit/afaf868b68
2021-11-18[rubygems/rubygems] Protect specs access at a finer levelDavid Rodríguez
https://github.com/rubygems/rubygems/commit/c8cc053bde
2021-11-18[rubygems/rubygems] Stop using a constant for something not constantDavid Rodríguez
https://github.com/rubygems/rubygems/commit/5cb0b9d9b8
2021-11-18[rubygems/rubygems] Extract a helper method to reset specsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/662de0c990
2021-11-18[rubygems/rubygems] Make clearing loaded spec cache really privateDavid Rodríguez
https://github.com/rubygems/rubygems/commit/19f117652b
2021-11-18[rubygems/rubygems] We can now use standard memoizationDavid Rodríguez
https://github.com/rubygems/rubygems/commit/231be44d38
2021-11-18[rubygems/rubygems] Easier preservation of activated specsDavid Rodríguez
https://github.com/rubygems/rubygems/commit/54e923ffc2
2021-11-18[rubygems/rubygems] Set `@@all` variable at class definition timeDavid Rodríguez
To spare the `defined?` check. https://github.com/rubygems/rubygems/commit/64d27bba01
2021-11-17[ruby/net-http] gemspec: Drop unused directive "executables"Olle Jonsson
This gem exposes no executable files. https://github.com/ruby/net-http/commit/3b3743f6ce
2021-11-16[ruby/ipaddr] Bump version to 1.2.3Akinori MUSHA
https://github.com/ruby/ipaddr/commit/37007e7812
2021-11-16[ruby/net-protocol] Update the required ruby versionNobuyoshi Nakada
https://github.com/ruby/net-protocol/commit/d4982420e6
2021-11-16[ruby/set] Bump the version to 1.0.2Akinori MUSHA
https://github.com/ruby/set/commit/db2ebc946d
2021-11-16Merge the master branch of rubygems repoHiroshi SHIBATA
Picked from https://github.com/rubygems/rubygems/commit/4b498709a015a94e14a3852a1841a7a3e669133d
2021-11-11[ruby/net-http] Send Accept-Encoding header on HEAD methodShohei Maeda
https://github.com/ruby/net-http/commit/9d95c5e3e6
2021-11-11[ruby/tmpdir] [DOC] Fix syntax in example code [ci skip]Nobuyoshi Nakada
RDoc expects example code to be valid syntax. https://github.com/ruby/tmpdir/commit/ee42540ebb
2021-11-09[rubygems/rubygems] Use `shellsplit` instead of array of stringsNicholas Lee
Previously, the command string to be used for the shell command was first generated and then split using shellsplit. This change reverts the current behavior as it breaks if the value of remote contains a space. https://github.com/rubygems/rubygems/commit/6649ee10b0
2021-11-08[rubygems/rubygems] Use bundler-graph instead of bundler-vizHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/a54cca13db
2021-11-06[rubygems/rubygems] GNU Make needs DESTDIR on Windows environment like msys ↵Hiroshi SHIBATA
or mingw https://github.com/rubygems/rubygems/commit/7fd987d30d
2021-11-06[rubygems/rubygems] Fix urlharuuzion
https://github.com/rubygems/rubygems/commit/6a5a80eff7
2021-11-05[rubygems/rubygems] Fix `ruby setup.rb` command when `--prefix` is passedDavid Rodríguez
https://github.com/rubygems/rubygems/commit/8d04092f6e
2021-11-05[rubygems/rubygems] Remove unnecessarily changing GEM_HOMEDavid Rodríguez
At this point gem paths are already loaded and memoize. Changing `GEM_HOME` has no effect. https://github.com/rubygems/rubygems/commit/a1f62f0939
2021-11-05[rubygems/rubygems] Remove unnecessary loopDavid Rodríguez
Rubygems installs a single executable. Make that explicit. https://github.com/rubygems/rubygems/commit/2839d15521
2021-11-05[rubygems/rubygems] Explicitly ignored empty value for DESTDIRHiroshi SHIBATA
https://github.com/rubygems/rubygems/commit/69dcc02553
2021-11-05[rubygems/rubygems] Skip to set DESTDIR option when it's not provided for ↵Hiroshi SHIBATA
mswin platform https://github.com/rubygems/rubygems/commit/b93546c8d8