The quality assurance reference describes the procedure used to control the quality of OpenCity stable releases. We follow this procedure to be sure that the end users won't receive a defected OpenCity city simulation.
OpenCity is available on many GNU/Linux distributions such as: Debian, Mandriva, Slackware, Ubuntu etc... The current document only concerns the main packages of OpenCity: the source tar.bz2 compressed file and the InnoSetup autoinstaller for Windows.
The OpenCity project was started with the term "portability" in mind. It means that the project's codes must be platform independant and can run on as many computer architectures as possible. Nowadays, the 64bits processors are more common but not everyone have a 64bit computer. That's why OpenCity must be able to run and compile on both 32 and 64bits architecture without any modification.
In order to reach that high level of portability, the project is coded with standard C++. Any compiler dependant extra cool stuff is strongly prohibited. In addition, the codes must also be well commented. The unobvious algorithms which implement a magical calculation must be commented and illustrated with a pseudo-code piece if applicable.
The test period which takes place before the official release to the rest of the world is 2 weeks. Each release needs to be tested by at least 1 tester per supported operating system. The testers are asked to check the points below.
The OpenCity binary executable and data can be installed easily with the AutoPackage autoinstaller. The installer must install an icon in the "Game" menu of the desktop. When the user clicks on the OpenCity icon, it must launch the game without any extra step.
OpenCity software is installed from sources with the magic formula:
./configure && make && make install
The installation path can be modified with the argument "--prefix" passed to "./configure". OpenCity must be installation path independant. It means that OpenCity must work even if it's installed in a path different than the default prefix "/usr/local/".
Under Win32 platform, OpenCity comes with an installer created by InnoSetup. The path independant requirement still applies. The final users can set the installation path that they want to. Anyway, OpenCity must work.
OpenCity should work without any problem during 6h at least. The memory usage needs to be monitored during this time. OpenCity is not allowed to have any memory leak. Any segfault or crash is considered as a blocking bug for a stable release during this long run test.
OpenCity should run smoothly with the whole city's area filled with buildings. However, a bit slow down is expected.
The current game can be saved to disk by using the appropriate user controls. The save file format is platform independant. It means that the user must be able to save the game under a GNU/Linux system then load it on a Windows or Macintosh platform and vice versa.
If OpenCity was installed by using the AutoPackage autoinstaller, the uninstallation process is done by the autoinstaller. It consists of typing "package remove OpenCity" from the command-line with the required access level. Please read the AutoPackage documentation for more details about the commands.
The uninstallation procedure is processed with the "make uninstall" command. A bash script "uninstall" will be created under the "$PREFIX/opencity/bin" path. It can also be used to uninstall OpenCity.
Once the installation succeeded, an uninstallation shorcut is created inside the OpenCity's group. When the user clicks on that uninstallation shorcut, OpenCity should be uninstalled cleanly without further action.
Any user is welcome to report bugs to the main project developer. However, each bug report needs to be written in the right manner. And the most important point is the way to reproduce the bug otherwise, there's a very tiny chance that the bug will be fixed in the next releases.
The correct bug report should mention the following points: