Heads up: Genshi will be abandoned and become obsolete

Luke Macken lmacken at redhat.com
Thu Apr 15 15:49:08 UTC 2010

The future of Genshi is currently in question...

We currently rely on the Genshi templating engine for:

   * all static fedoraproject.org sites are compiled down to HTML from Genshi
   * Elections
   * FAS
   * PackageDB
   * Smolt
   * Trac (which will be switching to Jinja2 in the next release)

It's also worth noting that Bodhi & Mirrormanager still rely on Kid, the unmaintained precursor to Genshi.

Quoting upstream:

Yes, my interests have mostly shifted elsewhere. I still believe that both Babel and Genshi are worth being further maintained and enhanced, and I'm still interested to actually do the work, but obviously I'm not able to allot anywhere enough spare time to that task right now. What's more, I've unforunately been unable to attract other developers to contribute significantly to either code base, let alone build a strong community.  That's not to say that I consider either project end-of-life. I still use them for my own stuff. But I'm the pretty much the single point of failure for both projects, and I've been failing badly and consistently at maintaining/enhancing them for some time now. Sorry. 

I agree that adoption of Jinja2 should be considered, it's become a very solid templating solution, and comes with both more momentum and better performance than Genshi.  But I'm not sure how a gradual transition could work. As Noah said, you can't switch some of the most important pages to Jinja and still support stream filters. Or site templates using match templates for advanced customization. You'll also need to rethink parts of the internationalization story, I guess.

If there's going to be another template engine switch, I think it's going to hurt. But it might just be worth it. 

So, what are our options?

  1) Find contributors that are willing and able to help sustain this project upstream
  2) Stay on Genshi and rely on the Fedora/EPEL maintainers to fix bugs as they are filed
  3) Try and utilize http://pypi.python.org/pypi/chameleon.genshi instead, which is supposed to be able to run Genshi templates faster than Genshi can.
     (Note: TG2 was going to support this engine, but apparently it needs a bit more work.  It may still be worth looking into, though.)
  4) Port to another templating engine (Jinja2, Mako, etc)

We obviously have a vested interest in keeping this project alive, so #1 is ideal.

Porting will require a bit of effort.  The TurboGears2 port of bodhi that I'm working on will use the Mako templating engine (which is actively maintained by the SQLAlchemy author).  However, it seems we've taken the #2 route with Kid for the past 5 years, and I've had zero issues with it.

There was talk at PyCon this year about changing the TurboGears2 default templating engine to Mako.  The only reason not to for 2.0 was to ease the 1.0->2.0 transition.  However, everyone I spoke to was in favor of switching the defaults in 2.1.


More information about the infrastructure mailing list