Warning: Can't synchronize with the repository (Couldn't open Subversion repository /home/crystal/scm/crystal: SubversionException: ("Expected FS format between '1' and '3'; found format '4'", 160043)). Look in the Trac log for more information.

Crystal Space Version 2.0 Planning


The 2.0 version is drawing closer, and this page is thought as a more fine-grained planning of what needs to be done and how to do it to get a 2.0 release out the door.
The SVN URL for CS 2.0: svn.code.sf.net/p/crystal/code/CS/branches/release/V2.0
The SVN URL for CEL 2.0: svn.code.sf.net/p/cel/code/cel/branches/release/V2.0

The cswin32libs version to use with 2.0 is http://www.crystalspace3d.org/downloads/cs-winlibs/cs-win32libs-2.0_002.exe.
The cswin64libs version to use with 2.0 is http://www.crystalspace3d.org/downloads/cs-winlibs/cs-winlibs-x64-2.0_002.exe.


CS 2.0 branch was created from trunk on 2011-01-21 by r35697, and was merged again with trunk on 2011-04-04 by r36048.
CEL 2.0 branch was created from trunk on 2011-01-21 by cel:r4189.

Tasks/bugs for each step can be found under
Version 2.0 pre1 (CS)
cel:milestone:"2.0RC1" (CEL)

See CS branch-specific changes, integrated revisions etc. at log:CS/branches/release/V2.0
See CEL branch-specific changes, integrated revisions etc. at cel:log:cel/branches/release/V2.0

Guidelines for 2.0 release branch

To make sure we have a stable 2.0 there will be a set of guidelines to follow whenever touching code in the 2.0 release branch. Follow these!

  • Preferably no code should go directly into the 2.0 branch. Write it, debug it and commit it on the trunk, make sure it is tested and then integrate it. However sometimes it is too hard to test on the trunk especially when trunk evolved too far. In that case doing it the other way around is also acceptable.
  • No new features, only bugfixes.
  • Make sure code follows CS coding guidelines.
  • Make sure that jam check builds cleanly and that all tests pass.
  • Whenever you integrate a version from trunk to 2.0 branch, note it with date, time, revision and name in the list below. It might later be changed to be automatic, but for now this manual list is what we have.

See also the general guidelines for branch handling in [FuturePlanning].

Examining what needs to be merged

Easiest way is to compare log:CS/trunk with log:CS/branches/release/V2.0

Instructions on merging a specific changeset

To merge changeset N from main trunk to 2.0 follow this procedure:

  • Get  svnmerge.py script.
  • Go to the local CS_2.0 directory.
  • svnmerge.py merge -S trunk -r N
  • svn commit -F svnmerge-commit-message.txt (that is, commit and use the auto-generated file as comment)
  • Go mark in the relevant tickets which bugs are fixed by the merge.

To merge multiple revisions at once, ie. from trunk revisions N to M and revision Y:

  • svnmerge.py merge -S trunk -r N-M,Y

Making a tag for the Release

svn copy https://crystal.svn.sourceforge.net/svnroot/crystal/CS/branches/release/V2.0 https://crystal.svn.sourceforge.net/svnroot/crystal/CS/tags/V2.0.1

Candidates for 2.0

Here is a list of revisions that are in trunk and might still need to be merged in 2.0 branch.
By adding revisions here it is easier to keep track of things we still might need in 2.0 branch.

r36420 (add stringarray split support in constructor)
r36421 (add NormalizedToScreen() and ScreenToNormalized() to iView)
r36434 (tweaks for island map)
r36437 (add configure check for Apple's OpenAL as fallback on OSX)
r36441 (add SetCol/SetRow methods to csMatrix3)
r36442 (tweaks for island map)
r36443 (tweaks for island map)
r36444 (fix for island map)
r36446 (remove unneeded morph target in frankie and sintel models)
r36448 (add SetRight(), SetUp(), and SetFront() to csReversibleTransform)
r36450 (fix for stringarray split support in constructor)
r36454 (fix some blend modes in 'instanced' shaders)
r36455 (tweaks for fullbright_instanced shader)
r36456 (tweaks for terrainf, use fullbright_instanced_binalpha)
r36458 (fix missing new line at end of file for occluvis.cpp)
r36462 (add convenience for setting density map in meshgen)
r36467:36468 (add SetDefaultDensityFactor() to iMeshGenerator)
r36473:36475 (tweak meshgen random generator)
r36476 (fix for viewmesh help)
r36477 (fix for skelanim2)
r36480 (fix for animesh bboxes)
r36481:36483 (improvements to mesh generator regarding density map)
r36485 (fix for animesh bboxes)
r36487 (fix for animation speed)
r36497 (fix for uninitialized value in meshgen)
r36498 (fix for unrecognized 'Property' tag)
r36500 (deleted 'apps/demo' directory)
r36501 (update to licensing comments)
r36506 (fix for viewmesh's saver)
r36507 (use less space when saving XML documents)
r36509:36510 (fix for CEGUI)
r36511:36513 (morphing improvements)
r36515 (add xml tags for subsets and optimized morph targets)
r36516 (fix for CEGUI's logfile)
r36530 (Removed reference to invalid image )
r36535 (fix for animesh tools)
r36537:36538 (fixes for animesh/tools)
r36540:36541 (don't allocate unused bone influences)

CEL candidates

cel:r4345:4346 (quest manager fixes wrt. csLoadPlugin)


  • Can we release binaries this time? For real?