Changes between Version 23 and Version 24 of Development

Jul 12, 2009, 8:20:00 PM (6 years ago)



  • Development

    v23 v24  
    6262You would be very highly regarded if you improved the test coverage of Padre!! 
    65 == Release and Distribution == 
    67 === Release of Padre === 
    69 As of release 0.21 we started a rotation of release managers for Padre. See [wiki:Release_History] 
    71  * 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. 
    72  * cd to trunk/Padre 
    73  * Make sure the Changes file is up to date and manually update if necessary, add the vX.XX Date string at the top (commit) 
    74  * run {{{ perl ../tools/ }}} that will apply blessed padre style in every module. (commit) 
    75  * run {{{ perl ../tools/ 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) 
    76  * run {{{ perl ../tools/ REV VERSION [--tag] }}} will try to create a distribution using a temporary directory and copy the resulting Padre-X.XX.tar.gz in the current directory. The optional --tag flag will also create a tag in SVN. So the release manager first can run it dry and when she is sure it creates a good release can run it again to also tag it in SVN. 
    77  * Upload to (needs to be done by Gabor) 
    78  * try installing it using pip, tell people on IRC #padre about it 
    79  * Upload to PAUSE 
    80  * Send announcement to [ padre-dev] mailing list 
    81  * Send announcement to [ padre-news] mailing list (Gabor needs to approve the message) 
    82  * Submit announcement to 
    83  * Update the [wiki:Release_History Release History] 
    84  * Add the version number to the list of versions in Trac (Gabor needs to do this) 
    85  * Important: Assign primary maintainer status to Gabor (PAUSE ID 'SZABGAB') for all namespaces that are new in the current release. 
    86    * Log into your PAUSE account 
    87    * Click "View Permissions" in the menu 
    88    * Note all Padre::* classes for which you are listed as "first-come" (as opposed to "co-maint"). 
    89    * Click "Change Permissions" in the menu 
    90    * Under "2. You are primary maintainer:" select any one or all of the Padre::* namespaces that appear in the list view. 
    91    * Click Select for "2.1 Pass primary maintainership status to somebody else (giving it up at the same time)" 
    92    * Make sure all Padre::* namespaces are selected in the new listbox. 
    93    * Enter "SZABGAB" in the text field. 
    94    * Click "Pass Maintainership Status". 
    95    * You will automatically become co-maintainer instead of primary maintainer of the classes in question. 
    96  * ppm creation: 
    97    * tar xzf Padre-X.XX.tar.gz 
    98    * perl Makefile.PL 
    99    * make 
    100    * make ppm  will create a Padre.ppd file and a Padre.tar.gz file 
    101    * change the other files in /trunk/ppm according to the README there 
    102    * upload Padre.tar.gz as Padre-X.XX.tar.gz to 
    103    * upload the other files from trunk/ppm to 
    104  * Create executable for Linux: 
    105    * make exe 
    106    * Upload to 
    110 === Release of Padre using a branch === 
    112 In order to allow a few days of stabilization of Padre and to allow the translators to catch up while  
    113 allowing everyone else to freely work on the main trunk we can start releasing from a branch. Trying to capture 
    114 the process here. 
    116  * A few (2 ?) days before the planned release date the release manager creates a copy: 
    117  * run perltidy on the trunk 
    118  * svn cp   (replace X.XX with the future version number) 
    119  * Anyone who wants to work on the release branch can 
    120  * cd trunk/Padre 
    121  * svn switch . 
    122  * then every commit will go to the branch while the plugins are still from trunk 
    123  * 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 
    124  * do the regular release process as above 
    125  * when finished merge the branch back to trunk: 
    126  * svn switch . 
    127  * svn log --stop-on-copy 
    128  * Take the FIRST and LAST revision number from that log 
    129  * svn merge -rFIRST:LAST . 
    130  * svn commit -m'merge -rFIRST:LAST' 
    131  * now you can remove the release branch: 
    132  * svn rm 
    136 === Release and Distribution of Plugins and other packages === 
    138 The packages can use either Makefile.PL (Module::Install) or Build.PL  (Module::Build). 
    139 We have not tested the below process with ExtUtils::Makemaker 
    142 No need to keep MANIFEST and META.yml in version control! 
    144 Add to MANIFEST.SKIP 
    145 {{{ 
    146 # avoid po and pot files (gettext) 
    147 \.pot$ 
    148 \.po$ 
    149 }}} 
    152 If you are using Module::Build 
    154 Don't add a Makefile.PL to the version control as it will be created during packaging 
    156 Add the following to Build.PL to include the generated .mo files 
    157 {{{ 
    158 $builder->add_build_element('mo'); 
    159 }}} 
    162 === Release process === 
    164  * cd to the directory of the plugin or the package 
    165  * ../tools/ 
    166  * run {{{ perl ../tools/ }}} (commit) 
    167  * run {{{ perl ../tools/ VERSION }}} and update Changes (commit) 
    168  * run {{{ perl ../tools/ REV VERSION [--tag] }}}  
    169  * upload to PAUSE 
    172 === Distribution of Padre === 
    174 The primary distribution channel of Padre is CPAN. Hence for every release first we create a CPAN distribution of Padre. (See above). 
    176 Based on the CPAN package the downstream distributors (Debian, Fedora, Mandriva, FreeBSD etc.) create their .deb, .rpm etc. files. 
    178 For Windows: 
    180 There is a Dist::Perl::Padre in the works that will allow us to create a Perl distribution that has padre already installed. 
    181 At one point we might be able to install this distribution independently from any other perl installation on the same machine.  
    182 That  will mean the 'production perl' of the user and the perl needed by Padre does not need to be the same. 
    184 For Linux/Unix/BSD: 
    186 There is a plan to creat a Dist::Perl::XL which would be a full version of perl with Padre (and possibly other things) installed and zipped. 
    187 Users will be able to download it, unzip it and run padre from that perl. They will be able to use either the perl that came with Padre 
    188 or any other perl as their 'production perl'. 
    189 Primarily we try to make this work for Linux. 
    191 For Mac: 
    193 No idea. Maybe the above Dist::Perl::XL will work there too. 
    196 PAR based executable: We have tried to make a PAR based executable but there is a complex 
    197 issue that currently stops us (ORLite::Migrate and PAR not working well together) See #294 and #399 
    199 === Distribution of the plugins === 
    201 Some of the plugins will be distributed by the downstream distributors and/or will be packaged in the Dist::Perl::Padre  
    202 and Dist::Perl::XL distributions. Others will be able to be either installed from CPAN or will be packaged as PAR packages. 
    205 See also the [wiki:Download] page