Apoyamos el desarrollo de múltiples versiones del producto en Git. Stanislav Lukyanov (GridGain)



¡Hola! Mi nombre es Stanislav Lukyanov. Trabajo para GridGain. Hoy quería hablar sobre cómo mantenemos las versiones anteriores en Git.





Primero, un par de palabras sobre qué tipo de informe será, quién será útil y quién soy.





, .



:



  • , , – .
  • , , .
  • , , , - .


GridGain. , , , , .





GridGain – . , Apache Ignite, open source. , Ignite, . GridGain - , .



Ignite, .





? . . , , .



, , , enterprise. enterprise?





– . , , . Enterprise .





.





- . – ?



release model:





, . minor- . . , 8 minor- . . minor-.



, , 5-10 . .





? , ?



.





, .





- .





, QA. QA , . .





.





.





QA, .





-, . . - , , 1.3. QA 1.3 - , .





: « B 1.3?».



– 1.3.





? , , scope creep. . 1.3 . , .



?





. 1.3. 1.3 . . , , 1.3 , .





, 2019- , branch 1.3 branch , . . B.



, , - ? , , , B .





, B , , , .



.





, branches , , . 1.3.0. , .





, .





.





.





, 1.3.2. , - 1.3, , . . 1.3.2.



– 1.3.3. , .





- 1.3.2, .





1.3.2, 1.3.3.





, , , . , 1.3.2. QA . 1.3.3., , 1.3. .



, , , , .





, , . , , - , , , .





, :



  • : - , - , - , .
  • , , - , . - .
  • , , , .




:



  1. . , - . , , , QA .
  2. . - , , , .
  3. :


  • – , 2-3-4 .
  • – . -- . , - , . .




?



  • Git. , .
  • , , .
  • , .




Github Flow.





, Github Flow? , , , Github Flow.



Git, .





. - , feature branch, bugfix branch.





, pull request integration testing review .





, Github Flow – : deploy. CI/CD, , , , merge deploy production, deploy production, . . .





, - , , , .





Github Flow , ?



  • , – merge. . , - , – merge , .
  • , . - - .
  • , , .


Github Flow - , .



, , Git. feature branch merge – . , .





Git Flow – . , develop.



– , .



Develop – , .



Feature branches develop.





.





, release branch, .





, develop, . . merge.





, .



, hotfix .





, branch develop, . hotfix, . develop.





.





?



  1. , release branches. .
  2. , ? , .


  • , branches, hotfix branches develop . . , , , develop.
  • release branches hot fix , - , . , hot fix, - - . Hot fix . - Git Flow , .


  1. Git Flow . , hot fix, .




, , , .





. 5 , .



, 1.3. - .



, . ?





-, , . , , - 1.3.





, 1.5, 1.4, 1.3.



? , – , , – . merge-, - , , .



: master-first target-first.





Master-first upstream first – , .



. 1.3, 1.4, , 1.4, 1.5 . .



?



  • , . , . , , bugfix, - bugfix , — .



  • . , .





, 1.3. . , - merge-, , - - 1.3.





– target-first.



1.3 . , .



, . , .



. , , . – , . – .



, , . .



:





, , . .



master-first, . , .





, , - 1.3.2, QA 1.3, 1.3.2 QA, dev- 1.3.3 , .



: 1.3.2 1.3.3.



: « , ?». , - 1.3, , ? .





, , branches.



1.3 branch, 1.3-master. 1.3 , . . . - .



, -, branch, 1.3-master. , . release engineers 1.3-master. development, QA, , 1.3-master.



- QA, , B 1.3.2, release engineer, . Release engineer scope , . , cherry-pick.





, – ? ?





, branch. , QA – branch.





branches , , , Github Flow, . , - , branch.





:



  • – , branches. .



  • Branches – , , , , branch - . . branches. .







. ? , , ?



?





, , , Github Flow , .



bugfix-, . .



?





– cherry-pick. , , cherry-pick – , Git .



bugfix release .



?



  • - merge-, merge .



  • -, . – work-in-progress, .



  • -, , , – merge-, – . , .







– cherry-pick -m. cherry-pick -m? cherry-pick . merge- , , bugfix. , , , merge. .



? , , . . , , merge.



, .





, – merge --squash. merge --squash? , merge- , squash-, , cherry-pick -m, A, B, C bugfix . merge- . . . , , cherry-pick’ .



, cherry-pick bugfixes . , - , merge --squash .





, , .



, , .





release branches , , -branches, .



, , release engineer, .



:





- bugfix, bugfix-. review , .





cherry-pick 1.5,





1.4,





1.3.





. , . . .



, . – Jira fix version. , , , , . , 1.3, 1.3.



, , release engineers?





, master-1.3, .





, scope 1.3-master.



, scope , 1.3.2.





, , , 1.3-master .



, 1.3-master .





- 1.3.2, , - B, .





, 1.3-master.





release engineer 1.3.2.







, :



  1. , .



  2. , .



  3. :





  • – .
  • – .




, :



  1. , release branches master branches. master branches. .



  2. : master-first upstream first, , , .



  3. , master branches. , branches, 1.1.1-master . . , .







?





– , .



, , . , upstream first, , . , branches , - - - , . . merges , - . .



, , . , . , git log’ Jira. , merge --squash , Jira issue.



fix version, Jira 1 1. , - - .





. Git, , . , .



, 1.1.10 - 1.2. ? 1.2.1?



.



, 1.1.10 , 1.2.1 3 . 1.1.10 . , , , 1.2.1.



, minor-, , .





, , . , , – .



, , , , , . .



, . , . 100 100. , .



, - , , Git, , , .



. ?





  1. , – , . , Git.


  • , .



  • , - .





  1. Github Flow, Git Flow, - , , . , , , , - .



  2. . .





  • master-first upstream first release master branches, , miner-.





  1. .


  • , : - Git Jira.



  • , .





!





! ! first? , , , 1.3. , 1.3. , 1.3 target .



, , , , , . , , , .



! , - , . , upstream first. . - Git Jira, . . merge . upstream first, , - 1.3 , , , , - .



, , , , , , , , , - , .



! ! , , ?



. . . , , , , — , . - , , , . - , - . , , , . , - , - , . . .



performance ?



- performance, - , , , . regression issue .



release engineer , - , ?



Github .



, ?



, , . , regression issue, - , , , . .



. , , .



frameworks , , . framework , - .



. 99 % . 1 %, performance - bugfix’ 2 , bugfix , - . , , , , .



! , «». , upstream first, , , 1.3. , 1.3, 1.5, 1.4, , 1.2? 1.5 ?



. , , , bugfix. , . , , . , , - .



, , . , . - , , , , . .



?



, . . , environment, , , .



. , , master-1.6?



master-1.6. - master-1.6 . , – , .



. , . ? . . - , , , - , - , - . . . 1.3, 1.3.1, 1.3.2, 1.3.3 . ?



. . . , ?



- , . , branches . , , . . . 1.3.3, 1.3.1.



, . 1.3.1, - , - .



, ? - , , . production , - , : «, , », , , . - , , , - operation. chance list . 1 000 . : « ?».



? , .



¿Por qué? Seleccionamos y lanzamos una versión menor o mayor simplemente por cambio. Major rompe la compatibilidad, mientras que la menor no. Formalmente no se rompe, al menos. Pero como parte de la versión menor o mayor, continuamos lanzando parches de forma independiente en ellos, de modo que los clientes, una vez lanzados en la versión secundaria, faciliten la actualización dentro de ella.




All Articles