Dashboard > CruiseControl.NET > ... > Project Details > Packaging a Release
Packaging a Release Log In View a printable version of the current page.  
CruiseControl.NET documentation for latest CI builds
Added by Ross Patterson , last edited by Ross Patterson on Jul 30, 2008  (view change) show comment

The process of producing a new stable release of CruiseControl.NET is as follows (note that some steps require non-default permissions):

  1. Choose the release number "x.y". In most cases, x will remain the same and y will increase by 1 from the previous release.
  2. Rename the release in Jira to be a valid release name (requires ccnet_administrator group membership on Jira)
    1. "Administer Project"
    2. "Manage Versions"
    3. "Edit Details" on "Next"
    4. Set the version number to "x.y".
    5. Set the description to "CCNet x.y Release"
    6. Set the release date to today's date.
  3. Add a new release "Next"
    1. "Add Version"
      1. Name = "Next"
      2. Description = "Issues that will be resolved in the next release"
      3. Schedule = "x.y"
  4. Move the open Jira issues from the new version number to "Next":
    1. "Browse Project"
    2. "Road Map"
    3. "All Versions"
    4. Select "Bulk change all n issues"
    5. Select the checkbox in the table header
    6. Press the "Next ->" button
    7. Select "Edit issues"
    8. Press the "Next ->" button
    9. Check "Change Fix Version/s:" and choose release "Next".
    10. Press the "Next ->" button.
    11. Press the "Confirm" button.
  5. Move any resolved Jira issues from non-release and non-"Next" releases (e.g., "Soon", "Medium Term") to the new version number:
    1. "Browse Project"
    2. "Road Map"
    3. "All Versions"
    4. Find any release names that have non-"UNRESOLVED" entries and click on those release names (one at a time, of course):
      1. Select "Bulk change all n issues"
      2. Select the checkbox in the table header
      3. Press the "Next ->" button
      4. Select "Edit issues"
      5. Press the "Next ->" button
      6. Check "Change Fix Version/s:" and choose release "Next".
      7. Press the "Next ->" button.
      8. Press the "Confirm" button.
  6. Create new release notes using the CCNet Jira Release Notes generator and the new version number.
  7. Add a new page to Confluence (child of Download) to contain generated release notes.
    1. Go to http://confluence.public.thoughtworks.org/display/CCNET/Download
    2. Click on "Add Child Page"
    3. Set the name to "CCNet x.y Release Notes"
    4. Paste in the text-version of the release notes.
    5. Massage it into shape:
      1. Wikify the headings: "** X" -> "h4. X"
      2. Fix up the Jira-entry names: " * [X] Y" -> "* X Y"
      3. Add to the top:
        h2. Highlights of the CCNet x.y release
        
        h4. ...title...
        
        ...description...
        
        h4. ...title...
        
        ...description...
        
        ...
        
        h2. Upgrading to CCNet x.y
        
        {warning:title=...synopsis...}
        ...whatever breaking changes there are in release x.y...
        {warning}
        {note:title=Upgrading from a version before x.y-1?}
        See the release notes for the [CCNet x.y-1 release|CCNet x.y-1 Release Notes].
        {note}
        
        h2. Release Notes - CruiseControl .NET - Version x.y
        
        This is a list of [Jira Issues resolved by this release|_the Release Notes URL from ???_] :
        
      4. Add some highlights.
      5. Note any breaking changes.
  8. Update version number in the ccnet.nsi and cctray.nsi installer files.
    1. !define PRODUCT_VERSION "x.y"
  9. Update the copyright year:
    1. Update the "AssemblyCopyrightAttribute" value in the /ccnet.build file's "createAssemblyInfo" task:
      1. <attribute type="AssemblyCopyrightAttribute" value="Copyright © yyyy ThoughtWorks Inc." />
    2. Update the "AssemblyCopyrightAttribute" value in the /project/CommonAssemblyInfo.cs file:
      1. [assembly: AssemblyCopyrightAttribute("Copyright © yyyy ThoughtWorks Inc.")]
  10. Update the CruiseControl.NET Live version number for CCNet by editting the ccnet.config file.
    1. "svn checkout https://ccnet.svn.sourceforge.net/svnroot/ccnet/environments"
    2. Change the <prefix> value in the <labeller> element to "x.y.0".
    3. Change the <artifactDirectory> value to "e:\download-area\CCNet-Builds_x_.y"
  11. 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.  Update CruiseControl.NET documentation version number in the confluence site template.
    1. Choose "HTML Output"
    2. De-select "Include comments".
    3. Make sure all pages are selected.
    4. Press the "Export" button and wait for the file to download.
    5. Save the resulting "CCNET-yyyymmdd-hh_mm_ss.zip" file.
    6. Delete all files (but not folders) in your "/doc" folder.
    7. Unzip the export ZIP file into your "/doc" folder.
    8. 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.
    9. Add any new files to the Subversion repository:
      1. svn add filename
      2. If the file is a text file:
        1. svn propset svn:eol native
        2. svn propset svn:keywords "Author Date Id Revision"
    10. Delete any obsolete files and folders:
      1. svn status /doc
      2. Find all items marked with a "!" (i.e., missing items)
      3. svn delete /doc/item1 /doc/item2 ... /doc/itemn
    11. svn commit
  12. Tag all source with the new version number under url https://ccnet.svn.sourceforge.net/svnroot/ccnet/tags:
    1. 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"
  13. Create a release branch with the new version number under url https://ccnet.svn.sourceforge.net/svnroot/ccnet/branches:
    1. 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"
  14. Wait for CCNetLive to run a successful build.
  15. Download the four source and binary distribution files from CCNetLive that contain the newly packaged documentation
  16. Upload the source and binary distributions to SourceForge and go through the SourceForge release process. Rename the distribution files to include the version number! (Distributions with the same filenames can cause problems for SourceForge mirrors).
    1. See the SourceForge "Offering Files for Download" page for a list of options and instructions. For this example, we will use the SFTP option using Putty's psftp:
    2. Upload the files:
      1. Open psftp.
      2. "open frs.sourceforge.net"
      3. "cd uploads"
      4. "lcd local files directory"
      5. "mput CruiseControl.NET-*"
      6. "quit"
    3. Create the release and associate the files with it:
      1. Login to the SourceForge.net website.
      2. Select the project to administer from the My Projects listing on the My Page.
      3. Select File Releases from the Admin pulldown. If you don't have an Admin pulldown, you don't have the necessary privileges to continue the process.
      4. Click on the [Add Release] link next to the "CruiseControl.NET Releases" Package Name.
      5. 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.
      6. Paste the Change Log and Release notes for the release, in plain text format, from the Release Notes page you created above.
      7. 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
      8. 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.
  17. Add news of the release on SourceForge and the Confluence news blog.
    1. SourceForge:
      1. Login to the SourceForge.net website.
      2. Select the project to administer from the My Projects listing on the My Page.
      3. Select News from the Admin pulldown. If you don't have an Admin pulldown, you don't have the necessary privileges to continue the process.
      4. Click on the Submit link near the top of the list.
      5. Fill in the fields and submit the news item.
    2. Confluence:
      1. Ross currently has no idea how to add News items on Confluence. The 1.4 items were hand-hacked into the main page.
  18. Email the CCNet users list to notify the users that the new release is ready.
  19. Set the currently released version to "Released" on the Jira. (requires ccnet_administrator group membership on Jira)
    1. "Administer Project"
    2. "Manage Versions"
    3. "Release" on "x.y"
    4. Set the release date to today's date.

Powered by a free Atlassian Confluence Open Source Project / Non-profit License granted to ThoughtWorks, Inc.. Evaluate Confluence today.
Powered by Atlassian Confluence 2.7.1, the Enterprise Wiki. Bug/feature request - Atlassian news - Contact administrators