Making a list of packages ========================= 1. cd trunk 2. svn up 3. vim \*/ChangeLog 4. Check each ChangeLog for: a. proper release tag header ("[RELEASEDATE]", and proper version) b. whether all the issues are in the proper order. Bugs, new features, and on order of issue nr. If not: fix it. c. Also make sure that the descriptions read what was fixed and do *not* always just take over the issue description. d. The all issues and actions are recorded in the ChangeLog. 5. Write down in a list whether this component requires a bug fix release, or an alpha release. For bug fix selected components, also record the last release Base version that is *not* an alpha, or beta. The end of this, produces a list like:: bugfix: base=1.7 Configuration 1.3.5 Search 1.0.7 Translation 1.3.2 Webdav 1.1.3 alpha: base=1.7 Archive 1.4alpha1 Document 1.3alpha2 Feed 1.3alpha1 Graph 1.5alpha2 Mail 1.7alpha1 Workflow 1.4alpha1 WorkflowDatabaseTiein 1.4alpha1 6. Commit all the ChangeLogs that you modified: svn commit \*/ChangeLog 7. Check all DEPS files: vim \*/DEPS and make sure they reflect the correct versions. Creating the packages ===================== 1. Check trunk//ChangeLog in ChangeLog for spelling and format 2. ./scripts/release1.sh if there are no errors: 3. ./scripts/release2.sh is the full version release of the base component, eg. "1.7" Ensure ``pear install PEAR_PackageFileManager2-beta`` is installed. Releasing the whole bundle ========================== 1. create a file in releases with the version number (f.e. ezcomponents/release-info/2009.2alpha1): 1. cp release-info/latest release-info/2009.2alpha1 2. svn add release-info/2009.2alpha1 2. Prepare the file with the following content: 1. "NOTES\n" 2. "\n" 3. "SVN Revision: XXXX\n" 4. "\n" 5. "PACKAGES\n" 6. For each package that you want to include, add: - ": " 3. Save file 4. Add change log to the release file between NOTES and PACKAGES, which can now be generated with:: php scripts/generate-changelog.php > /tmp/foo For major releases (2008.1, 2008.2, 2009.1) use the previous minor release and the new one (2009.1.2 and 2009.2 f.e.) For minor releases (2008.1.1, 2009.1.2) use the previous minor release and the new one (2009.1.1 and 2009.1.2 f.e.) For alpha and beta releases, use the previous alpha or beta release, or the previous *major* release if it's the first alpha (2009.1.2 and 2009.2alpha1, or 2009.2alpha1 and 2009.1beta1). 5. Go to ezcomponents/ 6. Run: php scripts/package.php (fe, "php scripts/package.php 2009.2alpha1") 7. Wait until it is done :) 8. Commit it: svn commit release-info/2009.2alpha1 Making the PEAR "super" package =============================== 1. cd to ezcomponents/ 2. run: scripts/generate_super_package_xml.php -v (f.e. scripts/generate_super_package_xml.php -v 2009.2alpha1) 3. run: (cd /tmp; pear package /tmp/Components/package.xml; cd -) Uploading the packages to the PEAR Channel ========================================== 1. go to http://components.ez.no/admin.php 2. log in with "ezc"/"wee123" Registering a New Package ------------------------- *This only needs to be done if there is a new component* 1. Click on "Create a Package" in the left top 2. Fill in details: - Name (example: ConsoleTools, Mail, PhpGenerator) - Category: select the category from the overview that will be soon at http://ez.no/products/ez_components/ez_components_technical_details - License: New BSD - License URL: http://ez.no/licenses/new_bsd - Summary: take the text from the DESCRIPTION File, but shorted to one sentence. - Description: take the text from the DESCRIPTION file - The others can be empty 3. Click on "Save Changes" 4. Click on the link "Maintainers" next to the package name on the left under "Manage Packages" 5. Fill in details: - New Maintainer: ezc - Role: lead - Active Maintainer: yes - Click on "Add Maintainer" Uploading the Release --------------------- 1. Click on "Upload a Release" 2. Select the file from disk, should be /tmp/-.tgz 3. Press "Submit" 4. It should say "Release successfully save" If it says "Error: Saving release failed", check if there is no release with the same version yet, by clicking on the package name under "Manage Packages" and scroll to the bottom, there you can delete releases. Or use (in two different shells):: ssh -L 8080:localhost:8080 components.ez.no cd /tmp curl -s -c /tmp/ezc.cookie -d user=ezc -d login=Submit -d password=wee123 http://localhost:8080/admin.php > /dev/null; \ for i in *-1*.tgz eZComponents-20*tgz; do echo $i; curl -s -b /tmp/ezc.cookie -F submitted=1 -F f=0 -F release=@$i http://localhost:8080/admin.php; done 5. Upload files: scp -p /tmp/ezcomponents-* components.ez.no:/home/httpd/ezcomponents.org/files/downloads 6. Log in to the server and fix the squid cache: ssh components.ez.no sudo su - ./flush-squid-cache.sh Testing the Uploaded Release ---------------------------- If you didn't add the channel yet (check with pear list-channels): 1. pear channel-discover components.ez.no 2. pear config-set preferred_state beta Then see if the package is there and if you can download it: 1. pear remote-list -c ezc 2. pear download ezc/ (f.e. pear download ezc/ConsoleTools) 3. pear install ezc/ (but make sure you have PHP 5.1.0) Then see if the bundle package is there and if you can download it: 1. pear remote-list -c ezc 2. pear download ezc/ezcomponents 3. pear install ezc/ezcomponents Write A Release Annoucement --------------------------- 1. Stick it in docs/news/.txt 2. Follow the exact format as other files, and make sure you fill ina date in the *future* for the :Date: argument. 3. The file needs to be formatted in reStructuredText format. 4. Commit it, it will be published automatically.