salut! Je m'appelle Stanislav Lukyanov. Je travaille pour GridGain. Aujourd'hui, je voulais parler de la façon dont nous maintenons les anciennes versions dans Git.
Tout d'abord, quelques mots sur le type de rapport que ce sera, qui sera utile et qui je suis.
, .
:
- , , – .
- , , .
- , , , - .
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. .
, , , , .
, , . , , - , , , .
, :
- : - , - , - , .
- , , - , . - .
- , , , .
:
- . , - . , , , QA .
- . - , , , .
- :
- – , 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.
.
?
- , release branches. .
- , ? , .
- , branches, hotfix branches develop . . , , , develop.
- release branches hot fix , - , . , hot fix, - - . Hot fix . - Git Flow , .
- 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.
, :
, .
, .
:
- – .
- – .
, :
, release branches master branches. master branches. .
: master-first upstream first, , , .
, 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, , , .
. ?
- , – , . , Git.
, .
, - .
Github Flow, Git Flow, - , , . , , , , - .
. .
master-first upstream first release master branches, , miner-.
- .
, : - 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 . : « ?».
? , .
Pourquoi? Nous sélectionnons et publions une version mineure ou majeure simplement par modification. Major casse la compatibilité, tandis que mineur ne le fait pas. Formellement ne casse pas, du moins. Mais dans le cadre de la version mineure ou majeure, nous continuons ensuite à publier indépendamment des correctifs sur eux, de sorte que les customrs, une fois publiés en prod sur la version mineure, facilitent la mise à niveau en son sein.