Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Pedantic Elixir Builds
Search
Andrew Summers
January 23, 2019
Technology
180
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
480
Gardening An Elixir Application
asummers
1
100
Other Decks in Technology
See All in Technology
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
170
アウトプット初心者、半年間のふりかえり
4o1sobblue
0
430
遠藤な_めぐろLT #38 「社内のAI活用推進」@麻布台_20261009
endonanana
0
130
宣言型部分更新は何を解決しどこへ向かうのか
shuta13
1
450
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
380
V8のArray.prototype.flatを最大約20倍速くするまでと、巨大OSSへの大規模コミットの道のり
riyaamemiya
0
290
Metadata - Section 1: HTML Basics
mohab1
0
120
会社説明資料
persolserverworks
0
9.8k
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
170
Railsで挑む大量データ永続化 〜600億件を永続化するための設計とボトルネックとの戦い〜
occhi
1
580
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
100
Rustuna: Rustによる高速なOptuna実装
pfn
PRO
0
190
Featured
See All Featured
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
630
GitHub's CSS Performance
jonrohan
1033
470k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
800
Building Applications with DynamoDB
mza
96
7.2k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
370
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
600
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
450
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
600
The browser strikes back
jonoalderson
0
1.8k
Faster Mobile Websites
deanohume
310
32k
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!