|
This page last changed on May 02, 2010 by williams.
 |
Some points for saving time :
- Create the release notes a few days before the actual release, giving other devs also the chance to complete it, read it over, ...
- Prepare the mail to be sent to the dev and user list in advance, and save it as a draft. So you do not have to do a quick write on the release day itself
- When the release is a RC, state in the mail that an RC means it has to be tested with as much users as possible, include the points below :
- use your existing config on a spare / virtual PC
- test it with a couple of CCNet projects, one of every kind you have (CI, deploy, ...)
- remove the labelling part of the scm so you do not interfere with the life/ production system
- use the null task to simulate different build results (succeed, failed), eg.: for new publishers
- use the null source control to simulate errors on source control operations, eg.: for new publishers
|
The process of producing a new stable release of CruiseControl.NET is as follows (note that some steps require non-default permissions):
- Choose the release number "x.y". In most cases, x will remain the same and y will increase by 1 from the previous release.
- Rename the release in Jira to be a valid release name (requires ccnet_administrator group membership on Jira)
- "Administer Project"
- "Manage Versions"
- "Edit Details" on "Next"
- Set the version number to "x.y".
- Set the description to "CCNet x.y Release"
- Set the release date to today's date.
- Add a new release "Next"
- "Add Version"
- Name = "Next"
- Description = "Issues that will be resolved in the next release"
- Schedule = "x.y" (read the note in JIRA to see why this works)
- Move the open Jira issues from the new version number to "Next":
- "Browse Project"
- "Road Map"
- "All Versions"
- "x.y"
- Use the filters in the left bar to select issues with "Open", "In Progress" or "Reopened" status
- Select "Bulk change all n issues"
- Select the checkbox in the table header
- Press the "Next ->" button
- Select "Edit issues"
- Press the "Next ->" button
- Check "Change Fix Version/s:" and choose release "Next".
- Press the "Next ->" button.
- Press the "Confirm" button.
- Move any resolved Jira issues from non-release and non-"Next" releases (e.g., "Soon", "Medium Term") to the new version number:
- "Browse Project"
- "Road Map"
- "All Versions"
- Find any release names that have non-"UNRESOLVED" entries and click on those release names (one at a time, of course):
- Select "Bulk change all n issues"
- Select the checkbox in the table header
- Press the "Next ->" button
- Select "Edit issues"
- Press the "Next ->" button
- Check "Change Fix Version/s:" and choose release "x.y".
- Press the "Next ->" button.
- Press the "Confirm" button.
- Create new release notes using the CCNet Jira Release Notes generator and the new version number.
- Add a new page to Confluence (child of Download) to contain generated release notes.
- Go to http://confluence.public.thoughtworks.org/display/CCNET/Download
- Click on "Add Child Page"
- Set the name to "CCNet x.y Release Notes"
- Paste in the text-version of the release notes.
- Massage it into shape:
- Wikify the headings: "** X" -> "h4. X"
- Fix up the Jira-entry names: " * [X] Y" -> "* X Y"
- Add to the top:
- Add some highlights.
- Note any breaking changes.
Update version number in the nsi files(ccnet.nsi, cctray.nsi, ccvalidator.nsi) installer files. (automated)
!define PRODUCT_VERSION "x.y"
Update the copyright year:## Update the "AssemblyCopyrightAttribute" value in the /ccnet.build file's "createAssemblyInfo" task:### <attribute type="AssemblyCopyrightAttribute" value="Copyright © yyyy ThoughtWorks Inc." />
Update the "AssemblyCopyrightAttribute" value in the /project/CommonAssemblyInfo.cs file:-### -[assembly: AssemblyCopyrightAttribute("Copyright © yyyy ThoughtWorks Inc.")] (automated)
- Update the CruiseControl.NET Live version number for CCNet by editting the ccnet.config file.
- "svn checkout https://ccnet.svn.sourceforge.net/svnroot/ccnet/environments"
- Change the <prefix> value in the <labeller> element to "x.y.0".
- Change the <artifactDirectory> value to "e:\download-area\CCNet-Builds_x_.y"
- Copy the history files from the previous release to the new release's folder.
- Export Confluence space as Html. Extract the exported zip into your local ccnet\docs folder, and then check the modified Html files into SVN. This way the next CCNetLive build will package the latest documentation from Confluence.
- Choose "HTML Output"
- De-select "Include comments".
- Make sure all pages are selected.
- Press the "Export" button (at the bottom of the page) and wait for the file to download.
- Save the resulting "CCNET-yyyymmdd-hh_mm_ss.zip" file.
- Delete all files (but not folders) in your "/doc" folder. (the nant build file has a target 'ClearDocFolders' that takes care of the deleting)
- Unzip the export ZIP file into your "/doc" folder.
- Ensure than all the line-end sequences in the text (.css, .html, and .xsl) files are CRLF if you're using a Windows system, or LF if Unix. Confluence runs on a Unix system, so they are likely to be LF in the export file. Consider using a tool like ToFroWin CR/LF converter (from http://sysd.org/stas/node/34) or the unix2dos and dos2unix commands to do so.
- Add any new files to the Subversion repository:
- svn add filename
- If the file is a text file:
- svn propset svn:eol native
- svn propset svn:keywords "Author Date Id Revision"
- Delete any obsolete files and folders:
- svn status /doc
- Find all items marked with a "!" (i.e., missing items)
- svn delete /doc/item1 /doc/item2 ... /doc/itemn
- svn commit
- Force a build on CCNet Live and wait till it is done (for the new number)
- Tag all source with the new version number under url https://ccnet.svn.sourceforge.net/svnroot/ccnet/tags:
- svn copy https://ccnet.svn.sourceforge.net/svnroot/ccnet/trunk https://ccnet.svn.sourceforge.net/svnroot/ccnet/tags/ccnet_x_y_final -m "Tag source for CCNet x.y"
- Create a release branch with the new version number under url https://ccnet.svn.sourceforge.net/svnroot/ccnet/branches:
- svn copy https://ccnet.svn.sourceforge.net/svnroot/ccnet/trunk https://ccnet.svn.sourceforge.net/svnroot/ccnet/branches/RB_x_y -m "Build release branch for CCNet x.y"
- Download the five source and binary distribution files from CCNetLive that contain the newly packaged documentation.
- Upload the source and binary distributions to SourceForge and go through the SourceForge release process.
See the http://alexandria.wiki.sourceforge.net/File+Release+System+-+Offering+Files+for+DownloadSourceForge "Offering Files for Download" page for a list of options and instructions. For this example, we will use the SFTP option using http://www.chiark.greenend.org.uk/~sgtatham/puttyPutty's psftp:
If you're doing a RC (Release Candidate), rename all the exe's to ...-RCX-Setup.exe, where X is the number of the release candidate. (to prevent duplicate names in sourceforge releases)
Upload the files:
Open psftp.
"open frs.sourceforge.net"
"cd uploads"
"lcd local files directory"
"mput CruiseControl.NET*"-
"quit"
Create the release and associate the files with it:
Login to the http://sourceforge.netSourceForge.net website.
Select the project to administer from the My Projects listing on the My Page.
Select Downloads from the Admin pulldown. If you don't have an Admin pulldown, you don't have the necessary privileges to continue the process.
Click on the Add Release link next to the "CruiseControl.NET Releases" Package Name.
Enter the release name for the release into the New release name: field (i.e., "CruiseControl.NET x.y") and click the Create This Release button.
Paste the Change Log and Release notes for the release, in plain text format, from the Release Notes page you created above.
Check the checkbox next to the filename of each file to be added to the release in Section 2 of the form, and click on the Add Files and/or Refresh View button
Go to Step 3 of the form, modifying the value in each field for each file, as necessary. Click on the 'Update/Refresh' button after each change to a file.
Click on the Create / Edit Download Page on the top left of the screen
Delete any files that may exists in the primary download file / secondary file sections
Add CruiseControl X.Y Setup.exe as the primary download file
Add the other files as secondary download files
Press Save
- Login to the SourceForge.net website.
- Click on Account on middle-top of the page.
- Click on Projects
- Select CruiseControl.Net (you should arrive at the SourceForge CCNet Project site)
- Select Project Admin --> File Manager
- You'll see a folder structure with 3 sub folders :
- CruiseControl.NET Examples
- CruiseControl.NET Releases
- OldFiles
- Create a new folder named according to the release (see other folders), by clicking on the cog wheel next to CruiseControl.NET Releases
- Upload the files 1 by 1 by clicking on the cog wheel next to the newly created folder and select upload.
- Make the setup exe te primary download for windows : click on the cog wheel next to the setup exe, and select properties.
- On the window on the right side, check Windows, and press Save.
- Go back to the main page of CCNet on Sourfeforge (SourceForge CCNet Project site)
- edit the project settings , the second edit link you see.
- Change the line Latest release to the correct number and mention the build number.
- Add news of the release on SourceForge and the Confluence news blog.
- SourceForge:
- Login to the SourceForge.net website.
- Select the project to administer from the My Projects listing on the My Page.
- Select Develop - News from the pulldown. If you don't have an Admin pulldown, you don't have the necessary privileges to continue the process.
- Click on the Submit link near the top of the list.
- Fill in the fields and submit the news item.
Summary : CruiseControl.NET x.y released
Details : paste the release Notes
- Confluence:
- Login to Confluence
- Click on one of the date lines from the previous release announcements. You should arrive at a "News form <some date>" page.
- There is a row of tabs near the top of this page. To the right of that row is an "Add News" button. Click on the button.
- Enter "CruiseControl.NET x.y Released" as the headline.
- Enter wiki markup similar to the following for the body:
* Please see the [release notes|CCNet 1.4.1 Release Notes].
* Download it now from [SourceForge|http:
CCNet 1.4.1 is the equivalent to build 1.4.1.3795 from [ccnetlive|http:
- Email the CCNet users list to notify the users that the new release is ready.
- Set the currently released version to "Released" on the Jira. (requires ccnet_administrator group membership on Jira)
- "Administer Project"
- "Manage Versions"
- "Release" on "x.y"
- Set the release date to today's date.
- Upgrade the version that ccnetlive is running.
|