Skip to content

mgmt__release_and_deployment_process

Marian Müller edited this page Mar 1, 2018 · 44 revisions
Table of Contents

Release and Deployment Process

Create a new issue with the following markdown contents for each release of any plugin/module containing the following tasks to be performed on release:

Template for release tasks (markdown)
 **Release tasks:**
***1. Preparation***
* [ ] Check running maven build on the development branch `mvn clean install`
  * especially for eclipse plugin release run `mvn clean install -Pp2-build-mars,p2-build-stable` in cobigen-eclipse folder to run SWTBot UI tests locally. **Be patient, do not touch mouse and keyboard.**
* [ ] Check if all tests are green and if there are no ignored ones left. As there are ignored ones, please check them if they can be removed or they only should be temporarily ignored. Potentially fix them.
* [ ] Check/Update documentation according to changelog to be released
  * [ ] especially update version number of module to be released [here](https://github.com/devonfw/tools-cobigen/wiki/CobiGen)
  * [ ] Update the wiki submodule and commit the latest version to target the updated release version of the wiki 
    \```
    cd cobigen-documentation/tools-cobigen.wiki
    git pull origin master
    cd ..
    git add tools-cobigen.wiki
    git commit -m"#<releaseIssueNo> update docs"
    git push
    \```
  * [ ] Check branch build to not fail in production line https://devon.s2-eu.capgemini.com/

***2. Merging / Review***
* [ ] **Locally** merge development branch to master branch
  * [ ] Check for changed maven dependencies and document them. _As dependencies have been changed:_
    * [ ] check new dependencies with legal (in case of not yet used licenses).
    * **If there are any issues with the dependencies. Abort, get in contact.**
    * [ ] document the changes in the [ChangeLog of the dependency tracking](https://github.com/devonfw/tools-cobigen/wiki/mgmt_dependency-and-license-tracking).
    * [ ] create a new licensing document for the new version (just once for each eclipse/maven release). Find the latest document in [TeamForge](https://coconet.capgemini.com/sf/go/projects.apps2_devon/docman.root.devonfw.licenses.de) and upload a new version next to it. Chapter one is the only to be updated according to changed dependencies and included components.
  * [ ] Perform final review of merged contents
    * [ ] Are there any changes in a different module not corresponding to the current development branch? Try to find the cause and potentially discuss with the guy failing.
    * [ ] Any major issues, which would prevent from merging? Missing files, changes?
    * if ok - commit (if not yet done) **but do not push** to master branch 
    * if not - abort merge, cleanup working copy, and fix on dev branch

***3. Testing / Consolidation***
* [ ] Higher component version number to release version
* [ ] Fix snapshot versions of dependencies of all components to be released to its release versions
* [ ] Install components locally and/or deploy to experimental update site
* [ ] Perform a final manual test of all issues resolved in the milestone to be released.
* [ ] Perform integration tests
  * especially for cobigen-eclipse if cobigen internal dependencies have been changed

***4. Deployment***
* [ ] Close eclipse IDE
* [ ] In case of non-eclipse component (for cobigen-core, just execute first line): 
  \```
  mvn clean package bundle:bundle -Pp2-bundle -Dmaven.test.skip=true
  mvn install bundle:bundle -Pp2-bundle p2:site -Dmaven.test.skip=true
  mvn deploy -Pp2-upload-stable -Dmaven.test.skip=true -Dp2.upload=stable
  \```
* [ ] In case of eclipse plug-in release: 
  \```
  cd cobigen-eclipse
  mvn clean deploy -Pp2-build-stable,p2-upload-stable,p2-build-mars -Dp2.upload=stable
  \```
* [ ] Check the update site `http://de-mucevolve02/files/cobigen/updatesite/stable/` by installing/updating it once to an eclipse distribution.
* [ ] Assure, that everything is committed and the working copy is clean
* [ ] Create a tag according to the naming conventions
* [ ] Push
* [ ] Close milestone and create new release with binaries on GitHub

***5. Follow-up***
* [ ] Merge master branch back to corresponding dev_ branch
* [ ] Create new Milestone (minor version update)
* [ ] increase version on dev branch to next minor version + SNAPSHOT
* [ ] Push
Clone this wiki locally