“But, I’m Not Dead Yet”

I keep getting reports that TurboGears seems to be stagnant, and from the inside that just does not make sense: We’ve had 202 checkins in the the last 30 days. Which, by way of reference, is a tiny bit more than Django’s 183.

So, that seems to indicate that we’re definitely not quite dead yet. But, even that’s only half the story.

If you pull in checkins to a few components that are external to TG, but internal to Rails and Django (template language, ORM, forms + form validation, etc) that number grows significantly:

  • 58 — SQLAlchemy — ORM
  • 38 — Genshi — Template Language
  • 113 — ToscaWidgets and tw.forms — Widgets, and Widget based Forms

Thats 353. Now if you pull in the changes to Pylons, related middleware and helpers, there’s another big jump:

  • 56 — Pylons
  • 106 — Paste
  • 55— WebHelpers
  • 36 — Routes
  • 6 — Beaker

Now, of course there are other components which are actively contributing to the development of stuff that TurboGears users get as part of the package. But even ignoring all of that we’re looking at over 600 commits in the last month.

TurboGears ecosystem growth:

There’s also a growing ecosystem of turbogears stuff, and it’s all moving forward very quickly too.

Here’s a quick sample of projects I’m watching:

  • 26 — TGTools
  • 33 — tw.openlayers
  • 31 — tw.dynforms
  • 4— dbsprockets
  • 7 — tw.dojo
  • 16 — tw.jquery

There’s a new TG2 based CMS in the works too (http://code.google.com/p/lymon/). And there are a couple more very interesting projects that have not yet gone public.

Splitting our attention:

One thing that’s worth mentioning about all of this is that we’ve intentionally split our efforts over two areas:

  1. Evolutionary improvements to TG 1.x
  2. A new core in TG2.x

And that slows us down a bit. But it’s important because we want to take care of our installed userbase, and to try to grow into new areas at the same time. Doing one or the other would be way easier, but ignoring either one would be a huge mistake.

If it wasn’t for all the amazing stuff going on in the WSGi component world, TG2 would not be possible.

But because the wider python web community is developing new ways to work together around the WSGI model, tg2 development has been moving forward very well. And that’s one of the reasons why I’m so sold on the “component” model of framework development. Sure, it would be nice to have everything under one roof, and to have a stronger guiding hand on the whole process. But it’s not worth giving up all the innovation that happens “at the edges.”

TurboGears 1.x progress

On the evolutionary improvement front we’ve done lots to support SQLAlchemy, Genshi, ToscaWigets, DBSprockets, improve Json support, and created a brand new testing infrastructure, improved out authorization system, and otherwise made lots of positive changes. We’ve also had a half dozen new releases, with feature enhancements, averaging about a release a month.

TurboGears 2 progress

TG2 constitutes our revolutionary front, we’ve added many, many new features, and tools, and have maintained very significant API backwards compatibility, improved performance, and entirely redesigned the core of TurboGears. And we’re approaching our first alpha release in the next few days, so I don’t want to belabor the new stuff here.

What we need to do better:

I understand that not all of this work has been very visible, and that’s our fault, for not engaging the wider python community better, and it’s my fault in particular for not getting the TurboGears 2 work out into the wider world more quickly. Which is something I definitely intend to change in the very near future!

So, if you’re a part of the TG community, and you’re site/project needs to be better known, let me known, let me know. We need to raise the profile of some of the very interesting stuff that’s being done in the community, because outsiders seem to think that we’re not moving very fast, while insiders talk to me about the “blistering pace” of development.

6 Responses to ““But, I’m Not Dead Yet””


  1. 1Kevin Horn

    Great post, Mark. I’m really excited about all the work you guys have managed to put in on both TG1.x and TG 2.0, and I’m really looking forward to seeing the 2.0 alpha release (ironically, development has been too fast for me to keep up with the trunk :) ).

    One additional reason people may have gotten the idea that TG development has stalled, is simply that TG 1.x has become so darn STABLE. It just hasn’t really need much in the way of bug fixes, etc. lately, so the version number hasn’t changed much in the last few months. While there’s lots of stuff in the trunk for 1.1, nobody who’s not ‘in the know’ has really been able to see it.

    Anyway, it’s something that the TG community will need to work on, but that’s nothing new.

    In the meantime: “I feel happy!”

  2. 2Doug Napoleone

    who are these people?

    I have been spending all of my python time over on the django side of things, and jet I still hear about all the cool stuff going on with TG. The progress you made at PyCon was (once again) astounding. I don’t consider myself an ‘insider’ and yet I am amazed at the volume of work everyone is getting done.

    I guess you just need an RSS feed on all the planets showing all the commits for all the projects.

    Or do one of those new visualizations for the projects.
    SQLAlchemy is alredy done:
    http://vimeo.com/1227290

    Or have a sprint called ‘Kitten Mash’ so PETA can protest it.

  3. Yea, I think that we just need to blog more, and I think that our version numbering scheme was making it look like we were just doing tiny bug fixes on the 1.0.x branch, not adding new features.

    We’ll fix those things too.

  4. Mark,

    Having been there the day Jonathan LaCour, me, you and Rick Copeland worked on an early prototype of Turbogears 2.0 on Pylons, I am glad to see that it has come this far. I actually just looked over Rick and Jonathan’s shoulders and didn’t do any real work to be fair :)

    One cool think I am very proud of you, and Turbogears for doing is to stick with a vision, even while it was difficult, and to create a 2.0 version, all the while sharing components with other frameworks such as Pylons, Grok, and Zope ala Repoze. This is brilliant work and it should be commended. I do think this outside looking, component based, architecture is the future of Python web development too!

    Keep up the good work, and I hopefully we will hear more about WSGI components being interchanged. I actually am hoping you blow the trumpet a bit louder about the cool authentication stuff that Repoze and Turbogears worked on together.

  5. Great post! Maybe we could get some sort of info-porn dashboard put together? The “development status” page on the dokuwiki is pretty slow too.

    My team and I are barreling through a bunch of development for QuakeCon (virtually all of our internal tools are TurboGears apps), but after QuakeCon I could definitely contribute myself and a couple friends to development something hot and interesting!

  6. s/development/developing

    Sorry, apparently my excitement and the prospect affected my keyboarding skills.

Comments are currently closed.