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
140
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
あなたの知らない Linuxカーネル脆弱性の世界
recruitengineers
PRO
3
160
混合雲環境整合異質工作流程工具運行關鍵業務 Job 的經驗分享
yaosiang
0
180
現場データから見える、開発生産性の変化コード生成AI導入・運用のリアル〜 / Changes in Development Productivity and Operational Challenges Following the Introduction of Code Generation AI
nttcom
1
480
ゼロコード計装導入後のカスタム計装でさらに可観測性を高めよう
sansantech
PRO
1
430
AI AgentをLangflowでサクッと作って、1日働かせてみた!
yano13
1
160
SCONE - 動画配信の帯域を最適化する新プロトコル
kazuho
1
380
可観測性は開発環境から、開発環境にもオブザーバビリティ導入のススメ
layerx
PRO
0
310
AI時代の開発を加速する組織づくり - ブログでは書けなかったリアル
hiro8ma
1
310
dbtとAIエージェントを組み合わせて見えたデータ調査の新しい形
10xinc
0
110
webpack依存からの脱却!快適フロントエンド開発をViteで実現する #vuefes
bengo4com
3
3.4k
Dify on AWS 環境構築手順
yosse95ai
0
130
HonoとJSXを使って管理画面をサクッと型安全に作ろう
diggymo
0
180
Featured
See All Featured
Making Projects Easy
brettharned
120
6.4k
The Cult of Friendly URLs
andyhume
79
6.6k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
9
930
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
640
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
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