Edgewall Software

Version 8 (modified by Christian Boos, 14 years ago) ( diff )

Added #MultipleProjectSupport (#130)

Hey, it's a bit early for 0.13 Release Notes, no? Let's use this page for the planning stage.

Here are a few topics that needs a bit of discussion and preparation. As each topic grows, we'll probably get a page for each, but for now a single page is enough.

Code Name

First and foremost, we can start to seriously think about the code name for the next release.

The 0.11 release was dubbed "Genshi" and 0.12 "Babel", after the names of the Python packages that became closely associated to these Trac versions. Since we don't plan to add such another new strong dependency in the near future, it's about time to go back to our age long tradition of picking a zombie related code name, following up to 0.6 "Solanum", 0.7, "Fulci", 0.8 "Qualia", 0.9 "Vodun", and 0.10 "Zengia" :-)

So let's here about the candidates!

  • "Cell" — cboos
  • "Datura" — itamarost
  • "Austen" — yaelg
  • "Algol" — trbs

(the winner will get a slot in the THANKS file, a free copy of Trac 0.13, or some other equally useful gift ;-) )

Outstanding Wiki

The quest for an ultimate Wiki engine will continue, on several fronts:

  • improvements to the syntax (TracDev/Proposals/AdvancedWikiFormatting), with among other things getting a WikiCreole support as good as possible
  • build a wiki parse tree to enable all kinds of manipulation (extracting links, accessing data, getting the outline) and make formatting independent of the parsing (format to html, text, docutils intermediate representation) - see WikiEngine
  • improvements to the user interface, like better hierarchy navigation, section editing and advanced operations like branching, merging and improved rename (see TracDev/Proposals/AdvancedWikiOperations).

Multiple Project Support

There is little doubt this is the wanted feature for Trac. The ability to create lightweight projects from within the same single environment, to better match complex development environments with new products, plugins or implementations sub-projects appearing and disappearing would quite certainly be appealing to a lot of current and potential users of Trac. Many users are actually more or less forced to switch to alternative solutions more flexible in that aspect (e.g. RedMine).

For a long time, this has been dubbed to be a "post-1.0" feature, but instead of waiting for this hypothetical long term achievement, we should actually start to think about getting there incrementally. The MultipleRepositorySupport added in 0.12 was actually a very important step in this direction, as it already makes it possible for each project to have its specific repository (or set of repositories). See TracDev/Proposals/MultipleProject for some early discussion on this topic.

Jinja2 Support

We've decided some time ago to remove support for the ClearSilver template engine, in 0.12, but this didn't happen yet. Clearsilver had its share of inconveniences, enough that we decided to switch to the nicer Genshi template engine in 0.12, but it was very fast and memory lenient. While we managed to keep Genshi memory usage somewhat in control (remember #6614), the speed was never really adequate, especially for big changesets and for displaying source files over a few thousand lines of code (see TracDev/Performance#Genshi for details).

So one solution would be to switch once again, to a template engine that would combine the advantages of Genshi (pure Python, nice templates, flexible) and ClearSilver (speed!). Such a beast seems to exist now: Jinja2.

The switch can happen progressively, instead of removing support for ClearSilver we could substitute that code by the support for Jinja2 (well, maybe, remains to be seen if that still makes sense while coding it).

Several points remain to be clarified: what will be the upgrade path for plugins that came to rely on IStreamFilters, how to handle themeing, should we rewrite tag builders or use lightweight string templates, etc.

See also: googlegroups:trac-dev:fc8d8c0447140110

Note: See TracWiki for help on using the wiki.