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
Pedantic Elixir Builds
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Andrew Summers
January 23, 2019
Technology
170
1
Share
Pedantic Elixir Builds
Setting up pedantic Elixir builds in 2019
Andrew Summers
January 23, 2019
More Decks by Andrew Summers
See All by Andrew Summers
Domain Specific Languages and Metaprogramming
asummers
1
450
Gardening An Elixir Application
asummers
1
95
Other Decks in Technology
See All in Technology
15年メンテしてきたdotfilesから開発トレンドを振り返る 2011 - 2026
giginet
PRO
2
280
パワポ作るマンをMCP Apps化してみた
iwamot
PRO
0
310
Oracle Cloud Infrastructure:2026年3月度サービス・アップデート
oracle4engineer
PRO
0
400
ASTのGitHub CopilotとCopilot CLIの現在地をお話しします/How AST Operates GitHub Copilot and Copilot CLI
aeonpeople
1
190
2026-04-02 IBM Bobオンボーディング入門
yutanonaka
0
240
すごいぞManaged Kubernetes
harukasakihara
1
340
"まず試す"ためのDatabricks Apps活用法 / Databricks Apps for Early Experiments and Validation
nttcom
1
190
ふりかえりがなかった職能横断チームにふりかえりを導入してみて学んだこと 〜チームのふりかえりを「みんなで未来を考える場」にするプロローグ設計〜
masahiro1214shimokawa
0
120
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
1.4k
プロダクトを育てるように生成AIによる開発プロセスを育てよう
kakehashi
PRO
1
790
AI前提とはどういうことか
daisuketakeda
0
130
Cortex Code君、今日から内製化支援担当ね。
coco_se
0
280
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
100
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
1
170
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
120
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.1k
Everyday Curiosity
cassininazir
0
190
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
510
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
360
Navigating Weather and Climate Data
rabernat
0
160
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Unsuck your backbone
ammeep
672
58k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Transcript
Pedantic Elixir Builds Andrew Summers 2019-01-23
None
Who? • Backend Software Engineer at albert.io • Wrote Dialyzer
pretty printer • Maintainer of Dialyxir, Erlex, elixir-lsp packages • Contributor to many others!
What? • Set up CI with pedantic builds • Recipe
for contributing to open source • Improve code quality at work using tools
How? • Turn on all current tooling to maximum pedantry
• Add extra checks according to your team's conventions • Set up continuous integration every build using e.g. Travis, Circle CI, Jenkins • Reject pull requests that do not satisfy all checks
• Travis (Continuous Integration) • Compiler (warnings as errors) •
Formatter • Credo (linter) • ExUnit (tests) • Dialyzer (type checker) • Sobelow (security)
• Good first PR to fix warnings and prevent them
in future • Surprising how many open source projects have errors! mix compile --warnings-as-errors
• Elixir 1.6+ • Consistent code in ecosystem mix format
--check-formatted
• Elixir linter • Turn on as many optional rules
as you can handle • Add your own rules to e.g. enforce defp type specs mix credo list --strict
• Write more tests, you don't have enough. • Consider
property testing mix test
• Erlang type checker, sometimes lies • Full PLT analysis
cache rebuild on Elixir, Erlang version change, partial rebuild on dependency changes mix dialyzer --halt-exit-status
• Security analysis tool • Scans for e.g. String.to_atom/1, SQL
injection mix sobelow --exit low
Other tools • coveralls, via ExCoveralls for coverage analysis •
dependabot for keeping dependencies up to date • inch for documentation analysis
• https://bit.ly/2Mumw25 •
asummers _asummers Thanks!