I have a couple.
Yes, I think that development should happen in branches, not in trunk.
In this way we can prepare releases for different versions of Habari,
which will be more important when we start releasing major version
numbers where the API doesn't change.
Note that plugins should probably take on the same API-to-version number
characteristics of the core software. That is, API changes incite major
version number revisions, and feature additions that don't affect API
are minor versions. All bets are off on API stasis up until a 1.0
release. You know the drill.
I agree we should use the convention you suggested, but to perhaps clarify:
branches/0.6-0.x : This branch works with Habari 0.6, and houses
versions 0.1 to 0.100 (or whatever) of the plugin while it's in development.
tags/0.6-0.1 : This tag is for the 0.1 version of this plugin that
works with Habari 0.6.
tags/0.7-0.2 : This tag is for the 0.2 version of this plugin that
works with Habari 0.7. If version 0.1 of a plugin continues to work
with the next version of Habari, then the tag can be copied to the next
core version number, ala 0.7-0.2 to 0.8-0.2. The development branch for
the 0.2 version of the plugin would be copied from 0.7-0.x to 0.8-0.x,
and development in 0.7-0.x would cease.
These things become more important when we reach full Habari version
numbers. Our 1.x release of Habari should have plugins that use 1.x in
their branch names:
branches/1.x-0.x : This is the development branch for a plugin
targeting Habari 1.0 through 1.100 (or any minor version).
branches/1.x-1.x : This is the development branch for a plugin
targeting Habari's 1.x series, and it is internally API-stable.
tags/1.x-1.1 : This is the released tag for a plugin on Habari's 1.x
series, and has bug fixes or API-unrelated feature additions from the
plugins 1.x branch.
Note that the tags have full version numbers for the plugin version,
just like Habari has full version numbers for its released tags.
Using this release strategy, we can easily tell (and use automation to
discover) what the most recent version of a plugin is for each version
of Habari (if available), and whether there is an official release
and/or in-development version of the plugin in source control.
Concerning the issue of trunk: Yes, I think we should abandon trunk
development for plugins. If development happens in the branch, there's
no guessing at what version it is and what version of Habari's API it
targets.
That said, I think we should avoid an automated process that moves
everything from trunk to a branch. The reason I say this is because not
every plugin is compatible with the current Habari version, and there's
no way to tell if a plugin is being maintained or for what version of
Habari it might be targeted.
Part of the purpose of this is to better keep a handle on what versions
of plugins can work with what versions of Habari, so a wholesale move
seems unwise.
Manually verifying plugin compatibility and moving seems like a better
course to me.
Owen