[Geany-devel] Some sort of thoughts about geany-plugins-devel-git-repo

Lex Trotman elextr at xxxxx
Wed Nov 16 06:12:48 UTC 2011


Hi Frank,

Although I am not a plugin developer I have a couple of suggestions
based on the following needs:

1. Individual plugin maintainers shouldn't care about all the other
plugins in the combined release
2. Users getting the combined release to build should get everything
in one command
3. The combined release maintainers still need to be able to make
changes to each plugin in case of urgent bugfix and temporarily or
permanently missing individual plugin maintainer.
4. Not all plugins are in the combined release, due to quality,
timing, or maintainer availability issues.  But users rely on plugins
so it is bad to remove their availability.

Having a single repository with branches fails item 1. since Git can't
do partial checkouts/clones so all maintainers have all plugins and
have to see all changes, a lot of noise.  And accidental changes to
parts of the tree outside the users plugin can be committed and
pushed.

So I suggest that each plugin needs to have a separate repository
under the Geany organisation.  The plugin maintainer can fork these
for development of their individual plugin in complete freedom and
push to the repository when the plugin is ready providing item 1.
These repositories also ensure Geany has a copy of the plugin under
project control to prevent them disappearing or changing unexpectedly
and to allow local bugfixes and quality checks to be made, providing
item 3.  I understand that access can be limited to specific repos so
maintainers can't accidently change another plugin.

The combined release has its own repository that refers to the
individual plugins ones.  Git submodules allow the combined repository
to point to specific versions of the individual plugin repositories,
perfect for release functionality.  Pushes from maintainers are not
automatically included in the combined release until they have been
quality checked.

Unfortunately this violates item 2 since users checking out the
combined release need to know to pull the subprojects, a somewhat more
esoteric thing than "git clone
git://github.com/geany-plugins/geany-plugins.git" but we can put the
necessary command in readme and other places.  Other than that only
the combined plugin maintainers need to know about the subproject
technology, not individual plugin maintainers.  This keeps the entry
cost low for plugin maintainers.

Note that a plugin that fails to meet quality requirements, or some
other criteria for inclusion in the combined release, still has its
own repository available to users.  So plugins can be added or dropped
from the combined release whilst still being available to users from
their individual repository, providing item 4.

Cheers
Lex



More information about the Devel mailing list