Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

想定するRubyのバージョン記載 #3

Open
h5y1m141 opened this issue Jan 6, 2018 · 3 comments
Open

想定するRubyのバージョン記載 #3

h5y1m141 opened this issue Jan 6, 2018 · 3 comments

Comments

@h5y1m141
Copy link

h5y1m141 commented Jan 6, 2018

このIssueについて

@chooyan-eng さん、興味あって早速リポジトリをフォークしてtimetableのお題についてとりかかろうと思って作業してて気になったのが、このリポジトリでのRubyの想定バージョンについて記載がありませんでした。

自分ひとりでの勉強では得られない視点や技術を身に着けることができます。

という観点に加えて

  • 実際のお仕事だとRubyのバージョンによる差異でおもいがけない挙動でハマる
  • Rubyのバージョンが新しくなると、割りとカッコいい書き方とかも使えるようになる
    • とはいえ、自分が最近やってるお仕事だと最新に追従出来てないですが 😅

という点も踏まえると想定するRubyのバージョン記載したほうが良いかなと思うのですがいかがでしょうか?

@chooyan-eng
Copy link
Owner

@h5y1m141 さん

ご提案ありがとうございます!

確かにRubyのバージョンについての記載がないですね。
バージョンによってハマる場合がある点については同意です。(経験あります、、、)

リポジトリとして想定バージョンをひとつ決めてしまうのであれば、現在の最新安定板である2.5.0として、バージョンアップがあるたびに更新(コードに変更が必要 or より良い書き方がある場合はコードを修正)が良いかと思いました。

一方で、実際の開発現場ではおっしゃる通り「最新に追従できない」場合もあると思いますので、そのような状況を想定して、コミットされる方それぞれがなんらかの形で動作保証バージョンを明記する方法もアリかな、と思いました。

そこで質問なのですが、プロジェクトごとに動作を保証するRubyのバージョンを明記したい場合、Rubyとして何か一般的な方法ってありますか?もしご存知でしたらご意見いただければと思います。

@h5y1m141
Copy link
Author

h5y1m141 commented Jan 8, 2018

プロジェクトごとに動作を保証するRubyのバージョンを明記したい場合、Rubyとして何か一般的な方法ってありますか?

rbenvを利用してる場合になってしまいますが、自分はたいていこういう感じで管理してます。

  1. プロジェクト直下に、.ruby-versionというファイルを作る
  2. そのファイルにそのプロジェクトでの想定のRubyのバージョンを記載する
  3. ついでに書くとGemfileはそのRubyのバージョンを利用してるのがわかるように後述のような記載をしておく

.ruby-versionの記載

単にこういう↓感じで記載するだけ

2.4.0

Gemfileから、.ruby-versionを読み取る設定

ruby File.read(File.expand_path('../.ruby-version', __FILE__)).strip
source 'https://rubygems.org'
# 以下省略

私は、rvmは利用してないのですが、人によってはこういうのを利用してRubyの管理されてるかもしれないですが、公式見ると

isted in order of precedence:

.rvmrc - shell script allowing full customization of the environment,
.versions.conf - key=value configuration file
.ruby-version - single line ruby-version only
Gemfile - comment: #ruby=1.9.3 and directive: ruby "1.9.3"

という感じでこっちも、.ruby-versionを参照してくれる仕組みあるようなので、.ruby-versionを利用して動作保証するのを、推奨しておく程度が無難なのかもしれませんね!

@chooyan-eng
Copy link
Owner

なるほど!では、libtestと同じ階層に.ruby-versionファイルを作って、そこにバージョンだけ記載しておくのがシンプルでよさそうですね。

もう少し調べてみて、特に問題や他の良い代替案がなさそうであればREADME.mdを更新しようと思います。ありがとうございます!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants