How Mozilla uses Python to Build and Ship Firefox
How do we get from this….
To this
Who am I?
Chris AtLee
catlee@mozilla.com
some numbers
4 GB in version control (hg) for Firefox; 494k commits
Over 200 commits per day; around 7,000 per month
1,750 build & test tasks per commit
approximately 15 cpu days of automation per commit
20 releases per month. Each release can have over 7,000 individual tasks and generates 50-100GB of artifacts!
All powered by Python!
Goal of this talk:
understanding pipelines & python
treeherder
taskcluster
mostly not python, sorry :(
mach taskgraph
it’s complicated
workers
Photo by Randy Fath on Unsplash
Keeping users up to date
updates
<updates>
<update type="minor" displayVersion="65.0a1" appVersion="65.0a1" platformVersion="65.0a1" buildID="20181109101751">
<patch type="complete" URL="https://archive.mozilla.org/pub/firefox/nightly/2018/11/2018-11-09-10-17-51-mozilla-central-l10n/firefox-65.0a1.en-CA.linux-x86_64.complete.mar" hashFunction="sha512" hashValue="a56f091a1a74a10917e6adbae6603593e89c8173d4d6a4689895ae31181e72c33e158988d12c19a8e4c52ec32a9df8df22ca891e42bf2cb7445476e45acb3d49" size="53647369"/>
</update></updates>
Python can work with binary file formats too!
why python?
why not python?
stuff I missed