Contribuições Rails core
O curso trata de como mudanças entram no Rails e de como ler o código-fonte do framework. Explica por que correções de documentação e correções de bug com um teste que falha são aceitas bem mais vezes do que funcionalidades novas. Mostra como escrever um relatório de bug autossuficiente com o modo inline do Bundler, rodar os testes de um componente num checkout do Rails e escrever o teste que falha antes da correção. Cobre ainda as convenções de pull request, como insistir depois de abrir um, backports para branches estáveis e o uso de source_location.
O que você vai aprender
- ✓Quais tipos de contribuição o Rails aceita e por que funcionalidades novas costumam ser recusadas
- ✓Como escrever um relatório de bug executável com bundler/inline e reduzir a falha de uma aplicação a um script curto
- ✓Como rodar os testes de um componente com bin/test e escrever o teste que falha antes da correção
- ✓Como preparar um pull request focado: entrada no CHANGELOG, mensagens de commit, rebase e squash
- ✓Como insistir num pull request e lidar com silêncio ou fechamento
- ✓Janelas de suporte, backports para branches estáveis e leitura do código do Rails com source_location
O que o Rails realmente integra
É sexta-feira à tarde, e uma query devolve linhas que você não pediu. Você abre o código do Active Record no seu bundle, acha o trecho que monta a condição e vê a correção. São quatro linhas.
Ler a aula completa grátis →Currículo
7 aulasO que o Rails realmente integra
Por que correções de documentação e de bug com teste que falha entram, e funcionalidades novas raramente.
O relato de bug executável
Como escrever uma reprodução num só arquivo com bundler/inline, testar no edge Rails e reduzir a falha.
Um checkout do Rails onde dá para trabalhar
Como clonar o Rails, rodar os testes de um componente com bin/test e escrever primeiro o teste que falha.
O pull request em si
Uma mudança por pull request, quando pôr entrada no CHANGELOG, mensagens de commit, rebase e squash.
Depois que você abre
Por que o silêncio é o padrão, como insistir uma vez em público e como encarar um fechamento.
Backports e branches de release
A diferença entre releases patch, minor e major, as janelas de suporte e como fazer backport com cherry-pick.
Lendo o Rails como fonte primária
Como usar source_location para achar definições no seu bundle e o caminho completo do bug até o release.