kowal / ruby-changelog

Ruby CHANGELOG

Home Page:https://rubychangelog.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ruby versions changelog

Intro

See full version of this project on https://rubychangelog.com/

This page was last updated on 2024-01-09 via rake readme task

Ruby changelog

Ruby 3.3

  • πŸ”’ EOL 2027-03-31
  • Implementations: MRI 3.3.0
  • βš™οΈ Introduced Prism parser as a default gem, replacing Ripper
  • βš™οΈ Lrama replaces Bison as parser generator
  • βš™οΈ Major YJIT performance improvements and introduction of RJIT, a pure-Ruby JIT compiler
  • βš™οΈ Introduction of M:N thread scheduler for efficient thread management
  • βš™οΈ Several performance improvements in the Garbage Collector
  • βš™οΈ Enhancements in IRB including advanced irb:rdbg integration and pager support

Ruby 3.2

  • πŸ”’ EOL 2026-03-31
  • Implementations: MRI 3.2.2
  • βš™οΈ WASI based WebAssembly support
  • βš™οΈ Production-ready YJIT
  • βš™οΈ Regexp improvements against ReDoS
  • βš™οΈ IRB improvements (SyntaxSuggest, ErrorHighlight)
  • βš™οΈ Bundler 2.4 now uses PubGrub resolver instead of Molinillo

Ruby 3.1

  • πŸ”’ EOL 2025-03-31
  • Implementations: MRI 3.1.4
  • βš™οΈ YJIT: New experimental in-process JIT compiler πŸ§ͺ
  • πŸ†• debug gem: A new debugger
  • πŸ†• error_highlight: Fine-grained error location in backtrace
  • πŸ†• IRB Autocomplete and Documentation Display
  • πŸ”„ Values in Hash literals and keyword arguments can be omitted.
  • πŸ”„ Updates in RBS / TypeProf

Ruby 3.0

  • πŸ”’ EOL 2024-03-31
  • Implementations: MRI 3.0.6
  • βš™οΈ MJIT improvements
  • πŸ†• Ractor - Actor-model like concurrent abstraction πŸ§ͺ
  • πŸ†• Fiber Scheduler for light-weight concurrency πŸ§ͺ
  • πŸ†• RBS - a language to describe the structure of Ruby classes
  • πŸ†• TypeProf - type analysis tool, generates RBS type signatures πŸ§ͺ
  • πŸ†• Hash#except
  • πŸ”„ Keyword arguments are separated from other arguments
  • πŸ”„ Rightward assignment statement
  • πŸ”„ Reversed (again) order of backtrace πŸ§ͺ
  • πŸ”„ Endless method definition def square(x) = x * x

Ruby 2.7

  • πŸ”’ EOL 2023-03-31
  • Implementations: MRI 2.7.7
  • πŸ†• Pattern Matching πŸ§ͺ
  • πŸ”„ REPL improvements
  • πŸ”„ Separation of positional and keyword arguments
  • πŸ”„ Argument forwarding
  • βš™οΈ Compaction GC

Ruby 2.6

  • πŸ”’ EOL 2022-04-13
  • Implementations: MRI 2.6.10
  • πŸ†• endless ranges (1..)
  • πŸ†• Enumerable#chain
  • πŸ†• function composition operators <<, >> to Proc
  • πŸ”„ #then alias for #yield_self
  • βš™οΈ JIT compiler --jit
  • βš™οΈ Bundler is installed as a default gem

Ruby 2.5

  • πŸ”’ EOL 2021-04-06
  • Implementations: MRI 2.5.9, JRuby 9.2.0.0
  • πŸ†• yield_self
  • πŸ†• rescue in blocks
  • πŸ†• Hash#slice and Hash#transform_keys
  • πŸ†• ERB#result_with_hash
  • πŸ”„ New Array aliases - #prepend (#unshift) and #append (#push)
  • πŸ”„ Pattern argument on Enumerable methods
  • πŸ”„ Keyword arguments on Struct.new
  • πŸ”„ Removed Top-level constant lookup
  • πŸ”„ Reverse order of backtrace (oldest call first) πŸ§ͺ

Ruby 2.4

  • πŸ”’ EOL 2020-04-01
  • Implementations: MRI 2.4.10
  • πŸ†• Enumerable#sum
  • πŸ†• Integer#digits
  • πŸ†• Regexp#match?, Regexp#named_captures
  • πŸ”„ New constructor Logger.new(STDOUT, level:, progname:)
  • πŸ”„ Float: #round, #ceil, #floor, and #truncate now accept a precision
  • πŸ—‘οΈ Removed Fixnum and Bignum classes (unified to Integer)

Ruby 2.3

  • πŸ”’ EOL 2019-03-31
  • Implementations: MRI 2.3.8, JRuby 9.1.17.0
  • πŸ†• Safe navigation operator &.
  • πŸ†• Frozen string literals
  • πŸ†• Array#dig
  • πŸ†• Hash#fetch_values, Hash#to_proc, Hash#dig
  • πŸ†• 'Did you mean?'

Ruby 2.2

  • πŸ”’ EOL 2018-03-31
  • πŸ—‘οΈ callcc is obsolete - use Fiber instead
  • πŸ—‘οΈ DL has been removed from stdlib - use Fiddle instead
  • βš™οΈ Incremental GC - fixes performance for 'old' objects
  • βš™οΈ The introduction of GC for symbols (mortal/immortal)

Ruby 2.1

  • πŸ”’ EOL 2017-03-31
  • πŸ†• Refinements
  • πŸ†• Exception#cause - for libraries exceptions
  • πŸ†• Rational and Complex literals
  • πŸ†• Generational GC - young / old objects

Ruby 2.0

  • πŸ”’ EOL 2016-02-24
  • πŸ†• Keyword arguments
  • πŸ†• Module#prepend
  • πŸ†• Enumerator#lazy
  • πŸ†• %i a literal for symbol array

Development

Documentation app

Documentation app is built using mkdocs with mkdocs-material theme.

To rebuild documentation pages from templates/docs/**:

$ rake doc
# Writing to mkdocs-material/docs/versions-latest.md .. Done
# Writing to docs/docs/versions-all.md .. Done
# ...

To start documentation app locally:

$ cd docs
$ mkdocs serve

Open http://localhost:8000/

Deployment

Deployment to github Pages is set up via github actions using mkdocs gh-deploy command.

Readme

To rebuild this README.md from templates/README.md.erb:

$ rake readme
# Writing to README.MD .. Done

$ yield
# =* Yield is serving your markdown at http://localhost:4000/

Open http://localhost:4000/

New Ruby version?

  1. Compare Ruby releases page with ruby_versions.json if there are new Ruby versions.
    • update ruby_versions.json with new versions details
  2. Update latest info about CVE - run rake fetch:cve
  3. Regenerate all artifacts - rake doc readme
  4. Verify - bundle exec yield and on mkdocs
  5. Commit & publish

About

Ruby CHANGELOG

https://rubychangelog.com/

License:MIT License


Languages

Language:HTML 71.5%Language:Ruby 17.8%Language:JavaScript 6.8%Language:CSS 3.9%