• Like
  • Save
Be Happy With Semantic Versioning And Git Flow - PHP Conference Brasil 2012
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 554 views

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

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

Statistics

Views

Total Views
554
Views on SlideShare
553
Embed Views
1

Actions

Likes
3
Downloads
3
Comments
0

1 Embed 1

https://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

    • BE HAPPY WITH SEMANTIC VERSIONING AND GIT FLOW Rogério Prado de Jesus PHP Conference Brasil Dezembro 2012
    • QUEM SOU EU? • @rogeriopradoj • PHP - Rogério Prado de Jesus desde 2009 • blog: rogeriopradoj.com • Grupo de usuários: PHPSP
    • VERSIONAMENTO É sobre isso que vamos falar…
    • VERSIONAMENTO Código Fonte Mas esse não é o único tipo
    • VERSIONAMENTO Código Fonte Produto ! Temos que lembrar desse aqui também
    • VERSIONAMENTO Código Fonte Produto ! ! VCS git, svn, mercurial, cvs... iOS 6 Ubuntu 12.10 PHP 5.4.9 jQuery 1.8.3 ! !
    • VERSIONAMENTO: PRODUTO Quando outras pessoas começam a usar seu produto (site, biblioteca…) Publicação … você precisa de estratégias para gerenciar isso tudo
    • … 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
    • @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
    • SEMANTIC VERSIONING esse é o formato das versões… X.Y.Z Parece conhecido?
    • 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!
    • 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
    • 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
    • SEMANTIC VERSIONING X.Y.Z major minor patch Para ninguém esquecer! http://semver.org/
    • VERSIONAMENTO Código Fonte Produto ! ! Já vimos produto… … vamos para código fonte
    • VERSIONAMENTO: CÓDIGO FONTE O que é para você?
    • 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…
    • … aqui entra o… VCS • Version Control System • Sistema de controle de versões • Código fonte
    • TIPOS VCS CENTRALIZADO DESCENTRALIZADO ! ! Basicamente são dois tipos…
    • TIPOS VCS CENTRALIZADO DESCENTRALIZADO ! ! https://subversion.apache.org/ http://www.git-scm.com/ … sendo essas as ferramentas mais conhecidas de cada um deles
    • 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
    • RAMIFICANDO O VCS Complexo e formal Simples e eficiente cada um deles tem suas particularidades
    • 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!
    • 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!!!)
    • 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)
    • É 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
    • Um “origin único” para todos Mas que não impede que existam as interações normais do GIT (vários remotos, por exemplo)
    • • Descentralizado • Formalização Centralizado das ramificações / branches Segundo ponto importante
    • Regras para nomes de branches… Main - master - develop … facilitando a comunicação Supporting - feature - release - hotfix
    • 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.
    • 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
    • Alguns cheatsheets para facilitar o uso • http://danielkummer.github.com/git-flow-cheatsheet/ • http://danielkummer.github.com/git-flow-cheatsheet/ index.pt_BR.html
    • 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.
    • É isso aí, pessoal! SEMANTIC VERSIONING GIT (*) FLOW
    • OBRIGADO! • about.me/rogeriopradoj