Giter Club home page Giter Club logo

ruby-changelog's Introduction

Ruby versions changelog

Intro

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

This page was last updated on 2024-07-06 via rake readme task

Ruby changelog

Ruby 3.3

  • ๐Ÿ”’ EOL 2027-03-31
  • Implementations: MRI 3.3.3
  • โš™๏ธ Introduced Prism parser as a default gem
  • โš™๏ธ Lrama replaces Bison as parser generator
  • โš™๏ธ Major YJIT performance improvements, introduction of RJIT
  • โš™๏ธ Introduction of M:N thread scheduler
  • โš™๏ธ Several performance improvements in the Garbage Collector
  • โš™๏ธ Enhancements in IRB: advanced irb:rdbg integration; pager support

Ruby 3.2

  • ๐Ÿ”’ EOL 2026-03-31
  • Implementations: MRI 3.2.4
  • โš™๏ธ 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.6
  • ๐Ÿ†• 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
  • โš™๏ธ YJIT: New experimental in-process JIT compiler ๐Ÿงช

Ruby 3.0

  • ๐Ÿ”’ EOL 2024-04-23
  • Implementations: MRI 3.0.7
  • ๐Ÿ†• 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
  • โš™๏ธ MJIT improvements

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

ruby-changelog's People

Contributors

dependabot[bot] avatar kowal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

ruby-changelog's Issues

Update and maybe auto update ?

Hey,

I've tried updating the content by running every tasks, but it did not give me much: https://github.com/BuonOmo/ruby-changelog

Are you aware of a change that may make this codebase not working anymore?

Also, don't you think it would be a great idea to have some kind of monthly autoupdate of this site ? I could work on that bit

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.