Branches

Important Branches on Mono SVN:

Table of contents

Mono Runtime Branches

branches/mono-2-8

This branch contains the code for the Mono 2.8.xx series. It was branched on October 2010.

branches/mono-2-6

This branch contains the branch for the Mono 2.6.0 release. Branched on September 25 2009, r142637.

branches/moon-2-0

This branch contains the code for Moonlight, MCS and Mono used for producing Moonlight 2.0

branches/monotouch-1-0

This branch contains the MonoTouch codebase; The Mono runtime was upgraded to the same version as branches/mono-2-6, and the mcs directory contains a version that is two weeks older than 2.6, before various Moonlight diet changes went in.

branches/mono-2-4-2

This branch contains the branch for the Mono 2.4.2.x releases. Branched on June 8 2009, r135669.

branches/mono-2-4-1

This branch contains the branch for the Mono 2.4.1 release. Branched on April 30 2009, r133194.

branches/mono-2-4-0

This branch contains the branch for the Mono 2.4.0 release. Branched on January 20 2009, r123890.

branches/mono-2-4

This is the branch that contains the latest Mono 2.4 code. Since Mono 2.4 is a "long term" release, this is the branch used when new Mono 2.4 branches are created.

branches/mono-2-2

This branch contains the branch for the Mono 2.2 release. Branched on Nov 11 2008, r118442.

branches/mono-2-0

This branch contains the branch for the Mono 2.0 release. Branched on Jul 15 2008, r107977.

branches/mono-1-9-1-1/

A release made to perform security critical bug fixes.

branches/mono-1-9

This branch contains the branch for the Mono 1.9 release. Branched on Jan 28 2008, r94175.

branches/mono-1-2-5

This is a branch for the Mono 1.2.5 releases. Branched on Jul 25 2007, r82614.

Pending Fixes:

  • r85144 - list control... bug number?
  • r85183 - nemerle #MONO82625
  • r85189 - Reflection TypeBuilder - #MONO82625
  • r85191 - Reflection TypeBuilder - #MONO82625
  • r85593 - Marshall - Out params (probably com related)
  • r85595 - com
  • r85598 - com
  • r85599 - com
  • r85600 - com
  • r85602 - com
  • r85721 - BigInt Resync update
  • r85745 - LoadViewState - #MONO82192

branches/mono-1-2-4

This is a branch for the Mono 1.2.4 releases. Branched on Apr 20 2007, r75975.

branches/mono-1-2-3

This is a branch for the Mono 1.2.3 releases. Branched on Jan 25 2007, r71638.

branches/mono-1-2-2

This is a branch for the Mono 1.2.2 releases. Branched on Dec 01 2006, r68801.

branches/mono-1-2-1

This is a branch for the Mono 1.2.1 releases. Branched on Nov 17 2006, r68071.

branches/mono-1-2

The branch that we created for Mono 1.2.0. Branched on Nov 02 2006, r67279.

branches/mono-1-1-18

The branch for all the modules for Mono 1.1.18.

branches/mono-1-1-17

The branch that we did for Mono 1.1.17, a smaller bug fix was released (1.1.17.1) and a security fix (1.1.17.2) as well.

branches/mono-1-1-16

The branch that we did for Mono 1.1.16, a smaller bug fix was released as Mono 1.1.16.1 with the following fixes.

branches/mono-1-1-13

This branch will ship in SUSE's CODE10 product (SUSE Linux Enterprise Server 10 and Novell Linux Desktop 10). Important bug fixes and security issues will be maintained here.

System.Windows.Forms, System.Drawing and libgdiplus are not frozen, so those will be backported in batches from the main trunk in an ongoing basis.

Internal libraries like PEAPI will also get fixes from trunk in an ongoing basis.

branches/mono-1-1-10

A branch created to maintain and bug fix Mono 1.1.10. Mono 1.1.10.1 came out of this release.

branches/mono-1-1-9

