Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Project Outline

dietrichm edited this page · 9 revisions

The Project

The UseBB Project is a free Open Source software (FOSS) project. This means the goal of the project is to make free software and relevant resources under an Open Source license. The project consists of people who dedicate their free time to work without any direct reward.

The main goal is to develop a web-based bulletin board package (also known as "discussion board" or "forum software") that can be described as light (by default), effective, usable and extensible: the UseBB forum package.

The project was founded and is still maintained today by Dietrich Moerman. He is currently the only contributor to the project, although several people have contributed patches and small portions of code or graphics in the past years.

History

The project has its roots in 2002 with the "development" of a small forum package (SBBS) in PHP 4 using the MySQL RDBMS. This small script was primarily written to learn more about web application development and the popular PHP/MySQL combo in particular.

In 2003, as a result of a big interest in forum software, the decision was made to create an Open Source project for this small forum package. UseBB was registered on SourceForge.net in October 2003 and the development of a new system written from scratch began in February 2004. In July 2006, many months of discussion, development and beta releases later, version 1.0 was released as a PHP 4 and MySQL based light forum package.

For an overview of important releases, see Prior releases at the website.

UseBB 1.0 (PHP 4)

UseBB 1.0 is a light forum package written in (mostly procedural) PHP 4.1 and using MySQL 3.23+ as the database back-end. The goal of version 1.0 was to deliver an effective discussion board for small to medium sized websites which do not require advanced functionality. The core functionality of UseBB is limited to the pure forum one, missing fairly popular features such as private messages, attachments, user groups, polls e.a. which have become more common in recent versions of bulletin board packages.

In the unfolding of the UseBB 2 project (see below), many flaws and weaknesses in UseBB 1 were discovered. For more information, see UseBB 1 Design Flaws. Initially, much more functionality was planned to be implemented in later minor releases (1.1, 1.2), but the decision was taken to focus on v2 and thus limit the development of the 1.0 code base to bug fix releases (1.0.x), including:

  • security fixes
  • normal bugs and error fixes
  • limited changes in functionality

UseBB 1.0 will mostly (except necessary) not receive any new functionality and support for 1.0 will continue at least until a yet to be decided number of months after the release of UseBB 2.0.

UseBB 2 (PHP 5)

The very first idea was to have UseBB 2 be the bigger version of UseBB 1, while keeping the latter in development. But considering the weaknesses unfolded with UseBB 1 and its generally (especially in current days) lacking quality, the UseBB 2 project was changed to a rewriting/renovating one.

The current goal is to replace the old v1 code base with a new one written in object oriented PHP 5. It also includes a new public development model, website and shift from SVN to Git.

Although being completely rewritten, UseBB 2 tries to retain its simplicity and effectiveness known from UseBB 1, with added flexibility in terms of modular functionality.

A few highlights include (this list is not definitive, changes may occur):

  • Object-oriented PHP 5.3
  • Functionality packed as modules that can be enabled/disabled (#33)
  • Automated testing to ensure working state (#25)
  • PDO based database framework usage
  • Database powered session system, supporting IPv6 (#34)
  • Extended i18n possibilities: UTF-8, auto-detection, plural forms, ...
  • Cron (scheduling) system (#35)
  • Event log (#56)
  • External authentication (#12)
  • Flexible subforums instead of categories/forums
  • Threaded topics (#36)
  • User groups (#31)
  • Moderation queue (#55)
  • Polls (#1)
  • Private messages (#50)
  • Post attachments (#51)
  • Merge system for converting (#17)
  • Better anti-spam measures
  • ...

A complete and definite feature list is not defined. Features are implemented on the go as their issues are accepted or have been attached to a specific milestone.

Releases To Come

With releases and version numbers, we are going for the proven major.minor.build[.revision] format, where major denotes any big rewrites and incompatible framework changes, minor includes feature additions/changes and build includes bug fixes/improvements. revision might be used for security releases. Without the guarantee of only increasing the major number for incompatible changes and the inclusion of the revision number, this is more or less equal to Semantic Versioning.

The following public releases are expected:

  • 2.0.0 alpha x: completing planned functionality
  • 2.0.0 beta x: functional complete, bug fix/improvement releases
  • 2.0.0 RC x: release candidates
  • 2.0.0: first production release
  • 2.0.x: bug fix/improvement releases
  • 2.x.0: new/changed functionality
  • 3.0.0: rewrites and other incompatible changes

Notes

  • It is not yet clear whether security releases (x.y.z.w) will happen. These are releases only containing fixes for the discovered issues against the previous release, without any other bug fixes happened in the mean time. However, patches will be released, and a new bug fix release will be made against current code.
  • Alpha releases will likely only happen after rewrites or big changes in the framework, where big parts of functionality need to be rebuilt. In other words, before changing the major number.
  • Beta and RC releases will not happen for bug fix/improvement releases. It is assumed keeping existing unit tests green and short checks should suffice.

Please see the milestones for a very detailed description of planned releases and their progress.

Upgrading and Converting

Upgrading ("merging") from UseBB 1.0.x will be possible through the Merge System, which will be available in alpha 1.

Several other forum packages will be supported by the release of beta 1. The goal is to support the most important systems and UseBB's competitors so these forums can be converted to UseBB 2.

Other Changes

Other changes in the UseBB 2 project include:

  • New project logo and colours
  • Build new website with built-in UseBB 2 static pages, except
    • End-user docs (Sphinx)
    • API docs (Doxygen)
  • Move development stuff towards GitHub
    • Source code was moved from CVS to SVN in Sep 2010; and now to GitHub
    • Technical info (this wiki)
    • Issues (bugs and requests)
  • Eventual separate systems on usebb.net
    • Security issue database (own advisories)
    • Resources database

Downloads and mailing lists remain at SF.net. The old Trac set-up will close down after moving is complete.

Project Inactivity, Ongoing Work

Set aside all planning for UseBB 2, implementations were mostly limited to small components built in 2006-2009. These have been deprecated at the end of 2009 in favour of some new approaches with modularity and OO in general, which were not available in Git. Milestones for 2.0.0 have been slimmed down to get to final release and adoption faster, with several features currently targeted for 2.1.0 or later.

At this time (mid 2011), UseBB 1 is still maintained, despite what has been spread at some websites. This is mostly bug fixing, small improvements and stability at PHP 5. Websites can continue running UseBB 1 safely, be it with PHP 4 or 5.

Contributing?

An idea for a project team has been brought up frequently. However, no people are assigned at this point. But it is possible to review ideas, tasks and current code and make forks and improvements for UseBB 1 and 2, with respect to the ideas behind the project and the software.

Something went wrong with that request. Please try again.