Changes between Version 23 and Version 24 of Development


Ignore:
Timestamp:
Jul 12, 2009, 8:20:00 PM (5 years ago)
Author:
szabgab
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Development

    v23 v24  
    6262You would be very highly regarded if you improved the test coverage of Padre!! 
    6363 
     64[Release] 
    6465 
    65 == Release and Distribution == 
    66  
    67 === Release of Padre === 
    68  
    69 As of release 0.21 we started a rotation of release managers for Padre. See [wiki:Release_History] 
    70  
    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/tidy_pm_files.pl }}} that will apply blessed padre style in every module. (commit) 
    75  * 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) 
    76  * run {{{ perl ../tools/release.pl 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 http://perlide.org/download/source/ (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 [http://mail.perlide.org/mailman/listinfo/padre-dev padre-dev] mailing list 
    81  * Send announcement to [http://mail.perlide.org/mailman/listinfo/padre-news padre-news] mailing list (Gabor needs to approve the message) 
    82  * Submit announcement to http://use.perl.org/ 
    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 http://perlide.org/download/ppm/ 
    103    * upload the other files from trunk/ppm to http://perlide.org/download/ppm/ 
    104  * Create executable for Linux: 
    105    * make exe 
    106    * Upload to http://perlide.org/download/binary/ 
    107  
    108  
    109  
    110 === Release of Padre using a branch === 
    111  
    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. 
    115  
    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 http://svn.perlide.org/padre/trunk/Padre http://svn.perlide.org/padre/branches/Padre-X.XX   (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 http://svn.perlide.org/padre/branches/Padre-X.XX . 
    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 http://svn.perlide.org/padre/trunk/Padre . 
    127  * svn log --stop-on-copy  http://svn.perlide.org/padre/branches/Padre-X.XX 
    128  * Take the FIRST and LAST revision number from that log 
    129  * svn merge -rFIRST:LAST http://svn.perlide.org/padre/branches/Padre-X.XX/ . 
    130  * svn commit -m'merge -rFIRST:LAST http://svn.perlide.org/padre/branches/Padre-X.XX/' 
    131  * now you can remove the release branch: 
    132  * svn rm http://svn.perlide.org/padre/branches/Padre-X.XX/ 
    133  
    134  
    135  
    136 === Release and Distribution of Plugins and other packages === 
    137  
    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 
    140  
    141  
    142 No need to keep MANIFEST and META.yml in version control! 
    143  
    144 Add to MANIFEST.SKIP 
    145 {{{ 
    146 # avoid po and pot files (gettext) 
    147 \.pot$ 
    148 \.po$ 
    149 }}} 
    150  
    151  
    152 If you are using Module::Build 
    153  
    154 Don't add a Makefile.PL to the version control as it will be created during packaging 
    155  
    156 Add the following to Build.PL to include the generated .mo files 
    157 {{{ 
    158 $builder->add_build_element('mo'); 
    159 }}} 
    160  
    161  
    162 === Release process === 
    163  
    164  * cd to the directory of the plugin or the package 
    165  * ../tools/ 
    166  * run {{{ perl ../tools/tidy_pm_files.pl }}} (commit) 
    167  * run {{{ perl ../tools/update_version_number.pl VERSION }}} and update Changes (commit) 
    168  * run {{{ perl ../tools/release.pl REV VERSION [--tag] }}}  
    169  * upload to PAUSE 
    170  
    171  
    172 === Distribution of Padre === 
    173  
    174 The primary distribution channel of Padre is CPAN. Hence for every release first we create a CPAN distribution of Padre. (See above). 
    175  
    176 Based on the CPAN package the downstream distributors (Debian, Fedora, Mandriva, FreeBSD etc.) create their .deb, .rpm etc. files. 
    177  
    178 For Windows: 
    179  
    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. 
    183  
    184 For Linux/Unix/BSD: 
    185  
    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. 
    190  
    191 For Mac: 
    192  
    193 No idea. Maybe the above Dist::Perl::XL will work there too. 
    194  
    195  
    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 
    198  
    199 === Distribution of the plugins === 
    200  
    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. 
    203  
    204  
    205 See also the [wiki:Download] page 
    206