Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ruby会議でのBundler2の話.pdf
Search
vividmuimui
October 05, 2017
Programming
56
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Ruby会議でのBundler2の話.pdf
vividmuimui
October 05, 2017
More Decks by vividmuimui
See All by vividmuimui
あるチームでの技術選定で考えてること(外部向けに修正版)
vividmuimui
0
14
開発組織まわりで最近考えているあれこれ
vividmuimui
0
26
bundle-update.pdf
vividmuimui
0
130
Dependabot vs BundleUpdate+LockDiff
vividmuimui
0
92
あなたの知らないRuboCopの設定
vividmuimui
0
250
最近(2019/02/03)の #Ruby , #Rails , #Bundler 事情
vividmuimui
0
170
Jasperはいいぞ!
vividmuimui
0
54
Danger CI
vividmuimui
0
110
tigとかaliasなし生活を送ってみて改めてgitを覚えてる話
vividmuimui
0
130
Other Decks in Programming
See All in Programming
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
130
SREは、MCPとSRE Agentをこう使え!
kazumax55
0
120
PHPで使える日時の表現と、その知り方 #frontend_phpcon_do
o0h
PRO
0
270
セキュリティの専門家じゃなくてもできる。「セキュリティ意識」をアップデートして サプライチェーン攻撃への耐性を高めよう。
tk3fftk
5
970
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
150
Spec Driven Development | AI Summit Lisbon
danielsogl
PRO
0
210
JavaDoc 再入門
nagise
1
420
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
190
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
170
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.7k
The NotImplementedError Problem in Ruby
koic
1
960
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
310
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
Mobile First: as difficult as doing things right
swwweet
225
10k
First, design no harm
axbom
PRO
2
1.2k
Docker and Python
trallard
47
3.9k
Raft: Consensus for Rubyists
vanstee
141
7.6k
A Modern Web Designer's Workflow
chriscoyier
698
190k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
210
Being A Developer After 40
akosma
91
590k
Optimizing for Happiness
mojombo
378
71k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6k
The Invisible Side of Design
smashingmag
301
52k
Code Reviewing Like a Champion
maltzj
528
40k
Transcript
Ruby 会議でのBundler2 の Ruby 会議でのBundler2 の 話 話 2017/10/05 社内LT
@vividmuimui
このスライドは、基本的にはこの発表をなぞっています youtube: speakerdeck: rfc#6: http://rubykaigi.org/2017/presentations/0xColby.html https://www.youtube.com/watch?v=sZX7SK3hxk4 https://speakerdeck.com/colby/what-weve-been-up-to-with-bundler https://github.com/bundler/rfcs/pull/6
この1 年で入ったやつの紹介 この1 年で入ったやつの紹介 bundle doctor bundle add bundle plugin
bundle doctor bundle doctor skip
bundle add bundle add $ bundle add rspec # Gemfile
# Added at 2017-10-04 00:17:42 +0900 by vivid_muimui: gem "rspec", "~> 3.6" 以下のようにオプションも指定できる $ bundle add rails --version "~> 5.0.0" --source "https://gems.example.com" --group "development" bot とかなら使いみちあるかも?
bundler plugins bundler plugins module MyBundlerPlugin class Plugin < Bundler::Plugin::API
command "new-command" def exec(command, args) puts "Hello World" end end end $ bundle new-command Hello World! という感じで、新しいコマンドを用意できる ほかにも、以下のようにも出来たりするみたい Bundler::Plugin::API.hook "before-install-all" do |deps| puts "Installing #{deps.map(&:name).join(', ')} !" end $ bundle install Installing rack ! Using bundler 1.15.4 ... ...
bundler plugins bundler plugins 作成したplugin のinstall は以下の感じ $ bundle plugin
install my-bundler-plugin # Gemfile plugin 'my-bundler-plugin' まだまだ、 に関してはまだまだ機能もdocument もbug x も足りてないらしい
1.16 が1 系の最後のバージョンになる予定 1.16 が1 系の最後のバージョンになる予定
bundler2 bundler2
Removing Removing Ruby2.3 未満のサポート Gem le Source Shortcuts persistent command
arguments いくつかかいつまんで紹介
Ruby2.3 未満のサポート Ruby2.3 未満のサポート skip
Gem le Source Shortcuts Gem le Source Shortcuts gem "rack",
github: "user/repo" gem "rack", bitbuket: "user/repo" といった がなくなり、以下の書き方をするようになる gem "gem1", source: "https://mygemserver.private" gem "gem2", git: "https://github.com/user/repo.git" gem "gem3", path: "path/to/gem" ただ、今まで書いていたように を書いておけば も書ける git_source(:github) do |repo_name| repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/") "https://github.com/#{repo_name}.git" end gem "rack", github: "user/repo"
bundle show bundle show 現状の は機能がたくさんあり複雑 の2 つのコマンドに分割
bundle viz bundle viz plugin として切り出される $ bunldle plugin install
bundle-viz
bundle console bundle console skip
persistent command arguments persistent command arguments オプション引数を自動で記録する処理がなくなる たとえば、今は以下のコマンドを実行すると、今は自動でcon g ファイルに
を記録される が、されなくなる $ bundle install --path foo 毎回常にoption を指定するか、以下のようにcon g を明示的に設定する必要がある $ bundle config path foo
–with –without –path –system –with –without –path –system での上記option を削除
代わりに を使う
bundle package bundle package から に変更
Adding Adding Removing に比べて少ない Global gem & extension cache Speci
c platforms
Global gem & extension cache Global gem & extension cache
複数アプリケーションで同じgem を使っていたり、 複数ruby バージョンで同じgem を使っているときにinstall が高速化される
Speci c platforms Speci c platforms 難しくてよくわかんなかった><
Changing Changing bundle bundle update bundle1 との互換性 gems.rb
bundle bundle 今は が実行されるが、usage が表示されるようになる
bundle update bundle update 今は、 $ bundle update で全gem のupdate
が走るが、明示的に指定する必要がある $ bundle update <gem-name> $ bundle update --all のどちらかになる
bundle1 との互換性 bundle1 との互換性 下位互換はないので注意する必要がある で したら では動かない なので、チームメンバーの足並み合わせて、せーのであげる必要がある (
複数プロジェクトを担当していて、同じruby バージョンを使っている場合は、プロジェクトをまたい でも足並み揃える必要があるかも?)
gems.rb gems.rb で した時に生成されるファイルは になる 今までの , は普通に使える deprecation warning
もでない と が両方存在していたときは、 が優先される
今後 今後
Ruby2.5 にdefault gem としてbundler が入る Ruby2.5 にdefault gem としてbundler が入る
どのbundler のバージョンが入るかはhsbt さんと相談と言っていたように聞こえた でも、2 系になりそうな雰囲気だった( 曖昧)
毎年メジャーリリースをする 毎年メジャーリリースをする ruby のリリースのように毎年年末あたりにメジャーリリースが行うようになる ruby のサポートのバージョンを変えたり、古い機能を削除したりなど
おまけ おまけ 見てて気になったやつ rfc#6 した時のデフォルトのインストール先が 以下になる