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 1.0 Planning

Overview

The 1.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 1.0 release out the door.

Timeline

Dates TBD

Tasks/bugs for each step can be found under
Version 1.0 RC1
Version 1.0 RC2
Version 1.0 Final

Guidelines for 1.0 release branch

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

  • Preferably no code should go directly into the 1.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.
  • All merges from trunk->1.0 and vice versa and other branch maintenance issues should be recorded in history10.txt.
  • Whenever you integrate a version from trunk to 1.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/V1.0

Instructions on merging a specific changeset

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

  • Go to the local CS_1.0 directory.
  • svn merge -c N https://crystal.svn.sourceforge.net/svnroot/crystal/CS/trunk
  • Edit docs/history10.txt and add a line specifying which revision(s) you merged. Use proper trac links and same format as the rest of the file.
  • svn commit
  • Go mark in the relevant tickets which bugs are fixed by the merge.

If you are using a version of SVN older than 1.4, then you will need to use the more cumbersome -r (N-1):N notation for merging rather than -c N. For example:

svn merge -r (N-1):N https://crystal.svn.sourceforge.net/svnroot/crystal/CS/trunk

If you merge multiple changes at once, be aware that merging N:M will merge the differences between N and M - this does not include N itself! To merge including N, merge (N-1):M instead.

Making a tag for the Release

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

Candidate revisions from trunk -> 1.0

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

  • r26990: res, CS version in docs titles.
  • r26815 : res, postfixes for installed apps. Needed to support installation side-by-side with later versions.
  • r26253 : res, ELF + Solaris fix
  • r26310 : res, make response file test work correctly.
  • r26553 : res, csString casing change. Fixes parsing issues on Turkish locale. However, changes behaviour (arguably) significantly. (Also, for the sake of binary compatibility, the change would have to be adjusted as to have the 'flags' parameter removed.)
  • r26545 : res, gmeshldr + <manualcolors>.
  • r26535 : res, csver.h fix.
  • r26518 : thebolt, bruteblock culling error (significant optimization).
  • r26447, r26526, r26529, r26530, r26531, r26554, r26607 : res, docs tweaks.
  • r26420, r26439 : res, xmlshader fixes.
  • r26416 : res, shader fixes.
  • r26377 : res, fixes for compatibility with latest Windows SDK.
  • r26376 : res, bullet plugin header fix.
  • r26354 : thebolt, particle bugfix, adding angular velocity in xml
  • r26255 : res, gcc 3.2 compile error fix.
  • r26338 : res, work around VC8/Windows SDK 6.0 incompatibility.
  • r26306:26309, r26312 : res, work around configure Cg issue.
  • r26297 : thebolt, #224 fix.
  • r26253 : ryan thorik, fix for #231.
  • r26251 : res, fix for autoconf 2.60+.
  • r26238 : res, tokenlist.h docs.
  • r26236 : res, genmeshify command line help.
  • r26234, r26235, r26339, r26349, r26372, r26373, r26378 : res, docs tweaks.
  • r26217 : res, #236 fix.
  • r26215 : genjix, GM AddTriangle() crash fix.
  • r26189 : res, Solaris/IRIX fixes.
  • r26132 : res, require CEGUI 0.5.
  • r26126, r26149 : res, "gfxtest" -> "csimagetool". (No further functional changes. This would later ease the transition from 1.0 to a newer version for those who wish to utilize now-"csimagetool".)
  • r26124, r26145 : res/Eric, event system docs.
  • r26093 : res, #197 fix
  • r26075 + r26076 : res, gl3d procedural textures fix.
  • r26074 : res, csPoly3D fix.
  • r26064 : thebolt, tesselation fix. Perhaps good for 1.0 too? I wouldn't merge it until it have at least a few weeks testing. So my suggestion is to not put it in 1.0. The "bug" isn't terrible, there are work-arounds and it have been there for ages. - marten
  • r26040 : erroroman, another gmeshskelanim fix.
  • r26039 : erroroman, fixes a bug in software gmeshskelanim. However, this change must be tested very well first. I'll do that (Jorrit).
  • r26028 : jorrit, CreatePortal() crash fix. Final fix.
  • r26025 : obi_1, bugfix on odedynam joints. May depend on earlier obi changes and thus may not apply. - res
  • r26023 : res2k, issue in OpenGL r2t.
  • r26021 : res2k, fix in genmeshify to handle libraries.
  • r26018 : res2k, CreatePortal() logic fix. Best to include because r26028 builts on it.
  • r26017 : res2k, CreatePortal() crash fix.
  • r26014 : res2k, fixed light_scattering.xml.

Changes so far

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

Errata:

By revision r25534 all versions of the trunk prior to, and including r25505 that should be merged have been merged into 1.0.