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 fixr26310 : 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 xmlr26255 : 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 fixr26075 + 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:
- r25408 should really read: Marten merged r25404, r25407 into 1.0.
- r25413 should really read: res merged r25324, r25327, r25328, r25330:25333 into 1.0.
- r25419 should really read: res merged r25371:25373, r25385, r25389:25391 into 1.0.
- r25812 should really read: res merged r25786 into 1.0 (csVector4T copy'n'paste error).
- r25865 should really read: res merged r25861, r25863 into 1.0 (docs tweaks).
By revision r25534 all versions of the trunk prior to, and including r25505 that should be merged have been merged into 1.0.
