Checking out from SVN
You can checkout qooxdoo directly from our Subversion repository.
About Subversion
Subversion is a tool used by many software developers to manage changes within their source code tree. SVN provides the means to store not only the current version of a piece of source code, but a record of all changes (and who made those changes) that have occurred to that source code. Use of SVN is particularly common on projects with multiple developers, since SVN ensures that changes made by one developer are not accidentally removed when another developer posts their changes to the source tree.
When you download a Subversion version, remember that it will overwrite the contents of your local directory. If you don’t want to overwrite your local copy of qooxdoo, change to a different local directory.
Clients and tools for Subversion
It is your personal decision what Subversion client you like to use. Probably the feature to work against a subversion repository is conveniently integrated into your favorite editor or IDE?
If you prefer a non-graphical tool that is instantly available for most platforms (e.g. Linux, Mac OS X) or can easily be installed for Microsoft Windows (within Cygwin which you need to install under Windows anyway), the following command-line client may be your favorite choice:
- Subversion Command Line Client (Linux, Mac OS X, Windows (Cygwin))
Command-line tools may be powerful, but tend to be error-prone and rather inconvenient, so some of the following graphical tools may be a better option:
- Subclipse (Plugin for Eclipse IDE, cross platform)
- TortoiseSVN (Windows)
- SCPlugin (Mac OS)
There are many more clients available! Please have a look at an overview of clients and plugins.
Subversion details
The following configuration settings are used to access the Subversion repository:
- Hostname:
qooxdoo.svn.sourceforge.net - Port:
443 - Protocol:
HTTPS - Repository Path:
/svnroot/qooxdoo - Username: Your SourceForge.net username for SVN write operations, none will be requested otherwise.
- Password: Your SourceForge.net user password for write operations, none will be requested otherwise.
For SVN checkout you do not need to be a registered developer. Using Subversion there is no longer a delay between anonymous and developer access at Sourceforge (this is a great new feature compared to the old CVS access).
Required software
You need the following software to be installed.
subversion
Subversion Config Settings
You’ll need to add a couple of config settings to your SVN config file. If you are on Windows, that’s located at:
C:\Documents and Settings\YourUserName\Application Data\Subversion\config
And on UNIX/Mac OS X:
~/.subversion/config
Enable auto-props
Open it up in your favorite text editor. Most configs have some default settings, so locate [miscellany] and enable-auto-props in the file. If they exist, make sure that they are uncommented (remove # from beginning of line), otherwise add them. The line should look like:
[miscellany] enable-auto-props = yes
Configure auto-props
Next, locate the section [auto-props]. If it doesn’t exist, add it. If it already exists but is commented out, simply uncomment it. Add or modify the following entries below [auto-props]:
*.sh = svn:eol-style=native;svn:executable *.py = svn:eol-style=native;svn:executable *.txt = svn:eol-style=native *.rest = svn:eol-style=native *.css = svn:eol-style=native *.xml = svn:eol-style=native *.xsl = svn:eol-style=native *.xslt = svn:eol-style=native *.html = svn:eol-style=native *.htm = svn:eol-style=native *.htc = svn:eol-style=native *.svg = svn:eol-style=native *.js = svn:eol-style=native *.png = svn:mime-type=image/png *.gif = svn:mime-type=image/gif *.jpg = svn:mime-type=image/jpeg *.jpeg = svn:mime-type=image/jpeg Makefile = svn:eol-style=native README = svn:eol-style=native CHANGELOG = svn:eol-style=native LICENSE = svn:eol-style=native AUTHORS = svn:eol-style=native RELEASENOTES = svn:eol-style=native TODO = svn:eol-style=native
SVN structure
Below the Subversion repository path https://qooxdoo.svn.sourceforge.net/svnroot/qooxdoo/ the following folder structure exists:
branches/
legacy_0_1_x/*
legacy_0_5_x/*
legacy_0_6_x/*
legacy_0_7_x/*
...
tags/
release_0_1/*
...
release_0_6_6/*
release_0_6_7/*
...
release_0_7/*
release_0_7_1/*
release_0_7_2/*
...
trunk/*
Each of the folders marked by a trailing * contains a folder qooxdoo/ that is the corresponding SVN version of the framework. The meanings of the three categories are:
trunk
This is the place where most of the actual development of the framework happens. Development activity for qooxdoo is high, so there are often many commits just within a few minutes. As a consequence, any snapshot of the trunk you may check out, is a snapshot that is not regarded as being stable and usable. It is not recommended to use the trunk version for any production use or as a start for learning how to use qooxdoo. It is both a place of planned development along the Roadmap, but also a place for test and trial-and-error that is not properly documented until it has been stabilized.
branches
Having just said that most of the development happens in the trunk, all remaining development activity usually takes place in temporary branches. The convention is to start their name with devel_ to denote their temporary development use. Such branches are supposed to exist for a rather short period of time and are a playground for major modifications that would otherwise render the trunk version unusable. After the goals of such isolated developments have been achieved and incorporated back into the trunk, or the development did not lead to any resonable result at all, those temporary branches are being removed.
The folders that are available for a (reasonably) unlimited time in branches/ are the ones that start with legacy_. Such branches are created once the trunk is about to start work on the next major release, coincidently at the time a release is being published. The rest of the folder’s names denote the “line” of qooxdoo releases, e.g. 0_1_x, 0_5_x and “0_6_x” for the out-dated 0.1.x, 0.5.x and 0.6.x versions, respectively. The latest 0.7.x development is available in 0_7_x while the trunk moves towards the next major release 0.8.
If contributors are interested in further development of such a legacy line, they should commit working versions to both the line in question and the trunk. Bugfixes only relevant for the legacy line ought to be committed exclusively to the line in question. When enough improvements and bugfixes have been committed into a legacy line, a new official legacy release may be requested. Typically, after a certain qooxdoo major version has been stabilized by some minor versions, the core developers concentrate on work for the next major release, so improvements in a legacy line should mostly be contributed by a community effort.
It is recommended to have a custom application as close as possible to the latest stable qooxdoo release. In most scenarios the built-in semi-automatic migration support helps a lot, so it is preferable to invest time into the migration of custom applications rather than bugfixing outdated qooxdoo releases.
tags
All the snapshots that were being used to publish official releases are offered under the tags/ folder. They may be checked-out indiviually, mostly interesting to developers that like to compare official releases in their local development environment. Those releases are not supposed to be changed afterwards and are regarded “read-only”.
Checking-out from repository
trunk
Please execute the following shell command to checkout the latest development version of qooxdoo (the so-called SVN “trunk”). The appropriate files are directly transfered from the Subversion repository into a local directory named qooxdoo/:
$ svn co https://qooxdoo.svn.sourceforge.net/svnroot/qooxdoo/trunk/qooxdoo
As a developer or contributor those conditions might just be the perfect technical challenges you were looking for. As an ordinary user you may rather want to try an official release of qooxdoo, which is available as a downloadable archive.
Specific branch or tag
To checkout a specific branch or tag (name-of-branch being a placeholder) please use the following command. The optional last argument specifies the target directory you would like to place the files in. It is a good practice to put the branch/tag name after the project’s name: in this example as qooxdoo.name-of-branch/):
$ svn co https://qooxdoo.svn.sourceforge.net/svnroot/qooxdoo/branches/name-of-branch qooxdoo.name-of-branch
or for tags:
$ svn co https://qooxdoo.svn.sourceforge.net/svnroot/qooxdoo/tags/name-of-tag qooxdoo.name-of-tag
Continuing after a check-out
After the check-out finished successfully you have a full-blown development version of qooxdoo. Before you can use it (e.g. to open the API-viewer, to try-out the various included applications, generating a skeleton archive to start your custom application development with, and so on), you must generate it from source. Please see the corresponding article on how to do this (don’t worry, it is very simple).
