History

May 16, 2025 ยท View on GitHub

This document will become out-of-date quickly, but remains historically relevant until such time as this gem is released with support for non-EOL Ruby only.

faraday v0.17.3 is the first version that stops using &Proc.new for block forwarding, and thus is the oldest version oauth2 is compatible with.

gem "faraday", [">= 0.17.3", "< 3.0"]

Ruby

We use the Github Action ruby/setup-ruby@master to install Ruby, and it has a matrix of supported versions (copied below).

InterpreterVersions
ruby1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.1.1, head, debug, mingw, mswin
jruby9.1.17.0 - 9.3.3.0, head
truffleruby19.3.0 - 22.0.0, head
truffleruby+graalvm21.2.0 - 22.0.0, head

In the naming of gemfiles, we will use the below shorthand for interpreter, and version. Platforms will be represented without modification.

InterpreterShorthand
rubyr
jrubyjr
trufflerubytr
truffleruby+graalvmtrg

Building onto that, we can add the MRI target spec, since that's what all Rubygems use for minimum version compatibility.

Interpreter + VersionMRI specShorthand
ruby-1.9.31.9r1_9
ruby-2.0.02.0r2_0
ruby-2.1.92.1r2_1
ruby-2.2.x2.2r2_2
ruby-2.3.x2.3r2_3
ruby-2.4.x2.4r2_4
ruby-2.5.x2.5r2_5
ruby-2.6.x2.6r2_6
ruby-2.7.x2.7r2_7
ruby-3.0.x3.0r3_0
ruby-3.1.x3.1r3_1
ruby-head3.2rH3_2
ruby-mingw(?)rmin
ruby-mswin(?)rMS
jruby-9.1.x.x2.3jr9_1-r2_3
jruby-9.2.x.x2.5jr9_2-r2_5
jruby-9.3.x.x2.6jr9_3-r2_6
jruby-head2.7jrH-r2_7
truffleruby-19.3.x2.5(?)tr19-r2_5
truffleruby-20.x.x2.6.5tr20-r2_6
truffleruby-21.x.x2.7.4tr21-r2_7
truffleruby-22.x.x3.0.2tr22-r3_0
truffleruby-head3.1(?)trH-r3_1
truffleruby+graalvm-21.2.x2.7.4trg21-r2_7
truffleruby+graalvm-22.x.x3.0.2trg22-r3_0
truffleruby+graalvm-head3.1(?)trgH-r3_1

We will run tests on as many of these as possible, in a matrix with each supported major version of faraday, which means 0.17.3+ (as f0), 1.10.x (as f1), 2.2.x (as f2).

Discrete versions of faraday to test against, as of 2025.05.14, with minimum version of Ruby for each:

  • 2.9.0, Ruby >= 3.0
  • 2.2.0, Ruby >= 2.6
  • 1.10.0, Ruby >= 2.4
  • 0.17.4, Ruby >= 1.9

โŒ - Incompatible โœ… - Official Support ๐Ÿšง - Unofficial Support ๐Ÿคก - Incidental Compatibility ๐Ÿ™ˆ - Unknown Compatibility

Shorthandf0 - 0.17.3+f1 - 1.10.xf2 - 2.2.x
r1_9๐Ÿคก f0-r1_9โŒโŒ
r2_0๐Ÿคก f0-r2_0โŒโŒ
r2_1๐Ÿคก f0-r2_1โŒโŒ
r2_2๐Ÿคก f0-r2_2โŒโŒ
r2_3๐Ÿšง f0-r2_3โŒโŒ
r2_4๐Ÿšง f0-r2_4๐Ÿšง f1-r2_4โŒ
r2_5๐Ÿšง f0-r2_5๐Ÿšง f1-r2_5โŒ
r2_6๐Ÿšง f0-r2_6๐Ÿšง f1-r2_6๐Ÿšง f2-r2_6
r2_7โœ… f0-r2_7โœ… f1-r2_7โœ… f2-r2_7
r3_0โœ… f0-r3_0โœ… f1-r3_0โœ… f2-r3_0
r3_1โœ… f0-r3_1โœ… f1-r3_1โœ… f2-r3_1
rH3_2๐Ÿšง f0-rH3_2๐Ÿšง f1-rH3_2๐Ÿšง f2-rH3_2
rmin๐Ÿ™ˆ f0-rmin๐Ÿ™ˆ f1-rmin๐Ÿ™ˆ f2-rmin
rMS๐Ÿ™ˆ f0-rMS๐Ÿ™ˆ f1-rMS๐Ÿ™ˆ f2-rMS
jr9_1-r2_3๐Ÿšง f0-jr9_1-r2_3โŒโŒ
jr9_2-r2_5๐Ÿšง f0-jr9_2-r2_5๐Ÿšง f1-jr9_2-r2_5โŒ
jr9_3-r2_6โœ… f0-jr9_3-r2_6โœ… f1-jr9_3-r2_6โœ… f2-jr9_3-r2_6
jrH-r2_7๐Ÿšง f0-jrH-r2_7๐Ÿšง f1-jrH-r2_7๐Ÿšง f2-jrH-r2_7
tr19-r2_5๐Ÿšง f0-tr19-r2_5๐Ÿšง f1-tr19-r2_5โŒ
tr20-r2_6๐Ÿšง f0-tr20-r2_6๐Ÿšง f1-tr20-r2_6๐Ÿšง f2-tr20-r2_6
tr21-r2_7โœ… f0-tr21-r2_7โœ… f1-tr21-r2_7โœ… f2-tr21-r2_7
tr22-r3_0โœ… f0-tr22-r3_0โœ… f1-tr22-r3_0โœ… f2-tr22-r3_0
trH-r3_1๐Ÿšง f0-trH-r3_1๐Ÿšง f1-trH-r3_1๐Ÿšง f2-trH-r3_1
trg21-r2_7โœ… f0-trg21-r2_7โœ… f1-trg21-r2_7โœ… f2-trg21-r2_7
trg22-r3_0โœ… f0-trg22-r3_0โœ… f1-trg22-r3_0โœ… f2-trg22-r3_0
trgH-r3_1๐Ÿšง f0-trgH-r3_1๐Ÿšง f1-trgH-r3_1๐Ÿšง f2-trgH-r3_1