Bundling more plugins into bzrtools
Toshio Kuratomi
a.badger at gmail.com
Thu Feb 14 18:54:49 GMT 2008
James Henstridge wrote:
> On 14/02/2008, Toshio Kuratomi <a.badger at gmail.com> wrote:
>> setup.py does help just as making tarballs for releases helps. We have
>> a template in Fedora for distutils/setuptools using packages so these
>> things do cut down on how much time we spend reinventing the wheel but
>> it is still much more effort for a packager to package twenty packages
>> rather one.
>>
>> There is the one-time cost of writing suitable descriptions for each of
>> those packages, checking them for errors, sending them through our
>> review process, doing the initial import and build.
>
> Does the description from the setup.py file help in filling in the
> blanks for a new package?
>
Yes, if it exists and is comprehensive enough. Something like::
description='Statistics plugin for Bazaar',
long_description="""
Simple statistics plugin for Bazaar.
"""
or::
description="dbus core plugin for bzr.",
is not really optimal for telling an end user why they want to install a
certain plugin package. So the packager ends up checking setup.py,
checking any included READMEs, checking for a blurb on the website, and
finally checking the output of --help and writing up something as best
they can. As a comparison, our current description for the bzrtools
package was an easy to write summary of the descriptions on the bzrtools
website::
BzrTools is a collection of plugins for Bazaar(bzr). Among the included
plugins are:
* rspush - uses rsync to push local changes to a remote server
* annotate - prints a file annotated with the revision next to each line
* baz-import - (Requres PyBaz) import an arch archive losslessly into bzr
* shelve/unshelve - allows you to undo some changes, commit, and restore
* clean-tree - remove unknown, ignored-junk, or unversioned files from
the tree
* graph-ancestry - use dot to produce banch ancestry graphs
* shell - a bzr command interpreter with command completion
* patch - apply a patch to your tree from a file or URL
>> Then there is the
>> recurring cost of rebuilding them whenever a distro-wide event requires
>> it. For instance, when we switched from python-2.4 to python-2.5 we had
>> to rebuild all of our packages. The packager would have to kick off a
>> rebuild for each package in this situation instead of just one.
>
> You don't have a way to automate those sort of rebuilds?
>
Yes and no. When we do mass rebuilds we give maintainers the option to
do rebuilds on their own. That way a responsible maintainer has a
chance to look for updated packages, apply any patches they've been
working on, and most importantly, and fix things if the new version of
python/gcc/other build tool breaks their package. Anything not taken
care of by a cutoff date is rebuilt by a script. If there is breakage
in the build (for instance, python-2.5 added egg-info to modules using
distutils so many filelists had to be updated), a packager could end up
writing patches or modifying the spec file for each of the affected
packages instead of fixing it once for the package as a whole.
>> Another
>> rebuild example (worse because it required patching the package spec
>> files) came when bzr started including compilable modules for speed.
>> Since Fedora is a multilib distro, all the plugin packages had to be
>> switched to storing their files in /usr/lib64/[...]/bzrlib on x86_64
>> instead of /usr/lib/[...]/bzrlib.
>
> That does sound like a problem with the way plugins are stored on the
> file system. I suppose it means you can't share the plugin package
> between x86 and amd64 even though they may be architecture independent
> themselves.
>
> Perhaps it'd be worth configuring bzr to look in
> /usr/lib/pythonX.Y/site-packages/bzrlib/plugins too for your amd64
> builds?
>
If bzr could do that it would be awesome! I don't know how the plugin
architecture works internally but if it relies on python's import to
find the plugins you'll have some code to write, though.
-Toshio
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: OpenPGP digital signature
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20080214/73ad93eb/attachment.pgp
More information about the bazaar
mailing list