Project Filelist for FusionForge

File Release Notes and Changelog

Release Name: 5.0

Release Notes
FusionForge 5.0 is still an incremental step over 4.8, but many
changes have been made, some of which may require caution when
upgrading.

In particular, the rewriting of the version control subsystem created
the possibility for many new VCS tools to be integrated, and indeed
several new plugins were implemented (Arch, Bazaar, Darcs, Git and
Mercurial).  To avoid crowding the chroot, all repositories are now
hosted under a two-level subdirectory structure.  For instance, where
you had a CVS repositories stored under
/var/lib/gforge/chroot/cvsroot/<project>, you'll now have it under
.../chroot/scmrepos/cvs/<project>.  As a consequence, you need to move
the repositories by hand and/or add symlinks.  Previously existing
symlinks will also have to be updated, as well as previously existing
working copies obtained by users.

Also, the Mediawiki plugin was rewritten to allow for each project to
get their own independent wiki.  The wiki for project foo-bar is now
stored in the plugin_mediakiki_foo_bar in the same database as the
rest of the forge.  This means the data should be migrated from the
existing database to this new location.  Depending on your setup and
the amount of data involved, it might make sense to either cut and
paste by hand or dump the tables and reload them in the new schema.

On the internal side of things, access to the database has been
converted from the db_query() abstraction layer to the
db_query_params() one.  This means SQL queries are no longer built as
strings with unwieldy and fragile escaping code, while ensuring no
data coming from the user can be used for SQL injection attacks.  The
db_query() function, while deprecated, is still present for the
benefit of out-of-tree code that might use it.  It might be removed at
some point in the future, so maintainers of local plugins or
enhancements are encouraged to migrate their code to
db_query_params().  For really complex queries that need to be built
dynamically, there's also a db_query_qpa() abstraction, with a
db_construct_qpa() method to manipulate "QPA" (query+params array)
objects.

On a more visible note, the default theme has been reworked to
increase the accessibility of the web pages; this rewrite also brings
better maintainability, easier customisation by CSS and more
conformant XHTML.
Change Log
* New projectlabels plugin, to tag projects with snippets of
  user-defined HTML (developed for/sponsored by Adullact)
* New extratabs plugin, to add tabs with links to arbitrary URLs
  (Adullact again)
* New globalsearch, allowing cross-forge searching of projects
* Users can log in with their email address (in addition to login
  name) if sys_require_unique_email is true (developed for/sponsored by AdaCore)
* Site admin can now optionally enforce the acceptance of terms of use
  on account creation (AdaCore again)
* Site admin can now optionnally block anonymous downloads from the
  FRS (AdaCore again)
* New command-line scripts to inject users, groups and file releases
  into the database from text files (AdaCore again)
* Trackers: The list of fields displayed when browsing the list of artifacts
  can now be defined (Alcatel-Lucent)
* Trackers: The description field can now be updated/corrected (Alcatel-Lucent)
* Trackers: It is now possible to force a custom field to be mandatory (Alcatel-Lucent)
* Trackers: The values for 'select box' custom fields can now be reordered (Alcatel-Lucent)
* Trackers: A workflow on the status field (when overwritten) can be set. Allowed
  transition between values can be defined and allowed per roles (Alcatel-Lucent)
* Trackers: A new type of extra field has been added: Relation between artifact. 
  This type allow to create a relation between artifacts. Backwards relation can
  also be visible (Alcatel-Lucent)
* Trackers: Dynamic links added, expressions like [#NNN],[TNNN] are now rendered as
  links for description and comments (Alcatel-Lucent).
* Trackers: Search improved to allow searching in text fields (Alcatel-Lucent).
* Trackers: New system to share a search query. Shared queries can be represented 
  as an URL or bookmarked. It is also possible to define one query as the default
  one (Alcatel-Lucent)
* Trackers: Custom fields are now preserved (if same name and value) when moving an
  artifact (Alcatel-Lucent)
* Trackers: New custom field type: Integer (Alain Peyrat)
* Version control subsystem: completely rewritten.  New plugins add
  support for Arch, Bazaar, Darcs, Git, Mercurial.
* Mediawiki plugin: mostly rewritten.  Now creates independent wikis
  for projects, allowing different sets of permissions.
* Forums: New 'move' option to move a thread from one forum to another (Alcatel-Lucent).
* Tasks: Improved CSV import/export (Alcatel-Lucent)
* Global: rework of the default theme, for better accessibility, maintainability and
  conformance (developed by Open-S for Adullact)
* New contribtracker plugin, to give visibility to major contributors
  to projects (developed for/sponsored by Adullact)