Rails gems updaten

Zo vroeg en vaak mogelijk

  • continu nieuwe updates
  • kwetsbaarheden, bugs of verouderde features
  • Rails upgraden is gemakkelijker
  • compatibility en deprecation warnings
  • vaker updaten kost minder tijd

Tools/gems

  • Gemnasium
  • bundler
  • bundler-audit
  • bummr

Gemnasium

  • houdt dependencies in de gaten
  • notificaties van updates en gevaarlijke dependencies
  • automatisch updaten
  • alle dependencies in één overzicht
  • betaald

Bundler

  • bundle update of gem update kan risicovol zijn

  • alle nieuwste versies ophalen, zonder de effecten te weten
  • welke gem is de oorzaak?
  • bundle outdated
  • één voor één gems updaten, tests draaien, committen (bummer)
  • https://isitvulnerable.com/

Bundler

  • nieuwe CLI opties sinds 1.14

  • aangeven naar welke versies bundle update zal updaten

  • niet teveel versies vooruit springen

  • niet meer gems updaten dan gevraagd

Bundler

  • bij bundle update/outdated aangeven welke versie de voorkeur heeft
  • --patch, --minor, --major
  • niet bindend
  • onverwachte versies
  • --strict optie
  • '~> 1.0' == --minor --strict
  • bundler-patch voor oudere bundler versies
  • --conservative update geen shared dependencies (versienummers in gemfile)
  • --source

bundler-audit

  • gem die checkt voor gem versies met security issues
  • onveilige gem sources (http://)
  • laat ook advies zien
  • ruby-advisory-db

 

$ bundle audit
Name: actionpack
Version: 3.2.10
Advisory: OSVDB-91452
Criticality: Medium
URL: http://www.osvdb.org/show/osvdb/91452
Title: XSS vulnerability in sanitize_css in Action Pack
Solution: upgrade to ~> 2.3.18, ~> 3.1.12, >= 3.2.13

bummr

  • gem één voor één updaten; committen
  • tijdrovend, maar betrouwbaarder
  • bummr update gems automatisch in losse commits
  • logt informatie van falende builds en verwijdert deze commits, totdat de build slaagt
  • standaard branch is master

updaten maar