Turbogears Backwards compatibility

1 view
Skip to first unread message

Michel Albert

unread,
Oct 25, 2007, 1:01:09 PM10/25/07
to TurboGears
Hi all,

Currently I am writing an application using TG 1.0 (don't have the
minor version at hand right now). I started the application with TG
0.9 when everybody was still talking about SQLObject. As I read on a
few places that SQLObject will be dropped in upcoming versions I
decided to migrate to SA. And everything is fine. Now I read more and
more about Elixir (I know I can still use plain old SA even with
Elixir).

But.... there's also the Kid --> Genshi migration in the talks (if I'm
not mistaken) and the abandonment of "Identity". And then the next big
thing: TG --> Pylons... or was it paste? I'm a bit confused with this.

So my question is: How likely is it, that future versions of TG will
break my current application? I rely strongly on Identity, and Kid.
How backwards compatible will future version be? Can I still use
Identity even with newer versions of TG? I suppose the move from Kid
to Genshi should be smooth as genshi builds on top of Kid. Right?

At some point I would like to "freeze" my framework. I went through an
awful cycle already that slowed development to a painful speed.

I actually apreciate that TG has so heavy movement right now. It's
healthy for such a young project as TG is and shows that there's a lot
of activity going on in the background ;) I envy all that find the
spare time to help out on such a meaningful project.

Jonathan LaCour

unread,
Oct 25, 2007, 1:58:09 PM10/25/07
to turbo...@googlegroups.com
Michel Albert wrote:

> Currently I am writing an application using TG 1.0 (don't have the
> minor version at hand right now). I started the application with TG
> 0.9 when everybody was still talking about SQLObject. As I read on
> a few places that SQLObject will be dropped in upcoming versions I
> decided to migrate to SA. And everything is fine. Now I read more
> and more about Elixir (I know I can still use plain old SA even with
> Elixir).

If you are using SQLObject still, you will have no problem being
supported in 1.0 or 1.1, which will have a long lifetime still. If you
have already pulled the trigger to move to SQLAlchemy, thats fine too,
as it is well supported by both TurboGears 1.0 and 1.1, and will be
supported in 2.0.

Elixir is simply another option for you, which will also be supported
by all versions TurboGears that support SQLAlchemy, but you are not
required to migrate to Elixir, as the default ORM in TurboGears 1.1+
will be plain SQLAlchemy.

> But.... there's also the Kid --> Genshi migration in the talks (if I'm
> not mistaken) and the abandonment of "Identity". And then the next big
> thing: TG --> Pylons... or was it paste? I'm a bit confused with this.

Okay, let me break this down for you:

* Kid will still be supported, but Genshi will be the new default.
Genshi is really easy to migrate to, as it is basically 90% the
same as Kid, just faster, and with some cool new features.

* Identity is still up in the air for 2.0, but as far as I know,
it will be supported in 1.0 and 1.1 for a long, long time. You
are safe here until you decide to move to TurboGears 2.0, which
doesn't really have anything like Identity right now, and isn't
even released in alpha form yet anyway.

* TurboGears 2.0 is currently planned to be basically built on top
of Pylons, which is another web framework. Paste is a WSGI
toolkit that is used by Pylons under the hood, and you don't
really need to worry about it right now. Its there, and it
basically "just works" for what you need it to do.

I hope I cleared some things up for you :)

> So my question is: How likely is it, that future versions of TG will
> break my current application? I rely strongly on Identity, and Kid.

The odds are very low that your application will break in TurboGears
1.1. It is highly likely that TurboGears 2.0 will break your
application, but the porting effort should be well-documented and maybe
even partially automated once TurboGears 2.0 hits the streets, I would
imagine. You should be fine for the foreseeable future, especially once
TurboGears 1.1 comes out. I can see TurboGears 1.1 and 2.0 co-existing
for several years before 2.0 takes over completely. You'll have plenty
of time to migrate if you like.

> How backwards compatible will future version be? Can I still use
> Identity even with newer versions of TG? I suppose the move from Kid
> to Genshi should be smooth as genshi builds on top of Kid. Right?

I think I answered these questions well enough above.

> At some point I would like to "freeze" my framework. I went through an
> awful cycle already that slowed development to a painful speed.

Nothing stopping you from doing that today. Just because TurboGears is
changing doesn't mean that you can't rely upon the older ORM and
template
engine. They are not being removed entirely, just won't be the defaults
anymore in 1.1 or 2.0.

Best of luck --

--
Jonathan LaCour
http://cleverdevil.org


Florent Aide

unread,
Oct 26, 2007, 3:11:28 AM10/26/07
to turbo...@googlegroups.com
> > How backwards compatible will future version be? Can I still use
> > Identity even with newer versions of TG? I suppose the move from Kid
> > to Genshi should be smooth as genshi builds on top of Kid. Right?
>
> I think I answered these questions well enough above.

Well enough indeed.

Even if some people talked about identity flaws and talked about
removing it these are just talks. We don't have an reports about
identity flaws in the trunk. We don't plan to remove it.

The only thing is: some people need different things and remove id
from their own project to replace it with something else. That's fine
and that's what TG is about.

We will continue to use and support identity. It does the job simply.
There are some issues like the coupling between authentication and
authorization but we can live with this in the short term.

Kid/Genshi is not that much an issue because as you said converting a
kid template to a genshi one is really easy. I personally still use
kid in my projects and will switch to genshi only in a few weeks or
months when I begin to push for the 1.1beta1 release :)

1.x branches are targeted to keep compatibility as much as possible.
We all have apps around written in TG that we need to support and we
don't want to rewrite the things each morning.

Regards,
Florent.

Christoph Zwerschke

unread,
Oct 26, 2007, 6:43:31 AM10/26/07
to turbo...@googlegroups.com
Florent Aide wrote:
> 1.x branches are targeted to keep compatibility as much as possible.
> We all have apps around written in TG that we need to support and we
> don't want to rewrite the things each morning.

Setting up virtual Python environments may also be helpful if you have
to maintain several TG apps on the same server:

http://pypi.python.org/pypi/virtualenv

Unfortunately, this is not yet in the TG docs.

-- Chris

Michel Albert

unread,
Oct 26, 2007, 7:42:33 AM10/26/07
to TurboGears

Thanks all for your input. This calms my nerves considerably ;)

Reply all
Reply to author
Forward
0 new messages