Difference between revisions of "Release Integration"

From Gcube Wiki
Jump to: navigation, search
(Release Preparation)
(Release Preparation)
 
(9 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
In order to develop a new component for gCube, the developer must perform the following steps:
 
In order to develop a new component for gCube, the developer must perform the following steps:
  
* Upgrade and test the component in development environment
+
* Make sure the maven-parent '''1.1.0''' is used as parent pom
 +
* Upgrade and test the component in the development environment
 
* Deploy the SNAPSHOT version on gcube-snapshots repository
 
* Deploy the SNAPSHOT version on gcube-snapshots repository
* Add the maven-parent '''1.1.0''' to the component pom
+
* Make sure the Git repository of the component is set up with a  working [https://wiki.gcube-system.org/gcube/Gitea/Jenkins:_Setting_up_Webhooks CI webhook]
 +
* Make sure the [https://wiki.gcube-system.org/gcube/Cloning_Git_Repository#Set_up_the_SCM_Connection scm section] is present in your pom
  
 
= Release Preparation =
 
= Release Preparation =
 
In order to prepare a new component for the integration within a gCube release, the developer must perform the following steps:
 
In order to prepare a new component for the integration within a gCube release, the developer must perform the following steps:
  
* Align the component to the gCubeTemplate defined here: https://code-repo.d4science.org/gCubeCI/Templates/src/branch/master/gCubeComponents
+
* Align the component's repo content to the templates defined here: https://code-repo.d4science.org/gCubeCI/Templates/src/branch/master/gCubeComponents
** remember that the CHANGELOG.md file must have a section that 'tags' the work done in the current release. This tag is expected in the format 'v<version>] [r<release>] - <date>'. See the [https://code-repo.d4science.org/gCubeCI/Templates/src/branch/master/gCubeComponents/CHANGELOG.md CHANGELOG.md  ] template.
+
** '''IMPORTANT''': the CHANGELOG.md file must have a section that 'tags' the work done in the current release. This tag is expected in the format '[v<version>] - <date>'. See the [https://code-repo.d4science.org/gCubeCI/Templates/src/branch/master/gCubeComponents/CHANGELOG.md CHANGELOG.md  ] template.
 
* Remove the -SNAPSHOT postfix from the version in the pom on the master branch
 
* Remove the -SNAPSHOT postfix from the version in the pom on the master branch
 +
* Make sure the related JenkinsJob is pointing to the master branch
 
* Create a new subticket of "gCube Release Next" defined here: https://support.d4science.org/issues/17579
 
* Create a new subticket of "gCube Release Next" defined here: https://support.d4science.org/issues/17579
 
** The subject ticket must uniquely identify the component
 
** The subject ticket must uniquely identify the component
 +
** When the all these steps have been completed the ticket can be set to ''Available'' state.
  
When the all these steps have been completed the ticket can be set to Available state. The Release Manager is in charge to add all the Available tickets to the new Release.
+
Then, the '''Release Manager''' is in charge to add all the ''Available'' tickets to the new Release and the '''integration phase''' of the  release can start.
  
Once the preparation steps are completed, the integration phase can be started.
+
*During the integration phase, the master branch of each component under release must be frozen until the release is declared closed by Release Manager. As per feature branching policy, any work must be performed in a separate feature or fix branch.
 
+
*After the integration phase, the component master branch must be frozen until the release will be declared closed by Release Manager.
+

Latest revision as of 16:01, 4 May 2022

Preliminary steps

In order to develop a new component for gCube, the developer must perform the following steps:

  • Make sure the maven-parent 1.1.0 is used as parent pom
  • Upgrade and test the component in the development environment
  • Deploy the SNAPSHOT version on gcube-snapshots repository
  • Make sure the Git repository of the component is set up with a working CI webhook
  • Make sure the scm section is present in your pom

Release Preparation

In order to prepare a new component for the integration within a gCube release, the developer must perform the following steps:

  • Align the component's repo content to the templates defined here: https://code-repo.d4science.org/gCubeCI/Templates/src/branch/master/gCubeComponents
    • IMPORTANT: the CHANGELOG.md file must have a section that 'tags' the work done in the current release. This tag is expected in the format '[v<version>] - <date>'. See the CHANGELOG.md template.
  • Remove the -SNAPSHOT postfix from the version in the pom on the master branch
  • Make sure the related JenkinsJob is pointing to the master branch
  • Create a new subticket of "gCube Release Next" defined here: https://support.d4science.org/issues/17579
    • The subject ticket must uniquely identify the component
    • When the all these steps have been completed the ticket can be set to Available state.

Then, the Release Manager is in charge to add all the Available tickets to the new Release and the integration phase of the release can start.

  • During the integration phase, the master branch of each component under release must be frozen until the release is declared closed by Release Manager. As per feature branching policy, any work must be performed in a separate feature or fix branch.