Synopsis: Auf dem RailsCamp sprachen wir mit Christoph
@TheDeadSerious Olszowka. Es ging um das Rails Ökosystem und um zwei
etwas bekanntere Projekte von Christoph: The Ruby Toolbox und
simplecov.
Unser Gast (00:00:00)
Wir sitzen im "Hackerzelt" !1!11!
Christoph @TheDeadSerious Olszowka aus Hamburg
The Ruby Toolbox: https://www.ruby-toolbox.com
SimpleCov: https://github.com/colszowka/simplecov
Studiert Informatik und macht Rails in einer Agentur
Blogpost von DHH: http://david.heinemeierhansson.com/2012/rails-is-omakase.html
A Dramatic Reading: http://www.youtube.com/watch?v=E99FnoYqoII
Seit Rails 3.0 ist vieles modularer geworden, einzelne Komponenten werden als Gems bereitgestellt
GitHub ist immer noch auf einer auf Rails 2.3 basierenden Version
Dirk und Basti kennen den Schmerz eine Rails 2.3 App maintainen zu müssen
GitHub Fork von Rails 2.3: https://github.com/github/rails
GitHub's Zwischenfall mit E-Mails verschicken: https://github.com/blog/1440-today-s-email-incident
Rails 2.3 LTS: https://railslts.com
Umstellung von Rails 3.0 auf 3.1 sehr schmerzhaft wegen der Asset Pipeline: http://guides.rubyonrails.org/asset_pipeline.html
Rails 4.0 gibt sehr detaillierte Fehlermeldungen, bei der Migration
Maintenance Policy for Ruby on Rails: http://weblog.rubyonrails.org/2013/2/24/maintenance-policy-for-ruby-on-rails
Ruby Toolbox (00:18:45)
Projekt seit 2009
Kategorisierter Katalog von Gems und anderen Open Source Projekten
Sortierung nach Beliebtheit, viele Metadaten wie Aktualität, letzter Commit auf GitHub
Als eingeloggter User kann man Kategorien hinzufügen, das Repo updaten, etc.
Viele Änderungen müssen von Christoph noch manuell reviewt werden
Basti nutzt die Toolbox regelmäßig, wusste aber nicht, dass man auch mitarbeiten kann
Sortierung nach Rubygems Downloads, GitHub Stars/Watcher und Forks.
Man kann sich den Score eines Projektes anzeigen lassen. Beispiel: thor https://www.ruby-toolbox.com/projects/thor/popularity
Dirk schlägt vor den letzten Commit auch mit einzubeziehen
Wenn ein Gem bei RailsCasts (http://railscasts.com), etc erwähnt wird, dann beeinflusst das die Watcher Zahlen, aber die Download Zahlen ändert sich nicht zwangsläufig
Für Basti ist es wichtig, dass ein Projekt aktiv ist (neue GitHub Commits), um zu sehen welches Tool er benutzt
Gemcutter/Rubygems (http://www.rubygems.org) und Bundler (http://bundler.io/) haben das Ökosystem positiv beeinflusst
Ein gem zu Erstellen, zu Open Sourcen und es zu maintainen ist ein echtes Commitment!
Überprüfen ob Gems mit Rails 4 funktionieren: http://www.ready4rails4.net
"View the full dependency tree for any ruby gem": https://www.gemlou.pe
"Bei großen Projekten landet man oft in der Dependency-Hell"
Angabe von Ruby Version (http://docs.rubygems.org/read/chapter/20#required_ruby_version) und Plattform (http://docs.rubygems.org/read/chapter/20#platform) im gemspec möglich
Leider die Dependency-Angaben oft sehr eng oder schlichtweg falsch: z.B. MRI verlangt, aber jruby funktioniert auch
SimpleCov (00:31:50)
SimpleCov basiert auf der Coverage API (http://www.ruby-doc.org/stdlib-1.9.3/libdoc/coverage/rdoc/Coverage.html), die mittlerweile von JRuby (http://jruby.org) und Rubinius (http://rubini.us) auch unterstützt werden
die Testsuite für SimpleCov dauert unter jruby >45min :-/
Basti ist zufrieden mit SimpleCov und hat keine Feature Requests
Christoph will JavaScript Coverage mit einbauen
Die Coverage API gibt Daten in einheitlichem Format raus, das könnte man für JavaScript Testsuites nachbauen
SimpleCov kann die Coverage Daten aus mehreren Test-Suites zusammenfügen
Wenn jemand mitarbeiten will, Christoph freut sich über Pull-Requests
Weitere Idee: SimpleCov in Produktion einzusetzen ("Welcher Code wird überhaupt wie oft verwendet"), das wird aber von der Coverage API nicht unterstützt
Dirk wirft in den Raum, dass das mit DTrace (http://de.wikipedia.org/wiki/DTrace) möglich sein könnte
Dirk: "Man sollte sich öfter fragen, ob Code überhaupt noch benutzt wird"; +1
RailsCamp (00:38:50)
In den letzten 2 Tagen war es verdammt heiß, heute ist es eher bewölkt aber angenehm kühl