Skip to content

Instantly share code, notes, and snippets.

View e2's full-sized avatar

Cezary Baginski e2

View GitHub Profile
@e2
e2 / stopping_backward_compatibility_madness.md
Last active April 8, 2020 05:30
How to stop the "Backward Compatibility Cult" before it kills Ruby.

How to stop the "Backward Compatibility Cult" before it kills Ruby.

  1. It's irresponsible to support Ruby < 2.2. A Ruby version is not "supported" if it's only getting security fixes. Because "support" means fixing bugs. And any Ruby version < 2.2 is rife with "never-to-be-fixed" bugs that can occur at any time. A minor OS upgrade, a minor gem upgrade ... and suddenly a new (or old) bug is triggered and Ruby crashes every time. At this point, the user may be forced to upgrade (at the most inconvenient time possible). The only other option is for everyone to implement some obscure workaround to side-step the bug in their outdated Ruby version. Ridiculous effort and costs just to keep a likely vulnerable (and definitely broken - even if it "works") version of Ruby around.

  2. Ruby 2.2.4 fixes an important vulnerability. There is a patch-level version of Ruby 2.0 (patch-level in code terms, not SemVer) and a minor of Ruby 2.1.9 to solve t

@e2
e2 / generate_relish_nav.rb
Created June 6, 2016 00:10
Create a Relish .nav file from a directory of *.feature files
require 'gherkin/parser'
require 'gherkin/pickles/compiler'
module RelishNav
class Collector
def initialize(feature_dir)
@feature_dir = feature_dir
@parser = Gherkin::Parser.new
end