[yast-devel] Versioning the SLE-12-SP2-CASP branch
Josef and me are discussing how to version stuff in CASP vs SP2 when both branches are getting different subset of changes. Always taking into account that, when CaaSP is released, the SP2 branch should contain all the changes and the CASP branch should die. Let's take an example (disclaimer, you will probably need to open this mail in three windows to follow the reasoning and see the differences): Jan 1st, both SP2 and CASP are in sync. Feb 1st, we introduce change A only in CASP March 1st, we introduce change B only in CASP April 1st, we introduce change C in SP2 and we merge into CASP (remember we should merge into CASP EVERY change done to SP2) May 1st, we introduce change D in CASP and we consider the code in CASP is ready for entering the SP2 branch (remember the plan is to merge into SP2 as soon as it's safe). June 1st, we introduce change E in SP2 (and, of course, we merge in CASP July 1st, we introduce change F in CASP ... The approach suggested by Josef =============================== Josef, suggest to rewrite history in the CASP branch to make merging back to SP2 easier. After all, the CASP branch will die at some point and its history will not be relevant anymore. Status at Jan 1st CASP changelog says: 3.1.10 Blah SP2 changelog says: 3.1.10 Blah Status at Feb 1st CASP changelog says: 3.1.10.1 Change A 3.1.10 Blah SP2 changelog says: 3.1.10 Blah Status at March 1st CASP changelog says: 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah SP2 changelog says: 3.1.10 Blah Status at April 1st (after the merge) CASP changelog says: 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah SP2 changelog says: 3.1.11 Change C 3.1.10 Blah Status at May 1st (after the merge) CASP changelog says: 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah SP2 changelog says: 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah Status at June 1st (after the merge) CASP changelog says: 3.1.13 Change E 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah SP2 changelog says: 3.1.13 Change E 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah Status at July 1st CASP changelog says: 3.1.13.1 Change F 3.1.13 Change E 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah SP2 changelog says: 3.1.13 Change E 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah The approach suggested by me ============================ The approach above constantly rewrites the CASP branch changelog to make the impression that CASP and SP2 has always evolved hand by hand. I believe the risk to create confusion (or to make-up history too much and loose information) is bigger than the gain. I propose this: Status at Jan 1st CASP changelog says: 3.1.10 Blah SP2 changelog says: 3.1.10 Blah Status at Feb 1st CASP changelog says: 3.1.10.1 Change A 3.1.10 Blah SP2 changelog says: 3.1.10 Blah Status at March 1st CASP changelog says: 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah SP2 changelog says: 3.1.10 Blah Status at April 1st (after the merge) CASP changelog says: 3.1.11.1 Change C 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah SP2 changelog says: 3.1.11 Change C 3.1.10 Blah Status at May 1st (after the merge) CASP changelog says: 3.1.12 Change D 3.1.11.1 Change C 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah SP2 changelog says: 3.1.12 Changes A, B and D 3.1.11 Change C 3.1.10 Blah Status at June 1st (after the merge) CASP changelog says: 3.1.13 Change E 3.1.12 Change D 3.1.11.1 Change C 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah SP2 changelog says: 3.1.13 Change E 3.1.12 Changes A, B and D 3.1.11 Change C 3.1.10 Blah Status at July 1st CASP changelog says: 3.1.13.1 Change F 3.1.13 Change E 3.1.12 Change D 3.1.11.1 Change C 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah SP2 changelog says: 3.1.13 Change E 3.1.12 Changes A, B and D 3.1.11 Change C 3.1.10 Blah What others think? -- Ancor González Sosa YaST Team at SUSE Linux GmbH -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org To contact the owner, e-mail: yast-devel+owner@opensuse.org
On 03/02/17 10:44, Ancor Gonzalez Sosa wrote:
Josef and me are discussing how to version stuff in CASP vs SP2 when both branches are getting different subset of changes. Always taking into account that, when CaaSP is released, the SP2 branch should contain all the changes and the CASP branch should die.
Let's take an example (disclaimer, you will probably need to open this mail in three windows to follow the reasoning and see the differences):
Jan 1st, both SP2 and CASP are in sync. Feb 1st, we introduce change A only in CASP March 1st, we introduce change B only in CASP April 1st, we introduce change C in SP2 and we merge into CASP (remember we should merge into CASP EVERY change done to SP2) May 1st, we introduce change D in CASP and we consider the code in CASP is ready for entering the SP2 branch (remember the plan is to merge into SP2 as soon as it's safe). June 1st, we introduce change E in SP2 (and, of course, we merge in CASP July 1st, we introduce change F in CASP ...
The approach suggested by Josef =============================== Josef, suggest to rewrite history in the CASP branch to make merging back to SP2 easier. After all, the CASP branch will die at some point and its history will not be relevant anymore.
Status at Jan 1st CASP changelog says: 3.1.10 Blah
SP2 changelog says: 3.1.10 Blah
Status at Feb 1st CASP changelog says: 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.10 Blah
Status at March 1st CASP changelog says: 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.10 Blah
Status at April 1st (after the merge) CASP changelog says: 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
SP2 changelog says: 3.1.11 Change C 3.1.10 Blah
Status at May 1st (after the merge) CASP changelog says: 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
SP2 changelog says: 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
Status at June 1st (after the merge) CASP changelog says: 3.1.13 Change E 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
SP2 changelog says: 3.1.13 Change E 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
Status at July 1st CASP changelog says: 3.1.13.1 Change F 3.1.13 Change E 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
SP2 changelog says: 3.1.13 Change E 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
The approach suggested by me ============================ The approach above constantly rewrites the CASP branch changelog to make the impression that CASP and SP2 has always evolved hand by hand. I believe the risk to create confusion (or to make-up history too much and loose information) is bigger than the gain. I propose this:
Status at Jan 1st CASP changelog says: 3.1.10 Blah
SP2 changelog says: 3.1.10 Blah
Status at Feb 1st CASP changelog says: 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.10 Blah
Status at March 1st CASP changelog says: 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.10 Blah
Status at April 1st (after the merge) CASP changelog says: 3.1.11.1 Change C 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.11 Change C 3.1.10 Blah
Status at May 1st (after the merge) CASP changelog says: 3.1.12 Change D 3.1.11.1 Change C 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.12 Changes A, B and D 3.1.11 Change C 3.1.10 Blah
Status at June 1st (after the merge) CASP changelog says: 3.1.13 Change E 3.1.12 Change D 3.1.11.1 Change C 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.13 Change E 3.1.12 Changes A, B and D 3.1.11 Change C 3.1.10 Blah
Status at July 1st CASP changelog says: 3.1.13.1 Change F 3.1.13 Change E 3.1.12 Change D 3.1.11.1 Change C 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.13 Change E 3.1.12 Changes A, B and D 3.1.11 Change C 3.1.10 Blah
What others think?
I would go for the second approach and avoid rewriting the history. IMHO that approach reflects reality better. Regards, Imo -- Imobach González Sosa YaST team at SUSE LINUX GmbH Blog: https://imobachgs.github.io/ Twitter: @imobachgs
I also used second approach in the past for example in yast-network. On 02/03/2017 11:17 AM, Imobach Gonzalez Sosa wrote:
On 03/02/17 10:44, Ancor Gonzalez Sosa wrote:
Josef and me are discussing how to version stuff in CASP vs SP2 when both branches are getting different subset of changes. Always taking into account that, when CaaSP is released, the SP2 branch should contain all the changes and the CASP branch should die.
Let's take an example (disclaimer, you will probably need to open this mail in three windows to follow the reasoning and see the differences):
Jan 1st, both SP2 and CASP are in sync. Feb 1st, we introduce change A only in CASP March 1st, we introduce change B only in CASP April 1st, we introduce change C in SP2 and we merge into CASP (remember we should merge into CASP EVERY change done to SP2) May 1st, we introduce change D in CASP and we consider the code in CASP is ready for entering the SP2 branch (remember the plan is to merge into SP2 as soon as it's safe). June 1st, we introduce change E in SP2 (and, of course, we merge in CASP July 1st, we introduce change F in CASP ...
The approach suggested by Josef =============================== Josef, suggest to rewrite history in the CASP branch to make merging back to SP2 easier. After all, the CASP branch will die at some point and its history will not be relevant anymore.
Status at Jan 1st CASP changelog says: 3.1.10 Blah
SP2 changelog says: 3.1.10 Blah
Status at Feb 1st CASP changelog says: 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.10 Blah
Status at March 1st CASP changelog says: 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.10 Blah
Status at April 1st (after the merge) CASP changelog says: 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
SP2 changelog says: 3.1.11 Change C 3.1.10 Blah
Status at May 1st (after the merge) CASP changelog says: 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
SP2 changelog says: 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
Status at June 1st (after the merge) CASP changelog says: 3.1.13 Change E 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
SP2 changelog says: 3.1.13 Change E 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
Status at July 1st CASP changelog says: 3.1.13.1 Change F 3.1.13 Change E 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
SP2 changelog says: 3.1.13 Change E 3.1.12 Change D 3.1.11.1 CASP changes (A and B) 3.1.11 Change C 3.1.10 Blah
The approach suggested by me ============================ The approach above constantly rewrites the CASP branch changelog to make the impression that CASP and SP2 has always evolved hand by hand. I believe the risk to create confusion (or to make-up history too much and loose information) is bigger than the gain. I propose this:
Status at Jan 1st CASP changelog says: 3.1.10 Blah
SP2 changelog says: 3.1.10 Blah
Status at Feb 1st CASP changelog says: 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.10 Blah
Status at March 1st CASP changelog says: 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.10 Blah
Status at April 1st (after the merge) CASP changelog says: 3.1.11.1 Change C 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.11 Change C 3.1.10 Blah
Status at May 1st (after the merge) CASP changelog says: 3.1.12 Change D 3.1.11.1 Change C 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.12 Changes A, B and D 3.1.11 Change C 3.1.10 Blah
Status at June 1st (after the merge) CASP changelog says: 3.1.13 Change E 3.1.12 Change D 3.1.11.1 Change C 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.13 Change E 3.1.12 Changes A, B and D 3.1.11 Change C 3.1.10 Blah
Status at July 1st CASP changelog says: 3.1.13.1 Change F 3.1.13 Change E 3.1.12 Change D 3.1.11.1 Change C 3.1.10.2 Change B 3.1.10.1 Change A 3.1.10 Blah
SP2 changelog says: 3.1.13 Change E 3.1.12 Changes A, B and D 3.1.11 Change C 3.1.10 Blah
What others think?
I would go for the second approach and avoid rewriting the history. IMHO that approach reflects reality better.
Regards, Imo
-- Knut Alejandro Anderssen González YaST Team at SUSE Linux GmbH -- To unsubscribe, e-mail: yast-devel+unsubscribe@opensuse.org To contact the owner, e-mail: yast-devel+owner@opensuse.org
participants (3)
-
Ancor Gonzalez Sosa
-
Imobach Gonzalez Sosa
-
Knut Alejandro Anderssen González