A branch created to release important fixes to Mono 1.1.9, this is used for the 1.1.9.xx series.

Specially with the new upgraded ASP.NET and ARM ports, this uncovered various small problems

branches/mono-1-1-8

A branch created to release a couple of important fixes for Mono 1.1.8 that lead to Mono 1.1.8.1

The fixes include:

  • a deadlocking bug fix and a a fix for the new poll code.
  • Upgraded io-layer on March 24th, 2006, r58462.
  • Upgraded Mono.Security on March 24th, 2006, r58485.

Mono 1.1.8 shipped with SUSE 10, and we use this branch to update that version of Mono.

branches/mono-1-1-7

Contains the branch that must be maintained for ZLM and the iFolder groups as part of the Novell OES releases.

Versions on this branch will be named 1.1.7.xx.

Only bug fixes that apply directly to ZLM or iFolder should be placed on this branch

1.1.7 was the first release to have the new io-layer.

Changes on this release:

  • March 26th, r58463 deployed a semaphore leak fix.

branches/mono-1-1-6

A temporary branch created for an early version of ZLM, but it will not be maintained on an ongoing basis.

Gtk# Stable Branches

branches/gtk-sharp-1-0-branch

Stable branch for the Gtk# 1.0.x releases.

branches/gtk-sharp-2-468-branch

Stable branch for the Gtk# 2.4.x, 2.6.x, and 2.8.x releases.

branches/gtk-sharp-2-10-branch

Stable branch for the Gtk# 2.10.x releases.

branches/gtk-sharp-2-12-branch

Stable branch for the Gtk# 2.12.x releases.

Development Branches

branches/vargaz/mini-linear-il

This branch has a new linear based IR representation in addition to the tree representation. This branch has been merged into trunk on 2008 July 22.

branchez/vargaz/mini-xp-local-regalloc

This branch was used to develop the cross platform local register allocator of Mono. This branch was merged in the main Mono trunk on May 05.

Handling branches and tags for dummies

Few people should ever have to touch branches and tags. The only people who ever would are the maintainers of a module and people who are in charge of the release. In general, commits to branches are more tightly controled than HEAD.

For maintainers, there are a few things you should know:

.bashrc settings to make life easy

You should do something like:

export MSVN="svn+ssh://$MY_MONO_USER@mono-cvs.ximian.com/source"

To make your life easier.

Difference between a branch and a tag

Tags are used for every release. They are fixed, commits never get made to them. SVN does not enforce that this is true, however, it is a convention you should follow. When you want to do a release, you should tag with this command:

svn cp $MSVN/trunk/module $MSVN/tags/TAG_LOCATION

Various parts of mono use different naming conventions for their tags TODO: document these. It is extremely important you follow the convention: the build system depends on correctly named tags.

Branches

Branches can be created with

svn cp $MSVN/trunk/module $MSVN/branches/LOCATION

Branch names are less standardized. You do not need to make a branch for every release, and you should not.

SUSE Maintained Branches

We are currently maintaining security fixes on a number of branches for SUSE:

suse 10.0: 1.1.8.3   (1-1-8)
suse 10.1: 1.1.13.8  (1-1-13-8)
suse 10.2: 1.1.18.1  (1-1-18)
suse 10.3: 1.2.5     (1-2-5)
sles9:     1.1.7     (1-1-7)
sle10 sp1: 1.2.2     (1-2-2)

We go as far back as 1-1-7 because SuSE is still providing security updates for OES (based on SLES9), which shipped 1.1.7.7 and suse 10.0 shipped 1.1.8.3.

We created a 1-1-13-8 branch based off the 1-1-13-8 tag and added the patches that SuSE is shipping in SLE10 (s390 fixes and OO integration fix).

Mono 1.2.2 (1-1-2) was accepted to SLE10 SP1, so we are no longer maintaining the 1-1-13-8 branch for SLE10, but we are doing security fixes in 1-1-13-8 for SuSE 10.1.