Wednesday, January 23, 2013

Announcing TurboGears 2.2.1!

That's right, it's out right now, and you can begin using it in your own projects! Follow the directions on you'll get 2.2.0.

I'd like to thank +Alessandro Molina+Christoph Zwerschke, and +Carlos Daniel Ruvalcaba Valenzuela. Between the three of them, TurboGears is becoming better every day, and they deserve much praise and thanks.

The full changelog is below.
Ming / Mongo
  • Support connection options for ming/mongodb
  • Support new ming configuration API
  • Fix datastore options for ming
  • Jinja autoload filters
  • Added jinja filter autoloading namespace protection test cases.
  • When autoloading jinja filters use the special __all__ module variable to import the filters, if it is not defined then just import any defined callables.
  • Jinja2 didn't perform escaping while mako, genshi and kajiki did
  • Closes #17, mako bytecaching only works when use_dotted_templatenames = False.
  • Better configuration of authenticators.
  • More flexible configuration of authenticators. By adding ('default', None) to the list of authenticators, you can now include the default authenticator in the list of custom authenticators.
  • Fix more references to pylons.c
  • Update doc to deprecated pylons ns
  • Update Wiki20 tutorial to TG2.2 and try to make it easier to follow and faster to read by hightlighting code and reducing parts that are more advanced or pure web developemnt/python related
TurboGears Project
  • Fix for travis due to repoze.who 2.1 now bringing in WebOb 1.2
  • Travis-ci for development branch
  • Add contributing file.
Everything Else
  • urljoin behavior on schemas seems to change depending on python version
  • Refactor request_type detection usage
  • Fix issue with request extensions being wrongly handled two times
  • Use the new built-in translations provided by ToscaWidgets 2.
  • @beaker_cache was not available inside the deacorators module while it should have been
  • @require now provides smart behavior, and can be used to just abort, rather than do redirect. Closes #27
  • Make possible to import controllers (and so expose templates) before AppConfig.init_config has been called
  • Most packages used by TG currently don't work with SQLAlchemy 0.8
  • Permission._groups is currently defined as an array, so it expects to receive a list

Thursday, August 23, 2012

Announcing TurboGears 2.2.0!

That's right, we finally did it! It's up right now, and if you follow the directions on you'll get 2.2.0.

I'd like to take a minute to thank Alessandro Molina in particular. I did what support I could, but this release really belongs to him. Please pass along congratulations and thanks to him. And if there's bugs, I'll take the blame myself for not doing more to help.

The full changelog is below.

Monday, July 16, 2012

Are we ready for +TurboGears 2.2.0?

It's time to ask that most dreaded and anticipated of questions: Are we ready to release 2.2.0?

We've pushed out out second release candidate. We've had it available for testing. Only one flaw has been found, and that can be integrated into the release easily (and since it's a security flaw, it will be).

What say you, the community? Are you satisfied with what will be released if we were to release right now? I'd like to make the release official, and happen on Thursday, so speak before then!

Note that if you reshare this, please block comments. Make people reply to this post, so that we can be sure we'll see any replies in a timely fashion.

Thank you!

Saturday, July 14, 2012

Custom Renderers with Dynamic Content on TurboGears

One of the most common questions we get on the TurboGears mailing lists is actually a group of questions:
  • How do I make a controller return a customized PDF?
  • How do I display a custom graphic to a user?
  • How do I return an Excel spreadsheet?
This all boils down to the same question: How do I generate dynamic content that is tailored for the user and is returned in a non-HTML format? While I won't answer for each format (because of the fact that every format gets built differently), I will show you how to tell TurboGears about the format you want to send to the user.

Saturday, July 7, 2012

Social Networks Replacing Forums

Okay, so I asked this a couple days ago, but I think I'm starting to see ideas. I may be crazy, but I can start to see these ideas come together. Especially if the social network is more of a platform than it is just a stream.

Wednesday, June 27, 2012

What Does The Future Hold For Blogs And Forums?

I was thinking a bit about this just now, and I think it makes for an interesting question. I've heard people saying that social networks are killing blogs and, to a different extent, forums. I'm not sure I agree, but I can see how it can happen, I think.

Announcing TurboGears 2.2.0rc2

Hello everybody. It's been a while, but at least I have some good news to share: We've just put 2.2.0rc2 out.

At this point, unless we find something seriously wrong, this is likely to become to 2.2 release officially. I've worked with Alessandro, and cleared up the issues we were seeing on We've upgraded many of our support packages. We've added more renderers, and more options. 2.2 looks amazing to me, and I think you'll feel the same way.

The changes are listed below, but here's how to get it and try it out:

virtualenv ${HOME}/tg22rc2
source ${HOME}/tg22rc2/bin/activate
easy_install -i tg.devtools
paster quickstart tgtest
# answer the questions here how you see fit
cd tgtest
python tgtestdevelop
paster setup-app development.ini
paster serve development.ini
# now point a web browser at http://localhost:8080/

You should be up and running within 5 minutes.

Here's the changes:

TG2 Core Updates:

  • Template engines in tw2.core could collide, based on template extensions. Fixed.
  • Subclassed controllers now keep the decorations inherited from their parents
  • repoze.who v2 is now supported
  • Form validation now supports TW2 validation dictionaries, less dependent on FormEncode
  • When multiple renderers are registered for the same content type, the default renderer is now preferred
  • URL keyword args, marked for removal in 2.2, are now removed.
  • Ming setup issues are resolved, and Ming is in its own module
  • repoze.who v2 is not compatible with repoze.what v1. New compatible module has been provided to make code change minimal.
  • Jinja templates must now have the extension .jinja Conflicts with .html were being found when Genshi and Jinja were mixed in the same project.
  • Mako option "reloadfromdisk" has been deprecated. Use "auto_reload_templates" as this is the default for other rendering engines
  • __before__ and __after__ were renamed to _before and _after in the past. Code and documentation now reflects this.

Devtools / Quickstart Updates

  • New applications will be set up to use repoze.who v2 by default
  • Improvements to the quickstart look, layout, and content
  • Quickstarts now support Kajiki as a rendering engine
  • Twitter Bootstrap support in quickstart
  • Genshi is always available in new quickstarted projects. Provides a common template language for use in extensions
  • Sessions are now stored in encrypted cookies