You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your improvement request related to a problem? Please describe.
In the discussion of issue #2388 ([Feature] Root configuration should propagate to branches) I came up with the idea of replacing the mainline version mode with the continuous deployment mode.
I would like to not having a separate main line mode and reuse the ContinuousDeployment mode for this scenario as well. If we think about it: What is the different of ContinuousDeployment and Mainline when it has been defined on the main branch?
Continuous Delivery vs. Continuous Deployment
With continuous delivery, every code change is built, tested, and then pushed to a non-production testing or staging environment. There can be multiple, parallel test stages before a production deployment. The difference between continuous delivery and continuous deployment is the presence of a manual approval to update to production. With continuous deployment, production happens automatically without explicit approval.
In my opinion there is no different from the business process point of view.
Context
I think we should first do the breaking change on the versioning mode ContinuousDeployment and ensure that it behaves like the mainline mode. In a second step we can remove the mainline mode and replace it with ContinuousDeployment.
Possible Implementation
The business rules are the following to increment the next version number (ShouldIncrement is true) in MergeMessageVersionStrategy:
the PreventIncrementOfMergedBranchVersion of the effective branch configuration is false or
CurrentCommit is not equals to MergeCommit and VersioningMode of the effective branch configuration is not equals to ContinuousDelivery
[Test]publicvoid__Just_A_Test__(){varmainlineConfiguration=TestConfigurationBuilder.New.WithoutVersioningMode().WithTag("release","beta").WithTag("main","ci").WithVersioningMode("release",VersioningMode.Mainline).WithVersioningMode("main",VersioningMode.Mainline).Build();varcontinuousDeploymentConfiguration=TestConfigurationBuilder.New.WithoutVersioningMode().WithTag("release","beta").WithTag("main","ci").WithVersioningMode("release",VersioningMode.ContinuousDeployment).WithVersioningMode("main",VersioningMode.ContinuousDeployment).Build();varcontinuousDeliveryConfiguration=TestConfigurationBuilder.New.WithoutVersioningMode().WithTag("release","beta").WithTag("main","ci").WithVersioningMode("release",VersioningMode.ContinuousDelivery).WithVersioningMode("main",VersioningMode.ContinuousDelivery).Build();usingvarfixture=newEmptyRepositoryFixture("main");fixture.MakeACommit("one");fixture.BranchTo("release/1.0.0");fixture.MakeACommit("two");fixture.MakeACommit("three");fixture.Checkout("main");fixture.MergeNoFF("release/1.0.0");fixture.AssertFullSemver("1.0.0-ci",mainlineConfiguration);fixture.AssertFullSemver("1.0.0-ci.4",continuousDeploymentConfiguration);fixture.AssertFullSemver("1.0.0-ci.1+4",continuousDeliveryConfiguration);fixture.Repository.Branches.Remove("release/1.0.0");fixture.AssertFullSemver("1.0.0-ci",mainlineConfiguration);// <<---- the same sem version like ContinuousDeploymentfixture.AssertFullSemver("1.0.0-ci.4",continuousDeploymentConfiguration);fixture.AssertFullSemver("1.0.0-ci.1+4",continuousDeliveryConfiguration);fixture.MakeACommit("four");fixture.AssertFullSemver("1.0.1-ci",mainlineConfiguration);// <<---- the same sem version like ContinuousDeploymentfixture.AssertFullSemver("1.0.1-ci.1",continuousDeploymentConfiguration);// <<---- this is importantfixture.AssertFullSemver("1.0.0-ci.1+5",continuousDeliveryConfiguration);// <<---- this is important}
This issue has been automatically marked as stale because it has not had recent activity. After 30 days from now, it will be closed if no further activity occurs.
This issue has been automatically marked as stale because it has not had recent activity. After 30 days from now, it will be closed if no further activity occurs.
Is your improvement request related to a problem? Please describe.
In the discussion of issue #2388 ([Feature] Root configuration should propagate to branches) I came up with the idea of replacing the mainline version mode with the continuous deployment mode.
(see #3235 (comment) and #2388 (comment))
Detailed Description
I would like to not having a separate main line mode and reuse the ContinuousDeployment mode for this scenario as well. If we think about it: What is the different of ContinuousDeployment and Mainline when it has been defined on the main branch?
Definition in AWS https://aws.amazon.com/devops/continuous-delivery/:
In my opinion there is no different from the business process point of view.
Context
I think we should first do the breaking change on the versioning mode ContinuousDeployment and ensure that it behaves like the mainline mode. In a second step we can remove the mainline mode and replace it with ContinuousDeployment.
Possible Implementation
The business rules are the following to increment the next version number (
ShouldIncrement
is true) in MergeMessageVersionStrategy:Edit:
Final design can be found here:
The text was updated successfully, but these errors were encountered: