First off, you - supposing you are the primary maintainer of the contrib - need to become a "Release Tech" (in SF lingo). qooxdoo's project lead or one of the project admins have to edit your project member profile on SF to that end. If you surf to the qooxdoo-contrib's SF project page and you don't see the Project Admin menu in the menu bar (next to Summary, Mailing Lists, …, Downloads), you know you are missing authorization. Get in touch with us.
In your contrib, create a versioned subdirectory alongside trunk that represents the software you are about to release. It's best to use the
svn copy command for that, not only a simple copy on your local check-out and then a re-checkin.
svn copy ensures that all the SVN history is kept in the copy as well. Suppose you want to release your trunk software as version 0.1:
svn copy trunk 0.1 svn commit -m"version 0.1 of my contrib" 0.1
Next, export the contents of the 0.1 directory to some work space where you can create the zip file, and where the but-last path component is the name of your contribution:
svn export 0.1 /tmp/MyContrib/0.1
(Make sure that the directory of the version number - like 0.1 in our example - does not already exist). This gives you a nice, clean dump of the 0.1 directory with all .svn subdirectories and other non-versioned files stripped.
Now put it into an archive:
cd /tmp zip -r MyContrib-0.1.zip MyContrib
This ensures that the archive contains the name of your contribution as top-level directory, and the version directory directly underneath. You might want to check the integrity and correctness of the created archive:
sh> zip -T MyContrib-0.1.zip test of MyContrib-0.1.zip OK sh> unzip -l MyContrib-0.1.zip Archive: MyContrib-0.1.zip Length Date Time Name -------- ---- ---- ---- 0 05-28-09 11:55 MyContrib/ 0 05-28-09 11:58 MyContrib/0.1/ 876 05-28-09 10:25 MyContrib/0.1/Manifest.json 1015 05-28-09 11:22 MyContrib/0.1/config.json 96 07-29-08 11:22 MyContrib/0.1/README 0 05-28-09 11:58 MyContrib/0.1/source/ 42 04-27-09 13:39 MyContrib/0.1/source/blank.html 479 05-26-09 14:07 MyContrib/0.1/source/index.html 0 05-28-09 11:58 MyContrib/0.1/source/class/mycontrib/ 0 05-28-09 11:58 MyContrib/0.1/source/class/mycontrib/theme/ 899 02-12-09 18:27 MyContrib/0.1/source/class/mycontrib/theme/Appearance.js 866 02-12-09 17:01 MyContrib/0.1/source/class/mycontrib/theme/MyContrib.js 89984 05-27-09 17:43 MyContrib/0.1/source/class/mycontrib/MyContrib.js ... 81 05-16-08 14:20 MyContrib/0.1/source/resource/mycontrib/image/undo.gif 1422 05-26-09 14:00 MyContrib/0.1/generate.py 39389 05-16-08 14:20 MyContrib/0.1/LICENSE -------- ------- 264318 30 files
(The executable name and options of the zip command might differ from your individual installation; check the manual for your local specifics).
There are several ways to upload files to SF, see their online documentation. Here is one of them using the cadaver command-line WebDAV tool. Assuming your SF user id is jsmith it works like this:
sh> cadaver https://frs.sourceforge.net/j/js/jsmith/uploads (prompts for password, then an interactive prompt appears) cadaver> put MyContrib-0.1.zip cadaver> exit sh>
Mind that you have to upload plain files directly into this uploads directory; creating subdirectories is not allowed.
Now you can leave the shell, since from now on everything is done in the browser.
Open a browser and point it to the qooxdoo-contrib project page:
From the menu bar choose Project Admin → Downloads.
The individual contributions are organized as SF Packages. You should see a package of the same name as your contribution (If not, get in touch with us).
Choose Add Release. You are now taken through a some dialogue-style web pages, a release creation wizzard of some sorts.
The first prompts for the release name. Enter the version number:
Check that the package name reflects your contribution, and hit
[ Create this release ]
You have now created the release, albeit empty apart from the name, and are now taken to a somewhat larger web page, to fill in on all the details. The page has four sections named Step 1, …, Step 4.
- Release Date: The first field suggests the current date as the release date, which is usually fine.
- Release Name:
- Of Package:
Next, you can either upload release notes and change log, or enter them literally in the text fields. It would be good to at least enter a few words as release notes, stating some major points or highlights of this release. Usually you would just add the contents of
README.txt from your version-specific contribution (maybe along with the top-level
README.txt of your contrib).
Important: Hit the
[ Submit/Refresh ]
button right at the bottom of this first section. This will update Step 1. You can always come back later to any of the steps and modify their settings individually.
Your uploaded file should appear in the list. Check its check box and hit
[ Add Files and/or Refresh View ]
The "Refresh View" thing is interesting if you had to re-upload your file (or forgot to upload it in the first place). Also mind that your upload directory will be automatically cleared after some time, so don't worry about the files going away eventually.
For your upload file, you have to fill out some properties, namely
- Processor : choose
- File Type: choose
Hit the button immediately beneath the File Type select box.
[ Update/Refresh ]
If someone is monitoring your package you can check so they get notified of the release.
[ Notify ]
That's it, you're all set. Your release will now be online (maybe with a bit of latency) and can be downloaded from the qooxdoo-contrib download page.
As you might have gathered from the previous section you can come back later and edit the Sourceforge release if you find this is necessary. Among other things you can
- edit the release notes and change log
- update the download file
- The process is similar to the one described above, except that you pick the existing release and choose
Edit Releaserather than
- When you want to replace the download file, you have to upload the new version to SF as described above. If the new file has the same name as a file already existing in the release, you have to first remove the old file from the release. Only then will you be able to see/add the new file from your upload directory.