Crystal Space Version 1.4 Planning

Overview

The 1.4 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.4 release out the door.
The SVN URL for CS 1.4: https://crystal.svn.sourceforge.net/svnroot/crystal/CS/branches/release/V1.4
The SVN URL for CEL 1.4: https://cel.svn.sourceforge.net/svnroot/cel/cel/branches/release/V1.4

Timeline

1.4 branch was created from trunk on 2008-06-05 with r29844.

Tasks/bugs for each step can be found under
Version 1.4 pre1

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

Guidelines for 1.4 release branch

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

  • Preferably no code should go directly into the 1.4 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 1.4 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.4

Instructions on merging a specific changeset

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

  • Get svnmerge.py script.
  • Go to the local CS_1.4 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/V1.4 https://crystal.svn.sourceforge.net/svnroot/crystal/CS/tags/V1.4.1

Candidate revisions from trunk -> 1.4

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

  • r29908, r29973: dingobloo, fix for compile warning resulting from change r29866 (made csPath a csObject) and removal of now useless csNamedPath.
  • r29921, r30910: res, vknecht, memdebug build fixes.
    • However, I'm getting Floating point exceptions at start of any CS app. To be investigated (opening a ticket later if need be).
  • r29932: mgist, removed trailing comma on enum.
  • r29938: mgist, warning fix for out of order vars in csFog struct.
  • r29969: mgist, fixed a crash in UnloadHelper.
  • r30010: res, Build (cscaca) w/ latest version.
  • r30036: mgist, fixed a bug in genmesh where the user renderbuffers weren't being updated from the legacy renderbuffers.
  • r30037: mgist, added a check to the legacy renderbuffer so that it removes the CS_BUFFER_COLOR user renderbuffer if colors are not set.
  • r30047, r30077, r30082, r30083, r30127: res, thebolt, fix csev* breakage & complete removal of CS_CONST_METHOD and CS_PURE_METHOD.
  • <rev tbd>: animesh changes. (new in 1.4 anyway, so can as well use the same state as in trunk.)
  • r30166: res, FreeBSD build fix by Maxime Henrion.
  • r30186: thebolt, lighter2 virtual address space exhaustion workarounds.
  • r30234:30235, r30354, r30357:30358, r30363:30365, r30367:30369, r30371:30375, r30407, r30409, r30411:30412, r30422, r30429:30431, r30433:30435 : erluk, make plugins and libraries use the new event system
  • r30243: darek, Frank's fixes for 'jam install' (partial merge, only vfs.cfg.template part).
  • r30244, r30258, r30268: terrain2 support for lighter2
  • r30332, r30687: res, fixes for static build.
  • r30396, r30408, r30417, r30419:30420, r30424:30426, r30441, r30443:30450: erluk, make applications use the new event system
  • r30350, r30359, r30360: res, avoid certain allocator mismatches. Merge if no problems in that area come up.
  • r30486: mgist, Added a missing dupe check in LoadLibrary.
  • r30489:30491, r30514, r30539, r30549: sunshine, various fixes for OpenSolaris (see #511).
  • r30498:30503: res, various Mac, PPC and endianess fixes.
  • r30553: thebolt, Fixed a bug whereby bruteblock renderer in terrain2 would crash if you don't have any material palette.
  • r30556: thebolt, fixed two bugs whereby RenderBufferLock and VertexListWalker would not work on null buffers.
  • r30557, r30564: thebolt, "smooth heightmap" feeder parameter addition for terrain2.
  • r30570: mgist, Added checkDupes option to lighter2.
  • r30576: mgist, Disabled RECT-texture extension on all platform (Nvidia driver).
  • r30698: erluk, Updated jamtemplate for new event system.
  • r30710: vknecht, Added terrain2 to walktest static plugins list.
  • r30746:30749, r30751, r30755, r30757:30758, r30760:30761, r30784:30785, r30805, r30908:30909, r30918, r30928, r30979, r30982, r30985: res, andres, sunshine: filelist generation stuff.
  • r30756: vknecht, Improved jamtemplate with default VFS settings, default map, actor movement code and other minor things.
  • r30759: vknecht: Better starting position for terraini level.
  • r30771:30774,30776: res, Fixed sndsys software renderer to not crash when loaded after open event was sent.
  • r30775, r30897, r30917, r30919, r30930, r30932, r30934, r30937,r30965:30966, r30968:30970, r30986:30989, r30998:30999, r31001, r31070:31072, r31076, r31083:31085, r31090, r31091, r31092, r31138, r31139, r31247, r31279, r31501: res, andres, sunshine: WiX/MSI automatic generation stuff.
  • r30819: mgist, Fixed compile warning.
  • r30822: mgist, Patch from Andreas Heinchen to fix uninitialised var usage reported by valgrind.
  • r30832: mgist, Added a check that the cell is loaded in terrain2's collidetriangles. If the terrain is used only for collision and not for rendering then the cell wouldn't be properly loaded.
  • r30837:30838: mgist, Fixed compile errors when compiling with --disable-ptmalloc.
  • r30846: thebolt, Fixed crash in terrain2 if renderer isn't set.
  • r30980: vknecht, Fixed the jamtemplate so that it can generate MSVC9 project files.
  • r30990, r31061: mgist, res, Tinyxml fixes.
  • r30991, r30995: mgist, jorrit, fixes for csHashReversible's DeleteAll.
  • r30997, r31019, r31021: jorrit, sunshine, added frankie model.
  • r31015: dentoid, Fixed an error in the normal fetch of the terrain2 bruteblockrenderer.
  • r31028: sunshine, compilation warnings fixes in skeleton2.
  • r31048: jorrit, crash fix in the loader on badly formed world files.
  • r31050: sunshine, added macro CS_PATH_CANONICALIZE() to path.m4. Fixes #530.
  • r31087, r31254: res, sunshine: fixes for crystal.m4, CEL could not detect CS.
  • r31095: Khaki, bug fix for collision detection.
  • r31251: sunshine, publish iConsoleInput/iConsoleOutput to bindings.
  • r31295: allcolor, resolves #499 and #543 (see comment:ticket:543:26 for merge instructions). After merge, test that #499 is fixed, and close if so.
  • r31310: res, fix gl3d Close() not clearing open flag.
  • r31321, r31322: res, GL ext manager improvements, GLX canvas multisampling
  • r31357, r31360, r31363, r31364: sunshine, resolve Java Swig syntax errors. Fixes #492.
  • r31365: sunshine, locate and utilize libjvm for csjava.
  • r31371: sunshine, more robust libjvm directory check (as originally intended).
  • r31404: sunshine, resolve #550.
  • r31444: vknecht, patch from Distantshores to prevent pop-up windows in fullscreen mode. Fixes #180.
  • r31447: sunshine, resolve #554.
  • r31449: res, fix bindoc GetAttributeValue() returning garbage for non-string attributes.
  • r31453:31456: philwyett, sunshine, docs tweaks.
  • r31474: vknecht, print warning when xf86vm is not available to set video mode (eg. fullscreen). Fixes #531.
  • r31480, r31482, r31483: res, use static color buffer in std_lighting_fixed shader. (IIRC 1.4 lighter2 also produces static color buffers for per vertex lighting)
  • r31523:31524: vknecht, typo fixes, and fix for OpenAL buffers not being cleaned do to those being removed before the source.
  • r31526: vknecht, fix for OpenAL device not being closed when the OpenAL renderer plugin is closed.
  • r31530: vknecht, fix/workaround for sound screetches when using OpenAL.
  • r31536: vknecht, applied patch from Chris Robinson, fixes offset problems when playing a sound more than once.
  • r31543, r31547: jorrit, added a new particle effector to interpolate parameters like mass, color, angular velocity, linear velocity, and particle size.
  • r31553: caedes, added simplestaticlighter to scripting bindings.
  • r31528, r31560, r31564: vknecht, added simplestaticlighter support to the jamtemplate (but disabled it by default), and more generic GetConfigVector().
  • r31592: sunshine, skeleton2 warning fix.

CEL candidates

Errata:

Questions

  • Can we release binaries this time, since the conversion to shared libraries is complete?