Wir unterstĂĽtzen die Entwicklung mehrerer Versionen des Produkts in Git. Stanislav Lukyanov (GridGain)



Hallo! Ich heiße Stanislav Lukyanov. Ich arbeite für GridGain. Heute wollte ich darüber sprechen, wie wir ältere Versionen in Git pflegen.





Zunächst ein paar Worte darüber, was für ein Bericht es sein wird, wer nützlich sein wird und wer ich bin.





, .



:



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


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 . : « ?».



? , .



Warum? Wir wählen eine kleinere oder größere Version aus und veröffentlichen sie einfach durch Änderung. Major bricht die Kompatibilität, Moll nicht. Formell bricht zumindest nicht. Als Teil der Neben- oder Hauptversion veröffentlichen wir dann weiterhin unabhängig voneinander Patches, sodass die benutzerdefinierten Versionen, sobald sie in der Nebenversion veröffentlicht wurden, das Upgrade in dieser Version erleichtern.




All Articles