Changes between Version 22 and Version 23 of Release


Ignore:
Timestamp:
Feb 22, 2011, 8:59:29 AM (3 years ago)
Author:
waxhead
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Release

    v22 v23  
    66There are various way [wiki:Distribution Repackaging and Distributing] those modules. 
    77 
    8 == Release of Padre == 
     8== Prerequisites to releasing Padre == 
    99 
    10  * Obtain co-maintenance permissions for all of the namespaces in the Padre distribution. Talk to Gábor Szabó (szabgab), Adam Kennedy (Alias), or Steffen Müller (tsee) about this. Make sure you get Wx::Perl::Dialog, Wx::Perl::Dialog::Frame, Wx::Perl::Dialog::Simple, and Wx::Perl::Dialog::SingleChoice too. 
    11  * cd to trunk/Padre 
    12  * Make sure the Changes file is up to date and manually update if necessary, add the vX.XX Date string at the top (commit) 
    13  * run {{{ perl ../tools/tidy_project.pl }}} that will apply blessed padre style in every module. (commit) 
     10As the Release Manager you will be uploading the Padre tarball to pause, to ensure you have the  
     11right permissions to do this you must obtain co-maintenance permissions for all of the namespaces in the Padre distribution. Talk to Gábor Szabó (szabgab), Adam Kennedy (Alias), or Steffen Müller (tsee) about this. Make sure you get Wx::Perl::Dialog, Wx::Perl::Dialog::Frame, Wx::Perl::Dialog::Simple, and Wx::Perl::Dialog::SingleChoice too. 
    1412 
    15  * As of stable release 0.70, development is done on an odd version number and release is done on an even version number. Hence version 0.71 became the development version with 0.72 to become the next stable release. 
    16   
     13== Release of Padre using a branch == 
    1714 
    18  * run {{{ perl ../tools/update_version_number.pl VERSION }}} that will update the version number in every module and report if there was no VERSION entry in a module. Those need to be fixed. (commit) 
     15In order to allow a few days of stabilization of Padre and to allow the translators to catch up while  
     16allowing everyone else to freely work on the main trunk we release from a branch.  
    1917 
    20  * Note that once a stable release is done, run  {{{ perl ../tools/update_version_number.pl VERSION }}} to set the next development cycle. 
     18A few (2 or 3) days before the planned release date the release manager creates an svn copy of trunk to branches/release-n.nn. 
     19 
     20== The high level steps are as follows: == 
     21 
     22 * Make sure all tests pass, 
     23 * Set the release version, commit, 
     24 * Tidy and update Changes file, commit, 
     25 * Rebuild the messages.pot, commit, 
     26 * Branch 
     27 * Announce branch and URL to dev list, 
     28 * Allow a few days for translators, 
     29 * Build Tar Ball, 
     30 * Test where you can. 
     31 * Upload to PAUSE. 
     32 * Prior to merge back, set version to current dev version ( should be  +1 ), commit, 
     33 * Merge changes on Branch back to Trunk, this should only be the translations if all went well. 
     34 
     35 
     36== Detailed Steps for a Release == 
     37 
     38Note: All commands are taken as relative to your Padre directory ( the one with Makefile.PL in it ) 
     39 * run perltidy on the trunk  {{{ ../tools/tidy_project.pl }}} 
     40 * commit  
     41 * Update the Changes file, noting the date of the release being the date you start the branch 
     42 * commit 
     43 * set the version from the current development version number to the release version number ( should be even numbered for released odd numbers for development ) 
     44  * Note: there is a script in tools that will update the $VERSION string, however PPI::PowerToys has an awesome ppi_version, use this when you can: ppi_version change old new, ie ppi_version change 0.81 0.82 
     45 * commit 
     46 * rebuild the "messages.pot" file, run {{{ ../tools/update_pot_file.pl }}} 
     47 * commit 
     48 
     49At this point trunk is ready for you to make the branch: 
     50 * {{{ svn cp http://svn.perlide.org/padre/trunk/Padre http://svn.perlide.org/padre/branches/release-X.XX   }}} (replace X.XX with the future version number) 
     51 
     52You have now created the release branch for Padre. 
     53 
     54To complete the final tasks on trunk, update the Changes file by "opening" the next version. 
     55 * Modify Changes, set the next development version number, this should be odd and the next release version number should be even, ie if you have just branched release-0.82, then changes gets updated with: 
     56 
     570.84 TBA 
     58 
     590.83 Dev - not released. 
     60 
     61From this point onwards you switch your working copy between the branch and trunk as needed.  To switch between trunk and the branch: 
     62 
     63 * {{{ svn switch http://svn.perlide.org/padre/branches/release-X.XX }}} . 
     64 * then every commit will go to the branch while the plugins are still from trunk 
     65 * the release can be done here but probably it is better NOT to run the perl tidy on the branch as it will make merging very difficult 
     66 
     67 
     68== Do the regular release process == 
    2169 
    2270 * The release manager first builds a distribution and when she is sure it creates a good release, she can run the release.pl script again to also tag the release in SVN and then ask others to test it: 
     
    61109 
    62110 
     111== Merging back to trunk == 
    63112 
    64 == Release of Padre using a branch == 
    65  
    66 In order to allow a few days of stabilization of Padre and to allow the translators to catch up while  
    67 allowing everyone else to freely work on the main trunk we can start releasing from a branch.  
    68  
    69 A few (2 or 3) days before the planned release date the release manager creates an svn copy of trunk to branches/release-n.nn. 
    70  
    71 Prior to creating the copy the following steps are taken: 
    72  
    73  * run perltidy on the trunk 
    74  * commit  
    75  * Update the Changes file, noting the date of the release being the date you start the branch 
    76  * commit 
    77  * set the version from the current development version number to the release version number ( should be even numbered for released odd numbers for development ) 
    78   * Note: there is a script in tools that will update the $VERSION string, however PPI::PowerToys has an awesome ppi_version, use this when you can: ppi_version change old new, ie ppi_version change 0.81 0.82 
    79  * commit 
    80  * rebuild the "messages.pot" file, run ../tools/update_pot_file.pl 
    81  * commit 
    82  
    83 At this point trunk is ready for you to make the branch: 
    84  * svn cp http://svn.perlide.org/padre/trunk/Padre http://svn.perlide.org/padre/branches/release-X.XX   (replace X.XX with the future version number) 
    85  
    86 You have now created the release branch for Padre. 
    87  
    88 To complete the final tasks on trunk, update the Changes file by "opening" the next version. 
    89  * Modify Changes, set the next development version number, should be odd and the next release version number, should be even, ie if you have just branched release-0.82, then changes gets updated with: 
    90  
    91 0.84 TBA 
    92  
    93 0.83 Dev - not released. 
    94  
    95 From this point onwards you switch your working copy between the branch and trunk as needed.  To switch between trunk and the branch: 
    96  * cd trunk/Padre 
    97  * svn switch http://svn.perlide.org/padre/branches/release-X.XX . 
    98  * then every commit will go to the branch while the plugins are still from trunk 
    99  * the release can be done here but probably it is better NOT to run the perl tidy on the branch as it will make merging very difficult 
    100  * do the regular release process as above 
    101113 * when finished merge the branch back to trunk: 
    102  * svn switch http://svn.perlide.org/padre/trunk/Padre . 
    103  * svn log --stop-on-copy  http://svn.perlide.org/padre/branches/Padre-X.XX 
     114 * {{{ svn switch http://svn.perlide.org/padre/trunk/Padre }}} . 
     115 * {{{ svn log --stop-on-copy  http://svn.perlide.org/padre/branches/Padre-X.XX }}} 
    104116 * Take the FIRST and LAST revision number from that log 
    105  * svn merge -rFIRST:LAST http://svn.perlide.org/padre/branches/Padre-X.XX/ . 
    106  * svn commit -m'merge -rFIRST:LAST http://svn.perlide.org/padre/branches/Padre-X.XX/' 
     117 * {{{ svn merge -rFIRST:LAST http://svn.perlide.org/padre/branches/Padre-X.XX/ }}} . 
     118 * {{{ svn commit -m'merge -rFIRST:LAST http://svn.perlide.org/padre/branches/Padre-X.XX/' }}} 
    107119 * now you can remove the release branch: 
    108  * svn rm http://svn.perlide.org/padre/branches/Padre-X.XX/ 
    109  
     120 * {{{ svn rm http://svn.perlide.org/padre/branches/Padre-X.XX/ }}} 
    110121 
    111122