Am 20.01.2007 um 13:35 schrieb Emmanuel Blot:
> Replying to [comment:4 cboos]:
>> About the API break: as it's usually a trivial fix (replace the
>> first `req` argument by a `formatter` one, get back `req =
>> formatter.req`), I don't think it's such a big deal.
>
> It's a double-egded sword:
> 1. it's quite easy to fix, but
> 1. it breaks many plugins/macros which means that admins not only
> need to upgrade Trac but many of their installed third party
> components - which takes time, and macros and plugins are not upgraded
> at the same pace than Trac: sometimes they are just not maintained at
> all.
>
> This means that an API break may prevent admins to upgrade to Trac
> because of their installed 3rd party components, make them angry about
> Trac:
> * need to revert to the previous release
> * increase the general feeling about how hard Trac is to
> install/upgrade/maitain, etc.
>
> I think that if we can keep an existing API, at least for a single
> major release, that would be really nice.
In general, the 0.x version number does mean that people can't expect
full compatibility between releases. This is one of the reasons we've
been reluctant to jump to 1.0: that would imply more API stability
than what we feel we can provide right now.
However, the plugin ecosystem has been growing rapidly, and these
days many Trac deployments rely on various plugins being functional
(things like AccountManager or SpamFilter come to mind.) To me, this
means that we have to be more responsible about breaking APIs, as
doing so will cause grief for a lot of users.
There is going to be a lot of breakage in 0.11, mostly due to
dropping ClearSilver and the HDF object that many macros (and
possibly other plugins) were relying on. As noted before, old-style
macros will stop working. New-style macros, however, that have worked
ever since 0.9, should better continue to work because IMHO we need
to provide some kind of migration path. The change to using wiki
context objects (which in itself *was* needed) breaks even all new-
style plugins, and should be rectified.
> Maybe a warning could be added in the log ('DEBUG' level) when an
> outdated API is still in used by a plugin/macro component, to warn the
> admin that the next upgrade will fail if it does not upgrade this 3rd
> party tool.
>
> As a matter of fact, it took me 1 hour to upgrade to Trac 0.11, but
> about a day to upgrade the plugins and the macros that stop working
> after the upgrade. I think the situation is even worse for macros, as
> existing Wiki pages failed to display because the macros failed to
> execute. It's not only about loosing a feature, but serving
> invalid/incomplete pages.
I'd like to see us collecting such experiences, i.e. how the upgrade
breaks which plugins in what kind of ways. There's probably quite a
number of things we can do to avoid some kinds of breakage.
Cheers,
Chris
--
Christopher Lenz
cmlenz at gmx.de
http://www.cmlenz.net/
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Trac
Development" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/trac-dev?hl=en
-~----------~----~----~----~------~----~------~--~---