O documento fornece informações sobre boas práticas em projetos open source, incluindo o uso de serviços como o GitHub. Ele discute como usar recursos como forks, branches, commits, pull requests e issues para colaborar em projetos de código aberto de forma efetiva.
1. Uso e Boas Práticas em Projetos Open Source
www.cdsinformatica.com.br
2. • Mais de 25 anos de experiência no desenvolvimento de software
• Responsável por Pesquisa e Desenvolvimento na CDS Informática
• Microsoft MVP desde 2008
• Microsoft Regional Director
• Um dos criadores do projeto open source CodeCracker: www.github.com/code-cracker
• Mantenedor do projeto open source BoletoNet: www.github.com/boletonet
• Blog: www.carloscds.net
• GitHub: www.github.com/carloscds
3. www.gotaskfly.com
• Serviço de controle de versão de arquivos
• Mas não somente isto...
• Um dos maiores repositórios de código open source
• Gratuito para repositórios públicos, mas permite privados também
• Oferece uma dinâmica excelente para trabalho em equipe
• Permite versionamento offline e sincronização online
• Permite várias versões do projeto simultaneamente
9. www.gotaskfly.com
• Readonly:
• Só vou baixar e usar!
• Folgado:
• Fica achando que o projeto tem um suporte 24x7
• Às vezes fica bravo porque alguém não resolveu na hora!
• Colaborador:
• Vai usar e também enviar o que melhorar de volta
• Criador:
• Cria, compartilha, colabora, ajuda!
17. www.gotaskfly.com
• É uma cópia do repositório para sua conta
• Se for colaborar no projeto, faça um fork, isto permite que você trabalhe “isolado”, podendo
enviar suas alterações através de um Pull Request (PR)
• Só não esqueça de atualizar seu repositório, afinal o projeto principal está “andando”!
• No seu repositório, você pode fazer qualquer tipo
de operação, o que pode não ser possível no principal
18. www.gotaskfly.com
• É um “nome/label” para uma alteração ou funcionalidade
• Pode ser utilizado para criar ambientes e também versões
• Mas isto dá muito trabalho, vamos fazer direto na master!!!
• Jamais trabalhe na branch master!!!
19. www.gotaskfly.com
• Uma das grandes vantagens do Git é o versionamento local
• Isto quer dizer que você pode fazer um Clone de um projeto e trabalhar localmente, fazendo e
desfazendo diversos commits
• Para finalmente enviar um Push e um Pull Request
• Lembre-se que todo o histórico de commits será enviado para o repositório principal
• Se você quiser limpar um pouco os comentários dos commits poderá usar “squash”. Isto facilita a
revisão do PR (https://git-scm.com/book/pt-br/v1/Ferramentas-do-Git-Reescrevendo-o-Hist%C3%B3rico)
• Por favor coloque comentário no seu commit, mas um que faça sentido! De preferência vincule com
uma #issue
20. www.gotaskfly.com
• Terminei e agora ?
• Manda um PR...
• E quando dá conflito, o que fazer ?
• E quando tudo está certo ?
21. www.gotaskfly.com
• Integra suas alterações na branch
• Deu conflito, e agora ?
• Em um projeto colaborativo, isto vai ocorrer em algum momento e você precisa ter uma estratégia!
• Precisa resolver o conflito, é claro! Mas com muito cuidado, pois pode haver perda de dados!
23. www.gotaskfly.com
• Está com um problema ? Crie uma Issue!
• Mas seja objetivo e específico! Ninguém tem “bola de cristal”
• Tenha “labels” para identificar as issues
• Issues é o que tem para fazer no projeto!
• Quer colaborar, comece olhando as issues!
24. www.gotaskfly.com
• Vai publicar uma nova versão ? Crie um release!
• O release é um resumo de tudo o que foi feito naquela versão, incluindo artefatos gerados pelo
projeto!
25. www.gotaskfly.com
• Criei um projeto e agora tenho muita gente contribuindo!
• É hora de mudar para uma organização!
• Uma organização pode dar mais credibilidade e confiança ao projeto!
28. www.gotaskfly.com
• Crie um processo de build!
• Teste unitário elimina muito trabalho de análise de Pull Request, então faça!
• Tenha uma política de deploy / geração de releases!
• Explique o que seu projeto faz, tenha um README rico!
• Deixe claro sua política de contribuição, isto ajuda quem quer colaborar!
• Escolha a licença correta!
30. www.gotaskfly.com
• Visual Studio e Visual Studio Code – www.visualstudio.com
• GitK – faz parte do pacote Git - https://git-scm.com/downloads
• SourceTree - https://www.sourcetreeapp.com/
• GitHub Desktop - https://desktop.github.com/
• E muitas outras: https://git-scm.com/download/gui/windows
• E para vários ambientes: https://git-scm.com/download/gui/linux