User Resources
› What is Dylan? › Learning Dylan › Downloads › Documentation › Community › Dylan Competes › Supported Platforms › Projects Using Dylan › Screenshots › Current Limitations › Our Goals
Developer Resources
› Repository Access › Bug Tracker › CVSZilla Search › Current Projects › Dev Tools

Repository Access

The development source code for Gwydion Dylan, Open Dylan, and collections of Dylan libraries and example code is stored in a Subversion repository. For developers, the base URI of the repository is

svn+ssh://svn.gwydiondylan.org/scm/svn/dylan

For example, to check out src/ (Gwydion Dylan) from the trunk, you can execute:

$ svn co svn+ssh://svn.gwydiondylan.org/scm/svn/dylan/trunk/src src

To check out the fundev-2-1-jam branch of Open Dylan,

$ svn co svn+ssh://svn.gwydiondylan.org/scm/svn/dylan/branches/fundev-2-1-jam/fundev fundev

You could also check out the entirity of trunk:

$ svn co svn+ssh://svn.gwydiondylan.org/scm/svn/dylan/trunk gd

For non-developers, the base URI to check out is

svn://anonsvn.gwydiondylan.org/scm/svn/dylan

as described on the downloading page.

Repository Layout

The repository layout is more-or-less conventional for Subversion repositories. The top level contains three directories:

trunk/
Latest development versions of all "modules"
tags/
Historic archival versions. Tagging is done by copying a subtree from the trunk or a branch to a directory under tags/. A repository pre-commit hook ensures only new copies, and not modifications, are permitted on tags.
branches/
One directory for each active development branch. Like tags, branches are usually created by copying a subtree of the trunk to one of the directories under branches/. Branches can be renamed if necessary, and it is conventional to delete "dead" or obsolete branches (e.g., after they've been merged onto trunk/)... after all, they're under version control.

Currently Active Branches

The currently active branches are:

GD_2_4/
The Gwydion Dylan 2.4.x stable development branch.
gd-2-5-collection-optimization/
See Bug #7094
fundev-2-1-gdb-nub
See Bug #7032

Using CVSZilla

We use the CVSZilla tool to track development "threads". CVSZilla associates each commit to the repository with a Bugzilla entry, and adds commit log entries as comments to the associated bug(s). The CVSZilla database can also be searched in various ways.

Most development work should be preceded by the filing of a bug or enhancement requrest in Bugzilla. Small changes can be vetted for comment by attaching patches to the bug and bringing it to the attention of other developers. (Larger development projects should be associated with a branch, allowing it to be reviewed before it is merged back to trunk/.

When changes are comitted, the first line of the commit log must be of the form:

Bug: bug-number ...

so that CVSZilla can annotate the bug(s).

If a commit is a one-off change (not part of a development thread) and doesn't fix a particular bug, you can use one of the general development jobs. In this case the first line of the commit log should look like:

Job: job-name ...

Line Endings

Unlike CVS, Subversion does not convert line-ending styles unless it is asked to; otherwise file contents are left alone no matter on what platform you do a checkout. To ensure that text files get LF line-endings on Unix-line platforms and CRLF line-endings on Win32, you need to add to text files.

The easy way to ensure that new files are added with this property present is to use the Subversion auto-props feature. In your ~/.subversion/config file you'll find commented-out configuration entries for enabling auto-props. For example,

### Section for configuring miscelleneous Subversion options.
[miscellany]
### Set enable-auto-props to 'yes' to enable automatic properties
### for 'svn add' and 'svn import', it defaults to 'no'.
### Automatic properties are defined in the section 'auto-props'.
enable-auto-props = yes

### Section for configuring automatic properties.
### The format of the entries is:
###   file-name-pattern = propname[=value][;propname[=value]...]
### The file-name-pattern can contain wildcards (such as '*' and
### '?').  All entries which match will be applied to the file.
### Note that auto-props functionality must be enabled, which
### is typically done by setting the 'enable-auto-props' option.
[auto-props]
*.bat = svn:mime-type=text/plain;svn:eol-style=native
*.bmp = svn:mime-type=image/bmp
*.c = svn:mime-type=text/plain;svn:eol-style=native
*.css = svn:mime-type=text/css;svn:eol-style=native
*.cpp = svn:mime-type=text/plain;svn:eol-style=native
*.cxx = svn:mime-type=text/plain;svn:eol-style=native
*.dylan = svn:mime-type=text/plain;svn:eol-style=native
*.dylgram = svn:mime-type=text/plain;svn:eol-style=native
*.el = svn:mime-type=text/plain;svn:eol-style=native
*.gif = svn:mime-type=image/gif
*.h = svn:mime-type=text/plain;svn:eol-style=native
*.hdp = svn:mime-type=text/plain;svn:eol-style=native
*.htm = svn:mime-type=text/html;svn:eol-style=native
*.html = svn:mime-type=text/html;svn:eol-style=native
*.ico = svn:mime-type=image/x-icon
*.idl = svn:mime-type=text/plain;svn:eol-style=native
*.intr = svn:mime-type=text/plain;svn:eol-style=native
*.jam = svn:mime-type=text/plain;svn:eol-style=native
*.java = svn:mime-type=text/plain;svn:eol-style=native
*.jpeg = svn:mime-type=image/jpeg
*.jpg = svn:mime-type=image/jpeg
*.lid = svn:mime-type=text/plain;svn:eol-style=native
*.lisp = svn:mime-type=text/plain;svn:eol-style=native
*.lout = svn:mime-type=text/plain;svn:eol-style=native
*.m4 = svn:mime-type=text/plain;svn:eol-style=native
*.pdf = svn:mime-type=application/pdf
*.pl = svn:mime-type=text/plain;svn:eol-style=native;svn:executable
*.png = svn:mime-type=image/png
*.py = svn:mime-type=text/plain;svn:eol-style=native;svn:executable
*.rc = svn:mime-type=text/plain;svn:eol-style=native
*.sgm = svn:mime-type=text/sgml;svn:eol-style=native
*.sgml = svn:mime-type=text/sgml;svn:eol-style=native
*.sh = svn:mime-type=text/plain;svn:eol-style=native;svn:executable
*.spec = svn:mime-type=text/plain;svn:eol-style=native
*.sql = svn:mime-type=text/plain;svn:eol-style=native
*.tif = svn:mime-type=image/tiff
*.tiff = svn:mime-type=image/tiff
*.text = svn:mime-type=text/plain;svn:eol-style=native
*.txt = svn:mime-type=text/plain;svn:eol-style=native
*.xhtml = svn:eol-style=native
*.xml = svn:mime-type=text/xml;svn:eol-style=native
INSTALL = svn:mime-type=text/plain;svn:eol-style=native
Makefile = svn:mime-type=text/plain;svn:eol-style=native
Makefile.in = svn:mime-type=text/plain;svn:eol-style=native
README = svn:mime-type=text/plain;svn:eol-style=native

For More Information