我们支持在Git中开发多个产品版本。斯坦尼斯拉夫·卢卡扬诺夫(GridGain)



你好!我叫Stanislav Lukyanov。我为GridGain工作。今天,我想谈一谈我们如何在Git中维护旧版本。





首先,简要介绍一下报告的类型,有用的人以及我是谁。





, .



:



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


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



? , .



为什么?我们仅通过更改就可以选择并发布次要或主要版本。重大破坏兼容性,而次要则不兼容。至少不会正式中断。但是,作为次要或主要版本的一部分,我们将继续独立地对其发布补丁程序,以便在次要版本中以产品形式发布的客户使其更易于在其中进行升级。




All Articles