Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012

858 visualizações

Publicada em

Palestra apresentada na PHP Conference Brasil, o maior evento de PHP da América Latina, edição 2012.

Mais informações:

- http://www.phpconference.com.br/

- https://joind.in/talk/view/7764

Publicada em: Tecnologia
0 comentários
3 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
858
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
4
Comentários
0
Gostaram
3
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012

  1. 1. BE HAPPY WITH SEMANTIC VERSIONING AND GIT FLOW Rogério Prado de Jesus PHP Conference Brasil Dezembro 2012
  2. 2. QUEM SOU EU? • @rogeriopradoj • PHP - Rogério Prado de Jesus desde 2009 • blog: rogeriopradoj.com • Grupo de usuários: PHPSP
  3. 3. VERSIONAMENTO É sobre isso que vamos falar…
  4. 4. VERSIONAMENTO Código Fonte Mas esse não é o único tipo
  5. 5. VERSIONAMENTO Código Fonte Produto ! Temos que lembrar desse aqui também
  6. 6. VERSIONAMENTO Código Fonte Produto ! ! VCS git, svn, mercurial, cvs... iOS 6 Ubuntu 12.10 PHP 5.4.9 jQuery 1.8.3 ! !
  7. 7. VERSIONAMENTO: PRODUTO Quando outras pessoas começam a usar seu produto (site, biblioteca…) Publicação … você precisa de estratégias para gerenciar isso tudo
  8. 8. … aí que entra o … SEMANTIC VERSIONING • http://semver.org/ enquanto a tradução oficial não for mesclada • https://github.com/rogeriopradoj/translations/blob/master/ translated/semantic-versioning/pt_BR.md Elaborado pelo criador do @mojombo
  9. 9. @alganet @augustohp https://github.com/Respect descobri sobre o tema com esses dois caras… … assistindo uma discussão de como gerenciar as versões do projeto deles
  10. 10. SEMANTIC VERSIONING esse é o formato das versões… X.Y.Z Parece conhecido?
  11. 11. SEMANTIC VERSIONING é o que a gente já fazia… http://semver.org/ X.Y.Z major minor patch …mas agora com uma regra mais rígida… …um manifesto!
  12. 12. Um dos principais pontos do tema é evitar que você (e seus usuários) entre em pânico quando seu produto cresce de tamanho… … e consequentemente o número de dependências aumenta também https://en.wikipedia.org/wiki/Dependency_hell
  13. 13. COMPOSER http://getcomposer.org/ PACKAGIST https://packagist.org/ Esses dois caras do PHP sugerem que você use o SEMVER… …o que facilita a vida de quem for usar os seus pacotes Slideshares recomendados se quiser saber mais: - http://www.slideshare.net/rdohms - http://www.slideshare.net/rogeriopradoj
  14. 14. SEMANTIC VERSIONING X.Y.Z major minor patch Para ninguém esquecer! http://semver.org/
  15. 15. VERSIONAMENTO Código Fonte Produto ! ! Já vimos produto… … vamos para código fonte
  16. 16. VERSIONAMENTO: CÓDIGO FONTE O que é para você?
  17. 17. Pode ser isso aqui… index.php index.php.old index.php.old.bkp index.php.old.bkp.2 index.php.old.bkp.2012 … mas tem jeito melhor…
  18. 18. … aqui entra o… VCS • Version Control System • Sistema de controle de versões • Código fonte
  19. 19. TIPOS VCS CENTRALIZADO DESCENTRALIZADO ! ! Basicamente são dois tipos…
  20. 20. TIPOS VCS CENTRALIZADO DESCENTRALIZADO ! ! https://subversion.apache.org/ http://www.git-scm.com/ … sendo essas as ferramentas mais conhecidas de cada um deles
  21. 21. TIPOS VCS CENTRALIZADO DESCENTRALIZADO ! ! Existe um movimento de migração de projetos (principalmente open source) para descentralizados… … o próprio PHP é um dos casos… https://github.com/php/ php-src
  22. 22. RAMIFICANDO O VCS Complexo e formal Simples e eficiente cada um deles tem suas particularidades
  23. 23. esse é o padrão formal no SVN (subversion)… …que geralmente só usuários avançados usavam pela complexidade… … nos manuais de SVN são sempre os últimos capítulos. Mesmo assim, corporativamente era um bom modelo… … por causa de seu controle e rigidez (mesmo deixando os DEVs malucos!!!) Quem nunca ouviu: “para tudo aí que eu vou mesclar! e "tô" dando lock!
  24. 24. No GIT a criação de branches é assunto básico… O próprio ícone do GIT mostra uma ramificação!!! … primeiros capítulos do manual O problema é que não existe formalismo… … o que corporativamente poderia ser problema (apesar dos DEVs adorarem!!!)
  25. 25. A SUCCESSFUL GIT BRANCHING MODEL • http://nvie.com/posts/a-successful-git-branching-model/ • https://github.com/rogeriopradoj/translations/blob/master/ translated/a-successful-git-branching-model/pt_BR.md Um modelo de ramificação parecido com o SVN (formal)… …mas no GIT (sem os problemas do SVN)
  26. 26. É o que eles chamaram de • Descentralizado Centralizado Descentralizado porque é GIT Centralizado pois usa um repositório “central”, ou principal, que é usado para sincronia de todos os outros
  27. 27. Um “origin único” para todos Mas que não impede que existam as interações normais do GIT (vários remotos, por exemplo)
  28. 28. • Descentralizado • Formalização Centralizado das ramificações / branches Segundo ponto importante
  29. 29. Regras para nomes de branches… Main - master - develop … facilitando a comunicação Supporting - feature - release - hotfix
  30. 30. feature branches develop release branches hotfixes master Time Tag 0.1 Feature for future release Severe bug fixed for production: hotfix 0.2 Major feature for next release Incorporate bugfix in develop Tag 0.2 Start of release branch for 1.0 From this point on, “next release” means the release after 1.0 Only bugfixes! Bugfixes from rel. branch may be continuously merged back into develop Author: Vincent Driessen Original blog post: http://nvie.com/archives/323 License: Creative Commons Tag 1.0 Modelo da empresa NVIE aplicado … … que até esse momento não tinha nome.
  31. 31. Em pouco tempo foi criado o nome do modelo… GIT-FLOW … e também uma ferramenta para facilitar seu uso fora da NVIE • https://github.com/nvie/gitflow/ • Ferramenta CLI para agilizar o processo de implementação do modelo git flow da NVIE.com
  32. 32. Alguns cheatsheets para facilitar o uso • http://danielkummer.github.com/git-flow-cheatsheet/ • http://danielkummer.github.com/git-flow-cheatsheet/ index.pt_BR.html
  33. 33. Importante saber que existem outros fluxos de trabalho no GIT… …alguns famosos: Git "OpenSource" Flow GitHub Flow: usado pela empresa GitHub Nome inventado por @rogeriopradoj :-) Principal diferença em relação ao NVIE git-flow: usa menos branches, mas mantém a ideia de repositório central É o que é usado na maioria dos projetos OpenSource, com a ideia de Forks, Pull Requests etc.
  34. 34. É isso aí, pessoal! SEMANTIC VERSIONING GIT (*) FLOW
  35. 35. OBRIGADO! • about.me/rogeriopradoj

×