Table of Contents
- Introduction
- Thoughts to automate
- Steps for the release process
- 1. Review issue list (Manually)
- 2. Prepare release note (Manually)
- 3. Update xCAT2 Release Information (Automatically)
- 4. merge master branch to xCAT 2.X branch (Manually)
- 5. Build xCAT RPM and DEB Package (Manually)
- 6. Overall Test against Relase build (Manually)
- 7. Update xcat.org and all documentation (Automatically)
- 8. Sync xcat.org from master branch to stable branch of xcat.org repository
- 9. Update xCAT Offical Portal server to obtain the latest pages.
- 10. Run process on https://github.com/xcat2/xcat-core/releases/new
- 11. Edit the sidebar News in the Wiki on xCAT github, to add a new entry for current release.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Introduction
This documentation describes to automate some of the release process steps to reduce the manual work when xCAT is released.
Thoughts to automate
When we release candidate build, generally we do preparation work, then run the test, if the test passes, we update some documentation to finish the release process. The automation process will have 2 parts. One is before the test, the other one is after the test. So, the new release process have following steps.
1. Prepare RC.
Name: pre_release
Usage: ./pre_release
Flow:
1. Prompt to ask user to input the release version <release_number>
2. Prompt to ask user to confirm Y/N?
3. If no, exit, if yes, go ahead to modify the release file (/xcat-core/docs/source/conf.py)
4. Commit the change? Y/N
5. If no, exit, if yes, go ahead to commit the change.
6. end
2. Release
Name:go_release
Usage: ./go_release
Flow:
1. Prompt to ask user to input the release number
2. Prompt to ask user to confirm Y/N?
3. If no, exit, if yes, go ahead
4. Prompt to modify xcat.org download.html (Y/N/E)
Y: modify xcat.org, go ahead
N: not modify xcat.org, go ahead
E: exit
5. Prompt to modify xcat.org index.html (Y/N/E)
Y: modify xcat.org, go ahead
N: not modify xcat.org, go ahead
E: exit
6. Display the change and prompt to confirm the commit Y/N/E?
Y: commit
N: not commit, go ahead
E: exit
7. Prompt to upload build to xcat.org (debug mode /upload mode/Exit)
Debug mode: gives out debug information
Upload mode: upload the build to xcat.org
Exit:exit
8. Go back to step 7? Y/N ?
Y: got back to 7
N: go ahead
E: exit
9. Prompt to link xcat-dep tar ball (Y/N/E)
Y: find the link and gives out the message. Is this correct (Y/N)
Y:confirm and go ahead.
N:go back to 9.
N: go ahead
E: exit
10. bump version in xcat-core (Y/N/E)
Y: update xcat version (git)
N: go ahead
E: exit
11. Edit README.rst (Y/N/E)
Y: update README.rst (git)
N: go ahead
E: exit
12. tag branch (Y/N/E)
Y: tag (git)
N: go ahead
E: exit
13. Sync xcat.org from master branch to stable branch
Y: sync (git)
N: go ahead
E: exit
14. Update xCAT Offical Portal server to obtain the latest pages.
Y: get stable branch (git)
N: go ahead
E: exit
15. Run process on https://github.com/xcat2/xcat-core/releases/new
Y: run process on release page (restapi)
N: go ahead
E: exit
16. Edit the sidebar News in the Wiki on xCAT github, to add a new entry for current release.
Y: edit page (restapi)
N: go ahead
E: exit
17. end
Steps for the release process
1. Review issue list (Manually)
2. Prepare release note (Manually)
3. Update xCAT2 Release Information (Automatically)
[root@nn release]# cat prebuild
#Before do candidate build, update xCAT release information.
#git checkout <new_branch>
#sed -i s/$new_release/$old_release/g docs/source/conf.py
#git add docs/source/conf.py
(rewrite once and git checkin once)
#add new lines to docs/source/overview/xcat2_release.rst
#git add docs/source/overview/xcat2_release.rst
#git commit docs/source/conf.py -m "update for xCAT 2.x.x release "
4. merge master branch to xCAT 2.X branch (Manually)
5. Build xCAT RPM and DEB Package (Manually)
6. Overall Test against Relase build (Manually)
7. Update xcat.org and all documentation (Automatically)
[root@nn release]# cat afterbuild
#Section 1
#To update index and download page in xcat.org
# git checkout <new_branch>
# sed -i s/$current_release/$new_release/g download.html
# sed -i s/$old_release/$current_release/g download.html
# add one line for the next release in about line 43 in index.html
# git add download.html index.html
# git commit download.html index.html -m "update for xCAT 2.x release "
#Section 2
#To promote xCAT GA code to xcat.org
#ssh xcat.org -l xcat
#cd /var/www/xcat.org
//Note: 2.x is current release version
#promote_build.py --type=snap $current_build --link_latest --force
# cd /var/www/xcat.org/files/xcat/xcat-dep/2.x_Linux/
#find the latest xcat-dep package which has been verified
# ln -s xcat-dep-201707281008.tar.bz2 xcat-dep-$current_release-linux.tar.bz2
#cd /var/www/xcat.org/files/xcat/xcat-dep/2.x_Ubuntu/
#ln -s xcat-dep-ubuntu-201707281008.tar.bz2 xcat-dep-2.13.8-ubuntu.tar.bz2
## Bump version
#git checkout <new branch>
#edit version
#Edit README.rst (link to https://github.com/xcat2/xcat-core/blob/master/README.rst, modify README.rst :
1. latest
2. stable
3. refer to branch https://readthedocs.org/projects/xcat-docs/versions/
)
#git add Version README.rst -m "update for xCAT XXX release"
#git commit
##tag
#git checkout 2.14
#git pull upstream 2.14
#git push origin 2.14
#git tag -a 2.14.<x> -m 'xCAT 2.14.<x> release' -f
#git push --tags origin 2.14 -f
#git push --tags upstream 2.14 -f
#git ls-remote --tags ./. # list tags in current repo
#git ls-remote --tags # list tags in remote repo
8. Sync xcat.org from master branch to stable branch of xcat.org repository
9. Update xCAT Offical Portal server to obtain the latest pages.
[root@server]#ssh 10.3.5.10 -l root
[root@ 10.3.5.10]#ssh xcat.org -l xcat
xcat@sense: cd /var/www/xcat.org
xcat@sense: git checkout stable
xcat@sense: git pull
10. Run process on https://github.com/xcat2/xcat-core/releases/new
open page https://github.com/xcat2/xcat-core/releases/new
Edit the page. Taking 2.13.8 for example:
Enter 2.13.8 to Tag version input box
Choose 2.13 in @ target dorp-down box
Enter 2.13.8 to release title input box
Enter some description in Describe this release input box. please refer to 2.13.8 release page
11. Edit the sidebar News in the Wiki on xCAT github, to add a new entry for current release.
This is the release process which can be referenced.
https://github.ibm.com/xcat2/team_process/blob/master/FVT/docs/Release_process.md
News
- Apr 22, 2016: xCAT 2.11.1 released.
- Mar 11, 2016: xCAT 2.9.3 (AIX only) released.
- Dec 11, 2015: xCAT 2.11 released.
- Nov 11, 2015: xCAT 2.9.2 (AIX only) released.
- Jul 30, 2015: xCAT 2.10 released.
- Jul 30, 2015: xCAT migrates from sourceforge to github
- Jun 26, 2015: xCAT 2.7.9 released.
- Mar 20, 2015: xCAT 2.9.1 released.
- Dec 12, 2014: xCAT 2.9 released.
- Sep 5, 2014: xCAT 2.8.5 released.
- May 23, 2014: xCAT 2.8.4 released.
- Jan 24, 2014: xCAT 2.7.8 released.
- Nov 15, 2013: xCAT 2.8.3 released.
- Jun 26, 2013: xCAT 2.8.2 released.
- May 17, 2013: xCAT 2.7.7 released.
- May 10, 2013: xCAT 2.8.1 released.
- Feb 28, 2013: xCAT 2.8 released.
- Nov 30, 2012: xCAT 2.7.6 released.
- Oct 29, 2012: xCAT 2.7.5 released.
- Aug 27, 2012: xCAT 2.7.4 released.
- Jun 22, 2012: xCAT 2.7.3 released.
- May 25, 2012: xCAT 2.7.2 released.
- Apr 20, 2012: xCAT 2.7.1 released.
- Mar 19, 2012: xCAT 2.7 released.
- Mar 15, 2012: xCAT 2.6.11 released.
- Jan 23, 2012: xCAT 2.6.10 released.
- Nov 15, 2011: xCAT 2.6.9 released.
- Sep 30, 2011: xCAT 2.6.8 released.
- Aug 26, 2011: xCAT 2.6.6 released.
- May 20, 2011: xCAT 2.6 released.
- Feb 14, 2011: Watson plays on Jeopardy and is managed by xCAT!
- xCAT Release Notes Summary
- xCAT OS And Hw Support Matrix
- xCAT Test Environment Summary
History
- Oct 22, 2010: xCAT 2.5 released.
- Apr 30, 2010: xCAT 2.4 is released.
- Oct 31, 2009: xCAT 2.3 released.
xCAT's 10 year anniversary! - Apr 16, 2009: xCAT 2.2 released.
- Oct 31, 2008: xCAT 2.1 released.
- Sep 12, 2008: Support for xCAT 2
can now be purchased! - June 9, 2008: xCAT breaths life into
(at the time) the fastest
supercomputer on the planet - May 30, 2008: xCAT 2.0 for Linux
officially released! - Oct 31, 2007: IBM open sources
xCAT 2.0 to allow collaboration
among all of the xCAT users. - Oct 31, 1999: xCAT 1.0 is born!
xCAT started out as a project in
IBM developed by Egan Ford. It
was quickly adopted by customers
and IBM manufacturing sites to
rapidly deploy clusters.