give IT a try

プログラミング、リモートワーク、田舎暮らし、音楽、etc.

OSSのWikiページにツッコんだら自分で書き直すことになった話

Deviseってご存知ですか?
僕も最近知ったのですが、Railsでよく使われるユーザー認証ライブラリです。
で、このライブラリを使ってちょこちょこ実装していったのですが、UserモデルのMigrationを実行したときにこんな警告メッセージが出てきました。

[DEVISE] You are using t.database_authenticatable and others in your
migration and this feature is deprecated. Please simply use Rails
helpers instead as mentioned here:
https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0-migration-schema-style


どうも非推奨の古い機能を使ってしまったみたいです。
しかし、僕はライブラリのマニュアル = Wikiページに書いてあるコードをコピーしただけです。
調べていくと、どうやらWikiページの内容が最新バージョンに合致しなくなっていることがわかりました。


なるほどねー、困ったWikiページだな〜!・・・で終わってしまっても良いのですが、このまま放置したら同じように困るプログラマが世界中で現れるんじゃない?と思い、Deviseのメーリングリストで「Wikiページが古いよー」って教えてあげました。
以下はその時のメールの内容です。

I created a migration script according to the page below:

https://github.com/plataformatec/devise/wiki/How-To:-Add-:confirmable-to-Users

But I got a warning message like this:

[DEVISE] You are using t.database_authenticatable and others in your
migration and this feature is deprecated. Please simply use Rails
helpers instead as mentioned here:
https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0-migration-schema-style

So I feel the How-To page should be updated.
For example, I wrote migration file according to Rails3.1 style:

class GetUsersConfirmable < ActiveRecord::Migration
 def change
   add_column :users, :confirmation_token, :string
   add_column :users, :confirmed_at, :datetime
   add_column :users, :confirmation_sent_at, :datetime
   add_index :users, :confirmation_token, :unique => true
 end
end


すると、

Please feel free to update the wiki with your migration code, the wiki is open to everyone to contribute. 
翻訳: どうぞWikiページをあなたのコードで更新してください。誰でも更新できますから。


と言われました。


お〜っと、予想外の展開!!
まさか世界的に使われているライブラリのマニュアル(Wikiだけど)を僕が更新するの!?と驚いてしまいました。


まあ、やっていいって言われたんだからやりますよー。ええ、やりますとも!!


というわけでちょっとドキドキしながらWikiページを更新しました。
僕が更新したのは以下の2ページです。


How To: Add :confirmable to Users · plataformatec/devise Wiki · GitHub
※1番目と3番目のサンプルコードを変更しました。


How To: Override confirmations so users can pick their own passwords as part of confirmation activation · plataformatec/devise Wiki · GitHub
※「3) Lists the database fields explicitly for your migrations」と「4) Update config/intializers/devise.rb」を変更しました。


このように一応僕の名前が更新者として載っています。


まあ、実際やったことは大したことじゃないんですが、それでも自分が世界的に使われているオープンソースライブラリにほんの少しでも貢献できたというのは、なんかとってもエキサイティングな出来事でした。


Rubyのオープンソースライブラリって、どれもとてもオープンな感じがするというか、世界中のプログラマが協力し合って作り上げている印象が強いです。
今回わざわざメーリングリストに投稿しようと思ったのも、このオープンな雰囲気があったからこそなんじゃないかと思います。


以前から時々言ってますが、日本のプログラマは日本の中だけで閉じてちゃもったいない、もっと世界と絡めるプログラマが増えてほしいと思っています。
いや、もしかすると実際は結構多いのかもしれません。
このブログを読んでそれぐらい自分もやってるよ、自分の方がもっとすごいし!と思っている人がいたら、どんどんそれを世間にアピールしてもらえるとうれしいです。(僕が気付いてないだけだったらすいません)
どんな小さなことでもいいんで、日本以外のプログラマとも何かしらのコミュニケーションを増やしていけるように、一緒に頑張っていきましょう!

あわせて読みたい

メーリングリストでのやりとりはここに保存されています。
Google グループ


以下は僕の「世界のプログラマと絡んでみた」シリーズです。よろしければどうぞ。
英語ブログを書いてredditに投稿してみた - give IT a try
Stack Overflowで世界を相手に腕試し - give IT a try