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
The New Era of Go Package Management
Search
sam boyer
July 14, 2017
Technology
0
130
The New Era of Go Package Management
Closing keynote of Gophercon 2017.
sam boyer
July 14, 2017
Tweet
Share
Other Decks in Technology
See All in Technology
コード品質向上で得られる効果と実践的取り組み
ham0215
1
190
これからクラウドエンジニアになるために本当に必要なスキル 5選
hiyanger
1
460
EM初心者として半年間マネジャーをやってみて分かったこと
sansantech
PRO
0
200
Amazon EKS Auto ModeでKubernetesの運用をシンプルにする
sshota0809
0
100
DIってなんだか難しい? 依存という概念を「使う・使われる」 という言葉で整理しよう
akinoriakatsuka
1
760
SpannerとAurora DSQLの同時実行制御の違いに想いを馳せる
masakikato5
0
540
ウェブアクセシビリティとは
lycorptech_jp
PRO
0
210
Vision Language Modelを活用した メルカリの類似画像レコメンドの性能改善
yadayuki
9
1.1k
3/26 クラウド食堂LT #2 GenU案件を通して学んだ教訓 登壇資料
ymae
1
170
ClineにNext.jsのプロジェクト改善をお願いしてみた / 20250321_reacttokyo_LT
optim
1
1.2k
問題解決に役立つ数理工学
recruitengineers
PRO
5
240
スケールアップ企業のQA組織のバリューを最大限に引き出すための取り組み
tarappo
4
820
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
28
2k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
Fashionably flexible responsive web design (full day workshop)
malarkey
406
66k
What's in a price? How to price your products and services
michaelherold
244
12k
RailsConf 2023
tenderlove
29
1k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.7k
Agile that works and the tools we love
rasmusluckow
328
21k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
Building an army of robots
kneath
304
45k
Transcript
@sdboyer The New Era of Go Package Management sam boyer
@sdboyer 1. We write code
@sdboyer 2. We use others’ code
@sdboyer 3. ow
@sdboyer Package (dependency) management matters
@sdboyer No, like…more than that
@sdboyer Tools -> Social Systems
None
None
None
None
None
None
None
@sdboyer Roots of the problem • GOPATH allows only one
version • No reproducibility • Releases, ~pointless • Updates, a crapshoot
None
@sdboyer Rise of the tools • 2013: Godep, gom, et
al. - 2013 • 2014: glide, gopkg.in, et al. - 2014 • 2015: gb, govendor, et al. - 2015
@sdboyer vendor/ on the scene • Go 1.5: vendor/ added,
off by default (Aug, 2015) • Go 1.6: vendor/ on by default (Feb, 2016) • Go 1.7: vendor/ always on (Aug, 2016)
None
@sdboyer godep glide gb govendor (et al.)
@sdboyer github.com/golang/dep
@sdboyer
@sdboyer dep fundamentals • Borrows from others, but is tailored
to Go • Imports are queen • Two-file system: Gopkg.toml, Gopkg.lock • Project-oriented • Semver tagging • vendor/-centric - (almost) no GOPATH
@sdboyer dep status dep init dep ensure
@sdboyer godep glide gb govendor (et al.) GOPATH dep
@sdboyer dep status dep init dep ensure
@sdboyer ensure keeps states in sync Project Code (imports) Gopkg.toml
Gopkg.lock Deps (vendor)
@sdboyer “Sync-based” tool
None
@sdboyer “Hey dep, ensure everything’s shipshape, kthx”
@sdboyer
@sdboyer
@sdboyer ) dep dep go
@sdboyer ) dep go
None
@sdboyer Key insights from dep • Two-file system • Imports
are queen • Still sync-based • Semver tagging • vendor/, sorta
@sdboyer TODOs • Multi-project workflow • Semver suggestion tool •
Registries • Editor integration patterns • Security model • Performance! • Better failure feedback • Private/enterprise patterns
@sdboyer TODOs…for YOU • Tag your projects with semver •
Convert projects to dep (yes, it’s ready!) • Maybe jump in and contribute to dep - word is, we’re super friendly! • Hackathon, tomorrow! • Updates: sdboyer.io/dep-status
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY
KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND… The MIT License
None