Panel | ||
---|---|---|
| ||
|
...
OpenMRS ID
GitHub account with write privileges to openmrs-core and openmrs-distro-platform (all /dev/4 and /dev/5, but can be granted temporarily on request)
JIRA privileges for administering the OpenMRS Core project
Make sure that the release manager is added to bamboo-release-manager group
If you need GitHub/JIRA privileges, Bamboo account, open a ticket to request it.
Prior to Release
Prior to any release make an initial decision and post to Talk on what will be included in the release.
...
Write a post that announces the release date and modules to be included on Talk under the Software category. Ask, if there is a need to release modules in order to include latest changes before the platform release.
Verify that there are no unreviewed open tickets against the version to be released. You can use this query https://goo.gl/WXqrI3 (adjust the fixVersion).
Review/close tickets that are in Post Commit Review.
Look carefully at In Progress tickets to see, if some of them have not been committed to a branch (back ported) already. You need to review/close such tickets as well. You can easily check, if any code was committed by searching for an issue id on a GitHub comparison page at https://github.com/openmrs/openmrs-core/compare/2.0.4...2.0.x (adjust the versions).
Move tickets to the next version that are In Progress or in Pre-Commit Review stage (use Manage Versions admin page for bulk moving of tickets, see the 4.a. step below).
Create a new version for the next release. Using the Manage Versions in https://tickets.openmrs.org/plugins/servlet/project-config/TRUNK.
Release the current version using the above admin page.
When you release a version it will allow you to move non-closed tickets to the next version.
Download the latest CIEL for OpenMRS 1.9.x (use 1.9.x regardless of the release version) as described here. Upload the version to our maven repository to be used in standalone by running (adjust the version and the file parameters to match the downloaded version of CIEL):
Code Block mvn deploy:deploy-file -DgroupId=org.openmrs.contrib -DartifactId=ciel-dictionary -Dversion=1.9.9-20170409 -Dpackaging=zip -Dfile=openmrs_concepts_1.9.9_20170409.sql.zip -DrepositoryId=openmrs-repo-contrib -Durl=https://mavenrepo.openmrs.org/nexus/content/repositories/contrib
Update the CIEL version in standalone's pom.
Check if the branch to be released is green at https://ci.openmrs.org/browse/TRUNK and https://ci.openmrs.org/browse/OP-OPM/branches
Do some last minute rudimentary testing as described in Testing Releases on snapshot artifacts published by CI.
Release process for OpenMRS Core
Build the release plan
Start by running the release plan for OpenMRS Core (e.g., "OpenMRS Core 2.7.0 Release Plan") in Bamboo.Verify build completion
Once the build is finished, confirm that the build icon has turned green, indicating a successful build.Initiate the release
Click "Release" to proceed.Set release variables
In the "Run stage (Release)" pop-up window, selectOverride a variable
and specify the following variables:build.release.type: Choose the type of release. If this is a full release, set this to
release
; if it's an alpha or beta release, useprerelease
.maven.release.version: Enter the version you are releasing (e.g.,
2.6.2
or2.7.0-alpha
).
Execute the release
After setting the variables, click "Run" to initiate the release process.Setting the next Maven development version
After a release, Bamboo automatically updates the next Maven development version on the release branch. However, if you want to set a custom version, follow these steps:Checkout to the release branch locally
Switch to the release branch you want to modify, for example,2.7.x
or2.6.x
:Run the following Maven command to set your desired development version, replacing
NEXT_DEV_VERSION
with the version you want:Code Block mvn versions:set -DnewVersion=${OMRS_DEV_VERSION} -DgenerateBackupPoms=false
Create and merge a pull request
Create a pull request with this version update and merge it into the release branch.
Release process for OpenMRS Platform
Prepare the release branch
Checkout the release branch for openmrs-distro-platform locally.
Update module versions in the
pom.xml
file to the latest released versions. (Note: You may need to release these modules individually beforehand.)
Run the platform release plan on Bamboo
In Bamboo, select the release plan created for the platform.
Initiate the release
Click "Release" to start the release process.
Set release variables
In the “Run stage (Release)” pop-up, select Override a variable and specify the following:
build.release.type: Set to
release
for a full release orprerelease
for alpha/beta.maven.release.version: Enter the version being released (e.g.,
2.6.2
,2.7.0-alpha
).maven.development.version: Set the next development version for the release (e.g.,
2.7.0-SNAPSHOT
,2.6.3-SNAPSHOT
).
Execute the release
After configuring the variables, click "Run" to initiate and complete the release process.
Update the openmrs qa-ref2app server by ensuring it is pointing to the openMRS Platform version you have just released.
create a pull request on the 2.x branch on the https://github.com/openmrs/openmrs-distro-referenceapplication repository. For example take a look at this pull request https://github.com/openmrs/openmrs-distro-referenceapplication/pull/692
Update the UAT Platform Environment: Remember to update UAT Platform server. This can be achieved by doing the following.
Go to your build plan, for example https://ci.openmrs.org/browse/OP-OP26
click the create button (with dropdown icon) in the navigation bar and select create deployment project
Fill in the details like Name e.g OpenMRS platform 2.6.0, description and check the checkbox allowing all users to see the deployment project.
Ensure the link to the build plan matches the build plan containing the release you just made and then click the create deployment button to create the project.
On the page that opens up, add an environment by clicking the Add Environment button.
Provide the environment details like environment name e.g UAT PLATFORM, description e.g Deploys uat tag for platform in docker hub.
On the page that opens up, click the setup tasks button in order to provide the script to be used to make the deployment.
Remove the existing tasks i.e clean working directory task and artifact download task, and then add a new task called script
Provide a task description i.e Deploy UAT tag for platform in docker hub and in the script body, paste the scripts below and save;-
script
Code Block language yml docker login -u ${bamboo.dockerhub.username} -p ${bamboo.dockerhub.password} set -x docker buildx imagetools create --tag ${bamboo.docker.image.id} ${bamboo.docker.image.id}:uat ssh -o StrictHostKeyChecking=no \ -o UserKnownHostsFile=/dev/null \ bamboo@uat-platform.openmrs.org \ sudo deploy-compose uat-platform
Then click the deploy button at the top but ensure the build result to be used in this deployment is the latest build result. Then click the start deployment deployment.
Then, Login to the UAT Platform Environment and confirm you can see a page like this: https://uat-platform.openmrs.org/openmrs/owa/addonmanager/index.html#/
What you SHOULD see after logging in:
Example of what you should NOT see:
In the file listing page on Sourceforge, open the recently released version, click the info "i" button next to the standalone to expand the details of the uploaded ZIP file. For "Download Button", type "OpenMRS Platform 2.0.5 Standalone". Under "Default Download For:" check all the option boxes. Click "Save" to save the settings.
Create the release notes page as a child of Platform Release Notes and include JIRA filters showing all closed tickets (e.g. Platform Release Notes 1.11.1)
Use Finding Database Changes Between Releases to put the db changes into the release notes page.
Edit the Platform Release Notes page to include as content the new release notes page you just created, and updated it to give the new version number.
Update the Releases page to include the new platform release, (replacing the prior version in the release line with this release)
Update and modify the Downloads wiki page with the latest release notes page.
Create a help desk case with https://openmrs.atlassian.net/servicedesk/customer/portals at a minimum of one working day prior to the scheduled release providing download links. DO NOT mark Impact as anything other than "Routine."
Use the following template for description (replace 2.0.5 with the correct version, the release date & time and the JIRA url, which you can determine from https://issues.openmrs.org/browse/TRUNK/?selectedTab=com.atlassian.jira.jira-projects-plugin:versions-panel):Code Block In preparation for the release of OpenMRS Platform 2.0.5 on 21/04/2017 10:00 UTC please do: 1. Update http://openmrs.org/help/report-a-bug/ to allow bug reports for Platform 2.0.5. (Do not include the rest, if it is not the latest LTE branch release) 2. Update http://openmrs.org/download/ to point to Platform 2.0.5 standalone at http://sourceforge.net/projects/openmrs/files/releases/OpenMRS_Platform_2.0.5/openmrs-standalone-2.0.5.zip/download 3. Update http://openmrs.org/download/ to point to Platform 2.0.5 war at http://sourceforge.net/projects/openmrs/files/releases/OpenMRS_Platform_2.0.5/openmrs.war/download
Create a new case at OpenMRS helpdesk requesting to update the OpenMRS.org home page and downloads page to the latest release. Please provide links to the downloads.
Create a blog post about the full release(Note: this should be done only after releasing the Full Release not during the alpha or beta release) you have just made by creating a help desk case in the infrastructure requests portal with https://openmrs.atlassian.net/servicedesk/customer/portals requesting for access to the website so that you can be able update the blogs page with your blog.
Write a post that announces the released on Talk under Software category similar to the blog post .
With the exception of pre-releases, you need to release the version in jira, you will probably need admin privileges to do this, you can ask for them through the help desk or ask somebody with the privileges to help you release it in JIRA.
Go to JIRA
Click the Projects menu item and select OpenMRS Core (TRUNK) from the dropdown.
You should see a menu on the left panel on the page that gets loaded, select Releases.
In the Actions column click the row matching the version you're releasing and select Release from the little pop up menu.
Set the release date and click the Release button, note that you might have to move any unresolved issues to the next release.
...
Expand | |||||
---|---|---|---|---|---|
|
...