webchess logo webchess logo webchess logo

WebChess Roadmap

Introduction

The WebChess development team is very small, and historically we have had very busy Real Lives that have prevented us from devoting as much time as we would have liked to working on the project. Because of this, we have decided it would be best if we kept the number of development branches down to a minimum, at least until such a time where the existing developers might have more time or more developers join the team. This is the major reasoning that has led to the decisions in this document, and we ask that you please keep this in mind while reviewing it.

WebChess v0.x.x

The current version of WebChess was built for a different goal than what it is used for today. Because a lot of functionality was added as an afterthought, the existing codebase is a little ugly, with the chess functionality intersperced with the user interface (UI) code. This makes adding functionality or modifying the UI complicated, far more so than it should be. In any case, the current set of features makes WebChess useable enough for most of our users needs, at least for now. The greatest critic against the current version is that it is a little buggy, in particular with check detection.

For these reasons, we have decided to concentrate on stabilizing the current codebase and leaving new features to WebChess v2, where it will be much easier to design them in from the ground up. In other words, there may be a version 0.9.0 containing a few new features, after which the current codebase of WebChess will be feature-frozen. At this time, a cycle will being whereby every known bug is eliminated and a new release is made on a time-based release schedule of once a month. These will be the v1.0.0 Release Candidates. This cycle will repeat until such a time when few to no new significant bugs are found, at which point the current release candidate shall be promoted to the official v1.0.0 version (ie: when two or three releases go by with little to no changes in the code). This process will depend significantly on our users helping us test the release candidates and filing bugs.

WebChess v1.0.x - The Stable Branch

Once v1.0.0 is officially released it will become the stable branch of WebChess. This means only bug fixes will be made to this branch. From this moment on, the WebChess project will adopt the Open Source convention of using even numbers for stable releases (ie: 1.0.x, 1.2.x, 2.0.x, etc.). As part of our release management strategy, we have made it our mandate to provide a migration process with each new stable release to ensure that system administrators can confidently and easily upgrade from one stable release to the next.

WebChess v1.1.x - The v1 Development Branch

Having a stable branch naturally implies the need for a development branch. Again, the Open Source convention of using odd numbers for development releases will apply (ie: 1.1.x, 1.3.x, 2.1.x, etc.). All development and bug fixes to the v1.0.x codebase will be done here, and bug fixes will subsequently be back ported to the v1.0.x branch for the next stable release. Due to our short list of developers, it has been decided that all development should be concentrated around v2. The v1 development branch is merely provided as a courtesy to outside developers that disagree with our decision, and for developing bug fixes to problems found in v1.0.0. In other words, the current codebase is essentially deprecated as far as developers should be concerned.

For now, a similar approach to what they were using with the linux kernel until recently will be adopted for deciding when a new stable release should be issued. The Project Manager will keep track of additions made to the development branch and when it is felt that enough value has been added to warrant a new stable release, the same process would begin as for v1.0.0: a feature freeze would go into effect on the development branch, the current development version would get promoted to release candidate, and a quick fire sequence of releases would be made on a timely fashion until I am confident enough in its stability to promote the last release candidate as a new stable version. That version will be branched into the new development branch and the cycle will begin again.

WebChess v2.x.x

As previously mentioned, the next generation of WebChess will be designed from the ground up to be a production-quality chess server. Based on a solid up-front design, WebChess v2 will be much easier to extend in functionality. Even the UI will be easily changed, and will sport internatilization features throughout to make translation to other locales more simple. This makes WebChess v2 the ideal vehicle for implementing the new features requested by users. Because of how significant this release will be, we have decided to concentrate most of our development efforts here, giving us a more solid infrastructure on which to grow. For this reason (and due to our limited resources as mentioned above), WebChess v2 will become our main development branch. It is strongly recommended that developers concentrate their efforts on this branch, rather than the deprecated v1.1.x development branch.

Please note there will be no stable branch until the official v2.0.0 release is made.

The WebChess Team - June 9th, 2004