This section is maintained by the qooxdoo community. Here is how you can contribute.

Creating a Sourceforge Release for a Contribution

Need a Release Tech

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.

The rest of this document is a condensed and customized version of the usual release creating process for SF [1] [2].

Create a Version Directory for the Release

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

Create a Zip File containing the Release Version

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

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 
test of OK

sh> unzip -l 
  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/
    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).

Upload the Archive to your Sourceforge Staging Directory

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
(prompts for password, then an interactive prompt appears)
cadaver> put
cadaver> exit

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.

Create a Sourceforge Release

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 ]

Creating a release cannot be undone. Once you hit this button the named release will have been created, for the rest of time. You can edit a release, change details, but never delete it. The only remedy is to set the release to Hidden, which remove the release from the list of downloadable packages.

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.

Step 1

  • Release Date: The first field suggests the current date as the release date, which is usually fine.
  • Release Name: 0.1
  • Status: Active
  • Of Package: MyContrib

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.

Step 2

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.

Step 3

For your upload file, you have to fill out some properties, namely

  • Processor : choose Platform-Independent
  • File Type: choose .zip

Hit the button immediately beneath the File Type select box.

[ Update/Refresh ]

Step 4

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.

Edit a Sourceforge Release

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

Some notes:

  • The process is similar to the one described above, except that you pick the existing release and choose Edit Release rather than Add Release.
  • 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.