Maven Versioning Strategy (VR)

  • View
    219

  • Download
    2

Embed Size (px)

DESCRIPTION

Entendendo o versionamento de código e estratégias de integração e deploy contínuo.

Text of Maven Versioning Strategy (VR)

  • 1. VERSIONING STRATEGY

2. MAVEN 3. MAVENVERSIONING STRATEGY 4. MAVENVERSIONING STRATEGY 5. SUBVERSION 6. SUBVERSION O Subversion ou simplesmente SVN, um sistema de controle de verso desenvolvido para ser o substituto do CVS.Fundado em 2000 pela CollabNet, Inc., e desenvolvido como um projeto da Apache Software Foundation.A verso 1.0 do Subversion (lanada em 23 de Fevereiro de 2004) possui vantagens em relao ao seu concorrente mais antigo CVS, como por exemplo commits" mais atmicos e releases mais consistentes.Atualmente na verso 1.8 (Junho de 2013)http://subversion.apache.org/docs/release-notes/ 7. GITVERSUS SUBVERSION 8. GITVERSUS SUBVERSION SUBVERSIONArquitetura centralizada (Cliente-Servidor)Depende de uma conexo de rede estabelecida com o repositrio centralFunciona muito bem quando o repositrio central est na mesma rede local. 9. GITVERSUS SUBVERSION SUBVERSION! ! ! ! 10. GITVERSUS SUBVERSION GITArquitetura distribuda (peer-to-peer)No depende de conexo para realizar o commit" do cdigoAtende equipes com centenas de desenvolvedoresFunciona bem quando a equipe est espalhada em diversas liais da empresaO repositrio central, quando existe, tem o papel do repositrio ocial e no como processador central das requisies.Maior complexidade 11. GITVERSUS SUBVERSION GIT (peer-to-peer)commit/update local! ! ! ! 12. GITVERSUS SUBVERSION GIT Pull: Atualiza o repositrio local com todas as alteraes feitas em outro repositrio.! Push: Envia as alteraes do repositrio local para um outro repositrio.! A sincronizao entre os desenvolvedores acontece de repositrio a repositrio e no existe, um repositrio mais importante que o outro, embora o papel de um repositrio central possa ser usado para convencionar o uxo de trabalho. 13. GITVERSUS SUBVERSION No centralizado, os desenvolvedores trabalham no mesmo branch, seja esse a Trunk ou um branch.! ! O modelo distribudo mais complicado. Na arquitetura peer-to-peer, os branches e os merges aparentemente desordenados podem tornar o grafo da evoluo do projeto confuso primeira vista.! ! 14. GITVERSUS SUBVERSION Comparativo de operaes no modelo centralizado e distribudo 15. GITVERSUS SUBVERSION Qual o melhor?! Depende do seu cenrio de trabalho! 16. MAVENVERSIONING STRATEGY 17. MAVENVERSIONING STRATEGY FOCA no objetivo! 18. MAVEN O que o Maven? Ferramenta para gerenciamento de dependncias e construo de artefatos (projetos). 19. MAVEN Como o processo hoje para construir, versionar, publicar no repositrio (Nexus) e realizar o deploy da aplicao no servidor de aplicaes (WebSphere)? 20. MAVEN 21. MAVEN 1. Cria-se o projeto com maven e dene a verso inicial 1.0.0 22. MAVEN 1. Cria-se o projeto com maven e dene a verso inicial 1.0.0 23. MAVEN 1. Cria-se o projeto com maven e dene a verso inicial 1.0.0 2. Adiciona funcionalidades ao projeto durante o sprint (Scrum) 24. MAVEN 1. Cria-se o projeto com maven e dene a verso inicial 1.0.0 2. Adiciona funcionalidades ao projeto durante o sprint (Scrum) 25. MAVEN 1. Cria-se o projeto com maven e dene a verso inicial 1.0.0 2. Adiciona funcionalidades ao projeto durante o sprint (Scrum) 3. Antes do pacote de change, altera-se a verso do pom.xml manualmente. 26. MAVEN 1. Cria-se o projeto com maven e dene a verso inicial 1.0.0 2. Adiciona funcionalidades ao projeto durante o sprint (Scrum) 3. Antes do pacote de change, altera-se a verso do pom.xml manualmente. 27. MAVEN 1. Cria-se o projeto com maven e dene a verso inicial 1.0.0 2. Adiciona funcionalidades ao projeto durante o sprint (Scrum) 3. Antes do pacote de change, altera-se a verso do pom.xml manualmente. altera a verso 28. MAVEN 1. Cria-se o projeto com maven e dene a verso inicial 1.0.0 2. Adiciona funcionalidades ao projeto durante o sprint (Scrum) 3. Antes do pacote de change, altera-se a verso do pom.xml manualmente. altera a verso release + 1 29. MAVEN 1. Cria-se o projeto com maven e dene a verso inicial 1.0.0 2. Adiciona funcionalidades ao projeto durante o sprint (Scrum) 3. Antes do pacote de change, altera-se a verso do pom.xml manualmente. altera a verso release + 1 COMO ASSIM??? 30. MAVEN 31. MAVEN 4. Envia (commit) o cdigo para o servidor de controle de verso 32. MAVEN 4. Envia (commit) o cdigo para o servidor de controle de verso 33. MAVEN 4. Envia (commit) o cdigo para o servidor de controle de verso 34. MAVEN 4. Envia (commit) o cdigo para o servidor de controle de verso 35. MAVEN 4. Envia (commit) o cdigo para o servidor de controle de verso 5. Realiza a construo do artefato (build do projeto) 36. MAVEN 4. Envia (commit) o cdigo para o servidor de controle de verso 5. Realiza a construo do artefato (build do projeto) 37. MAVEN 4. Envia (commit) o cdigo para o servidor de controle de verso 5. Realiza a construo do artefato (build do projeto) prole websphere, lembrou? 38. MAVEN 4. Envia (commit) o cdigo para o servidor de controle de verso 5. Realiza a construo do artefato (build do projeto) 6. Publica o artefato no maven proxy (em breve Nexus) prole websphere, lembrou? 39. MAVEN 4. Envia (commit) o cdigo para o servidor de controle de verso 5. Realiza a construo do artefato (build do projeto) 6. Publica o artefato no maven proxy (em breve Nexus) prole websphere, lembrou? 40. MAVEN 4. Envia (commit) o cdigo para o servidor de controle de verso 5. Realiza a construo do artefato (build do projeto) 6. Publica o artefato no maven proxy (em breve Nexus) 7. Quando d vontade, faz a branch da TAG da verso prole websphere, lembrou? 41. MAVEN 8. Antes de colocar em produo, publica-se no ambiente de testes e posteriormente homologao. 42. MAVEN 43. MAVEN release + 1 ? 44. MAVEN release + 1 ? Quando? 45. MAVEN release + 1 ? Quando? 46. MAVEN release + 1 ? Quando? 47. MAVEN release + 1 ? Quando? 48. MAVEN release + 1 ? Quando? Como? 49. MAVEN 1 . ? . ? release + 1 ? Quando? Como? 50. MAVEN 1 . ? . ? - ? release + 1 ? Quando? Como? 51. MAVEN Qual estratgia utilizar para incrementar a verso do projeto? 1 . ? . ? - ? release + 1 ? Quando? Como? 52. SNAPSHOTS Primeiro de tudo, SNAPSHOT no a mesma coisa que alpha/beta ou milestone. uma palavra-chave que signica a ltima verso do seu cdigo. Aquela em desenvolvimento! Ou seja, ela muda!Se voc zer o checkout do cdigo plataforma-1.5.0-SNAPSHOT' hoje e baixar a mesma verso mais tarde, muito provavelmente ele NO ser o mesmo.Isto tambm signica que se o seu projeto depende de uma verso SNAPSHOT, o maven precisar checar o repositrio remoto por mudanas toda hora que voc compilar o projeto. 53. RELEASES Ento o que uma release?Release no signica que a sua verso est pronta para ir produo.Signica que o desenvolvedor decidiu que a este ponto do desenvolvimento o cdigo deve ser lockado, ou seja, no ir se perder ou ser alterado.Talvez o time de desenvolvimento quer apenas distribuir este cdigo, seja como uma biblioteca para outras reas que precisam se adiantar em suas tarefas, ou instal-lo em um ambiente (servidor) de testes.Isto signica que uma release pode ser: 54. RELEASES Ento o que uma release?Release no signica que a sua verso est pronta para ir produo.Signica que o desenvolvedor decidiu que a este ponto do desenvolvimento o cdigo deve ser lockado, ou seja, no ir se perder ou ser alterado.Talvez o time de desenvolvimento quer apenas distribuir este cdigo, seja como uma biblioteca para outras reas que precisam se adiantar em suas tarefas, ou instal-lo em um ambiente (servidor) de testes.Isto signica que uma release pode ser: alpha 55. RELEASES Ento o que uma release?Release no signica que a sua verso est pronta para ir produo.Signica que o desenvolvedor decidiu que a este ponto do desenvolvimento o cdigo deve ser lockado, ou seja, no ir se perder ou ser alterado.Talvez o time de desenvolvimento quer apenas distribuir este cdigo, seja como uma biblioteca para outras reas que precisam se adiantar em suas tarefas, ou instal-lo em um ambiente (servidor) de testes.Isto signica que uma release pode ser: alpha beta 56. RELEASES Ento o que uma release?Release no signica que a sua verso est pronta para ir produo.Signica que o desenvolvedor decidiu que a este ponto do desenvolvimento o cdigo deve ser lockado, ou seja, no ir se perder ou ser alterado.Talvez o time de desenvolvimento quer apenas distribuir este cdigo, seja como uma biblioteca para outras reas que precisam se adiantar em suas tarefas, ou instal-lo em um ambiente (servidor) de testes.Isto signica que uma release pode ser: alpha beta release candidate 57. RELEASES Ento o que uma release?Release no signica que a sua verso est pronta para ir produo.Signica que o desenvolvedor decidiu que a este ponto do desenvolvimento o cdigo deve ser lockado, ou seja, no ir se perder ou ser alterado.Talvez o time de desenvolvimento quer apenas distribuir este cdigo, seja como uma biblioteca para outras reas que precisam se adiantar em suas tarefas, ou instal-lo em um ambiente (servidor) de testes.Isto signica que uma release pode ser: alpha beta release candidate patch 58. RELEASES Ento o que uma release?Release no signica que a sua verso est pronta para ir produo.Signica que o desenvolvedor decidiu que a este ponto do desenvolvimento o cdigo deve ser lockado, ou seja, no ir se perder ou ser alterado.Talvez o time de desenvolvimento quer apenas distribuir este cdigo, seja como uma biblioteca para outras reas que precisam se adiantar em suas tarefas, ou instal-lo em um ambiente (servidor) de testes.Isto signica que uma release pode ser: alpha beta release candidate patch production 59. VERSIONING STRATEGY 60. VERSIONING STRATEGY Maven strategy:..- 61. VERSIONING STRATEGY Maven strategy:..- Ex. plataforma-1.5.5-RC 62. VERSIONING STRATEGY Maven strategy:..- Estratgia de alguns fornecedores de mercado:..[--] Ex. plataforma-1.5.5-RC 63. VERSIONING STRATE