(m-c) • Espera 4–6 horas pra fazer o build e rodar os testes • Se quebrar o build, quebrar os testes etc.: • o repositório é fechado (não aceita mais pushes) • você tem que reverter (back out) • se demorar pra reverter, outros devs podem se basear no seu código quebrado
11 12 13 14 15 16 17 18 19 20 21 22 23 24 2009-06-30 2011-03-22 2011-06-21 2013-09-17 traditional releases rapid releases with integration repositories versions release dates rapid releases (transition) Mais de 40 mil bugs corrigidos em pouco mais de 4 anos
number of memory leak finding tools have been integrated into our test environments that are improving our early catch-rate” Por que mais backout cedo? Evolução das ferramentas de teste automatizado:
de backout: “in the ‘old days’, you were expected to have built, tested, done a Try build, etc. before the patch landed” “Breaking it [i.e., m-i] rarely is ok. Never breaking the tree means you're running too many tests before landing [i.e., pushing].”
Mais tempo passou desde o commit, demora mais pra se lembrar do contexto • Significa que um commit defeituoso foi usado como base para outros commits • O commit definitivo vai demorar mais pra chegar ao usuário
• Realidade: Firefox está fazendo backout mais cedo • Isso ocorre graças e melhorias na automação de testes e a repositórios de integração gerenciados por xerifes • Além disso, é preciso menos esforço pra testar patches • Resultado: todo dia tem código relativamente estável (cf. chemspill)
• Mozilla Release Processes: http://mozilla.github.io/process-releases/ • Mozilla Release Process From the Point of View of a Data Scientist: http:// rodrigorgs.github.io/blog/2013/09/08/mozilla-process/ • RELENG 2014 (workshop): http://releng.polymtl.ca/RELENG2014/html/ program.html (ver video de Chuck Rossi, do Facebook) • Spotify Engineering Culture (Part 1): https://labs.spotify.com/2014/03/27/ spotify-engineering-culture-part-1/ (fala um pouco sobre release engineering)