summaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2024-07-18Require space between hash/content in ATX heading (#1140)Hartley McGuire
While writing some Markdown documentation for Rails, I came across an interesting case where trying to link to an instance method at the start of a line would instead parse as an H1 heading: ```markdown #response_body= ``` Expected: ```html <a href=""><code>#response_body=</code></a> ``` Actual: ```html <h1>response_body=</h1> ``` According to the CommonMark spec: > At least one space or tab is required between the # characters and the > heading’s contents, unless the heading is empty. Note that many > implementations currently do not require the space. However, the space > was required by the original ATX implementation, and it helps prevent > things like the following from being parsed as headings: > > Example 64 So while some implementations do not follow this requirement, I believe RDoc should because it makes it easy to write text similar to Example 64 (which was used in the new test) and it also enables automatically linking to instance methods at the start of a line.
2024-07-17[ruby/rdoc] Improve rubocop setupStan Lo
(https://github.com/ruby/rdoc/pull/1139) * Rename rake rubocop to rake format_generated_files * Add rubocop rules to ensure spaces are applied consistently * Improve rubocop related CI workflows https://github.com/ruby/rdoc/commit/27932d001c
2024-07-17[rubygems/rubygems] Fix another case of `bundle lock --add-platform` doing ↵David Rodríguez
nothing https://github.com/rubygems/rubygems/commit/0629e27dda
2024-07-16[ruby/irb] Group class methods under `class << self`Stan Lo
(https://github.com/ruby/irb/pull/981) https://github.com/ruby/irb/commit/cdaa356df2
2024-07-16[ruby/rdoc] Drop reimplementation of Ripper lex statenicholas a. evans
(https://github.com/ruby/rdoc/pull/1118) * Drop reimplementation of Ripper lex state This code was for ruby 2.4 compatibility, but rdoc dropped support for ruby 2.4 about three years ago, in f480b970c. This code was almost half of the lines of code in rdoc/parser/ripper_state_lex. * Remove unused Ripper constants and const_defined? This was mostly copied from the diff in @st0012's PR comment. The remaining constants have been updated to get their value directly from Ripper. Co-authored-by: Stan Lo <[email protected]> * Use Ripper::EXPR_LABEL directly Since this is only used from outside RipperStateLex, there's no longer any benefit to using the indirect reference rather than just going straight to Ripper. --------- https://github.com/ruby/rdoc/commit/dd8c216263 Co-authored-by: Stan Lo <[email protected]>
2024-07-12[ruby/reline] Fix rendering bug of nomultiline prompttomoya ishida
(https://github.com/ruby/reline/pull/730) Fix bug of `print('a'*10); Reline.readline('>')` wrong rendering https://github.com/ruby/reline/commit/c0469a12b9
2024-07-11[ruby/prism] (ruby_parser) Handle bare string in implicit concatKevin Newton
https://github.com/ruby/prism/commit/afc7c9344a
2024-07-11[ruby/prism] (ruby_parser) Match match3 nodes for regular expressionsKevin Newton
https://github.com/ruby/prism/commit/47cb73ce69
2024-07-11[ruby/prism] (ruby_parser) Reverse associativity of and and or nodesKevin Newton
https://github.com/ruby/prism/commit/073e8ba307
2024-07-11[PRISM] Use node ids for error highlightKevin Newton
2024-07-11[ruby/prism] Various cleanup for initializers and typechecksKevin Newton
https://github.com/ruby/prism/commit/86cf82794a
2024-07-11[ruby/prism] Add node ids to nodesKevin Newton
https://github.com/ruby/prism/commit/bf16ade7f9
2024-07-11[ruby/prism] Move Node#type and Node::type documentationKevin Newton
https://github.com/ruby/prism/commit/08a71f6259
2024-07-11[ruby/prism] Expose flags on every node typeKevin Newton
https://github.com/ruby/prism/commit/9f12a56fd6
2024-07-11[ruby/prism] Move location to second position for node initializersKevin Newton
https://github.com/ruby/prism/commit/4cc0eda4ca
2024-07-11[ruby/prism] Reconfigure error testsKevin Newton
https://github.com/ruby/prism/commit/fb7e1ebb7f
2024-07-11[ruby/logger] Add reraise_write_errors keyword argument to Logger and LogDeviceJeremy Evans
This allows the user to specify exception classes to treat as regular exceptions instead of being swallowed. Among other things, it is useful for having Logger work with Timeout. Fixes Ruby Bug 9115. https://github.com/ruby/logger/commit/436a7d680f
2024-07-11[ruby/open-uri] document max_redirects optionJoão Pinheiro
https://github.com/ruby/open-uri/commit/4a247e5ca1
2024-07-11[ruby/open-uri] apply default max_redirectsJoão Pinheiro
https://github.com/ruby/open-uri/commit/5d29e626bc
2024-07-11[rubygems/rubygems] fix s3 source configuration issueDmitriy Ivliev
https://github.com/rubygems/rubygems/commit/356726bd1a
2024-07-11[ruby/net-http] implement talking SSL to the proxy tooEvgeni Golov
https://bugs.ruby-lang.org/issues/16482 https://github.com/ruby/net-http/commit/ae2d83f88b
2024-07-11[ruby/net-http] Add ability to configure default settings for new connectionsfatkodima
https://github.com/ruby/net-http/commit/fed3dcd0c2
2024-07-11[ruby/net-http] net/http.rb - derive SSL_IVNAMES from SSL_ATTRIBUTESMSP-Greg
https://github.com/ruby/net-http/commit/7191bb923b
2024-07-10[rubygems/rubygems] Fix another strange error when running `bundle add` in ↵David Rodríguez
frozen mode If there's a lockfile, but it's out of sync with the Gemfile because a dependency has been deleted, and frozen mode is set, Bundler will print the following strange error: ``` $ bundle add rake , but the lockfile can't be updated because frozen mode is set You have deleted from the Gemfile: * rake (~> 13.2) Run `bundle install` elsewhere and add the updated Gemfile to version control. ``` This commit changes the error to: ``` Some dependencies were deleted from your gemfile, but the lockfile can't be updated because frozen mode is set You have deleted from the Gemfile: * rake (~> 13.2) Run `bundle install` elsewhere and add the updated Gemfile to version control. ``` https://github.com/rubygems/rubygems/commit/452da4048d
2024-07-10[rubygems/rubygems] Fix strange error when running `bundle add` with frozen ↵David Rodríguez
mode set If Gemfile is empty and there's no lockfile (situation after `bundle init`), and `frozen` is configured, running `bundle add` will result in an strange error, like this: ``` $ bundle add rake , but the lockfile can't be updated because frozen mode is set You have deleted from the Gemfile: * rake (~> 13.2) Run `bundle install` elsewhere and add the updated Gemfile to version control. ``` This commit fixes the problem to instead print https://github.com/rubygems/rubygems/commit/152331a9dc
2024-07-09[rubygems/rubygems] Fix generic platform gems getting incorrectly removed ↵David Rodríguez
when locked for a specific platform If they are already in the lockfile as the most specific variant for a platform, we shouldn't change that unless explicitly unlocking. https://github.com/rubygems/rubygems/commit/a901660498
2024-07-09[rubygems/rubygems] Refactor selecting specs from a SpecSetDavid Rodríguez
https://github.com/rubygems/rubygems/commit/bcbbff5149
2024-07-09[rubygems/rubygems] Resolve all platforms directlyDavid Rodríguez
Instead of having to do a complete pass after resolve. To do this, we add to the ruby group all the platform specs with the same dependencies as the ruby specs. https://github.com/rubygems/rubygems/commit/e50415f2a6
2024-07-09[rubygems/rubygems] Don't memoize sorted_spec_namesDavid Rodríguez
It's just for debugging and a simple method, so no need. https://github.com/rubygems/rubygems/commit/3230425a9a
2024-07-09[rubygems/rubygems] Instantiate `Resolver::SpecGroup` with explicit priorityDavid Rodríguez
https://github.com/rubygems/rubygems/commit/e2c1bc1b6c
2024-07-09[rubygems/rubygems] Let resolver consider unique specs from the beginningDavid Rodríguez
It results in more consistent error messages. https://github.com/rubygems/rubygems/commit/a4b34361cc
2024-07-08[rubygems/rubygems] Fix wrong version is commentDavid Rodríguez
This RubyGems feature is being released as 3.5.15, so we can stop monkeypatching RubyGems once support for the previous version is dropped. https://github.com/rubygems/rubygems/commit/36f146840d
2024-07-08[rubygems/rubygems] Backport binstub race condition fix to BundlerDavid Rodríguez
https://github.com/rubygems/rubygems/commit/b07e46820d
2024-07-08[rubygems/rubygems] Fix another race conditionDavid Rodríguez
We also need to protect prior removal of the binstub, otherwise it can happen that: * Process A removes prior binstub FOO. * Process B removes prior binstub FOO (does nothing actually because Process A already removed it). * Process A writes binstub FOO for gem BAR from the beginning of file. * Process B writes binstub FOO for gem BAZ from the beginning of file. Similarly as before, if binstub FOO for gem BAR is bigger that binstub FOO for gem BAZ, garbage bytes will be left around at the end of the file, corrupting the binstub. The solution is to also protect removal of the previous binstub. To do this, we use a file lock on an explicit `.lock` file. https://github.com/rubygems/rubygems/commit/d99a80e62d
2024-07-08[rubygems/rubygems] Properly protect writing binstubs with a file lockDavid Rodríguez
There's an issue when multiple processes try to write the same binstub. The problem is that our file locking mechanism is incorrect because files are truncated _before_ they are locked. So it can happen that: * Process A truncates binstub FOO. * Process B truncates binstub FOO. * Process A writes binstub FOO for gem BAR from the beginning of file. * Process B writes binstub FOO for gem BAZ from the beginning of file. If binstub FOO for gem BAR is bigger than binstub FOO for gem BAZ, then some bytes will be left around at the end of the binstub, making it corrupt. This was not a problem in our specs until the spec testing binstubs with the same name coming from different gems changed from using gems named "fake" and "rack" to using gems named "fake" and "myrack". Because of the difference in gem name length, the generated binstub for gem "myrack" is now longer, causing the above problem if binstub for gem myrack is written first. The solution is to make sure when using flock to always use modes that DON'T truncate the file when opening it. So, we use `r+` if the file exists previously (it requires the file to exist previously), otherwise we use `a+`. https://github.com/rubygems/rubygems/commit/ce8bcba90f
2024-07-08[rubygems/rubygems] Scope rescuing `Errno::ENOLCK` to just `File.open`David Rodríguez
https://github.com/rubygems/rubygems/commit/2a9d347d29
2024-07-08[rubygems/rubygems] Add missing blank line after method documentationDavid Rodríguez
https://github.com/rubygems/rubygems/commit/2df7560ade
2024-07-08[rubygems/rubygems] Remove unnecessary FileUtils usageDavid Rodríguez
All other `chmod` usages in the file use `File.chmod`, so keep it consistent. https://github.com/rubygems/rubygems/commit/3dc0cf8703
2024-07-06[ruby/irb] Bump version to v1.14.0Stan Lo
(https://github.com/ruby/irb/pull/980) https://github.com/ruby/irb/commit/6a9e129714
2024-07-05[ruby/irb] Return only commands when completing help command'sStan Lo
argument (https://github.com/ruby/irb/pull/973) The command only takes command names as arguments, so we should only return command names as candidates. This will help users find a command faster as completion will be another useful hint too. https://github.com/ruby/irb/commit/7b6557cc24
2024-07-05[rubygems/rubygems] Restrict generic `arm` to only match 32-bit armなつき
https://github.com/rubygems/rubygems/commit/14c4c16e96
2024-07-03[ruby/irb] Introduce cd commandStan Lo
(https://github.com/ruby/irb/pull/971) It's essentially a combination of pushws and popws commands that are easier to use. Help message: ``` Usage: cd ([target]|..) IRB uses a stack of workspaces to keep track of context(s), with `pushws` and `popws` commands to manipulate the stack. The `cd` command is an attempt to simplify the operation and will be subject to change. When given: - an object, cd will use that object as the new context by pushing it onto the workspace stack. - "..", cd will leave the current context by popping the top workspace off the stack. - no arguments, cd will move to the top workspace on the stack by popping off all workspaces. Examples: cd Foo cd Foo.new cd @ivar cd .. cd ``` https://github.com/ruby/irb/commit/4a0e0e89b7
2024-07-03[ruby/shellwords] [DOC] Beautify links and formatsNobuyoshi Nakada
https://github.com/ruby/shellwords/commit/53e6ef2e71
2024-07-03[ruby/shellwords] Satisfy `rdoc -C`Nobuyoshi Nakada
https://github.com/ruby/shellwords/commit/fa50d40a33
2024-07-03[ruby/shellwords] Exclude unnecessary files from the packagesNobuyoshi Nakada
https://github.com/ruby/shellwords/commit/08c87a964e
2024-07-02[rubygems/rubygems] Only allow valid values for --test, --ci, and --linter ↵Jerome Dalbert
options https://github.com/rubygems/rubygems/commit/d4360c9032
2024-07-02[rubygems/rubygems] Only remove current platform when added right before ↵David Rodríguez
resolution If it has been explicitly added by `bundle lock --add-platform`, we don't want to remove it. https://github.com/rubygems/rubygems/commit/09cf921dd6
2024-07-02[rubygems/rubygems] Refactor previous fix a bitDavid Rodríguez
https://github.com/rubygems/rubygems/commit/1c80c6072f
2024-07-02[rubygems/rubygems] Feature add_dependency more prominentlyJerome Dalbert
https://github.com/rubygems/rubygems/commit/0236cb6191
2024-07-02[ruby/rdoc] Group code object files into the same directoryStan Lo
(https://github.com/ruby/rdoc/pull/1114) It's hard to distinguish code object classes by their file names alone. And given that we have 18 such classes, it'd make the codebase a lot easier to understand if we grouped them into a single directory. Given that these classes are all autoloaded in `lib/rdoc.rb` instead of required individually, this change should have minimum impact on projects using RDoc as they generally just require `rdoc`, not individual files. An example is Rails' `sdoc`: https://github.com/rails/sdoc/blob/main/lib/sdoc/rdoc_monkey_patches.rb https://github.com/ruby/rdoc/commit/4211292ffe