Bazaar spontaneously unusable
Neil Martinsen-Burrell
nmb at wartburg.edu
Tue Mar 30 20:06:54 BST 2010
On 03/30/2010 02:28 AM, Martin Pool wrote:
> If we did it, would plugins rely on it and only check the minimum api
> version? Or do authors think it's at least worth a go?
I think it's worth a go, but authors will only rely on it if it becomes
trustworthy. I have concerns about its scalability as our already large
plugin ecosystem becomes even larger, particularly as we see more
closely bound plugins such as those for IDEs (althought qbzr and
Explorer are decent canaries for such plugins).
>> We run some static analysis scripts over the set of registered plugins and
>> get some hard data about exactly what modules and APIs within bzrlib are
>> used and by whom. Before we deprecate stuff in the code, we check that
>> data/web-site and react accordingly. We might decide not to deprecate
>> certain things. Or we might proactively communicate with the plugin
>> maintainer about the change and synchronise releasing a new version of the
>> plugin with landing the change into bzr's trunk. Either way, I feel it would
>> show plugin authors that we care and, equally importantly, keep things
>> running smoother for end users.
>
> We can also just run the plugins' tests... My impression is that a
> large fraction of failures are not going to be caught by static
> checks; on the other hand some gui code may not have good automatic
> test coverage.
As a plugin author whose plugin works on 2.1 but not 2.0 (uses
BzrCommand.run_direct in the implementation and bzrlib.tests.script in
the test suite), I like the idea that I could find version
incompatibilities by running the test suite. I'm not sure that this is
the case currently.
I declare bzr_minimum_version = (2,1,0) in my plugin's setup.py and when
I run ``bzr-2.0 selftest -s bp.colo`` I get skips for almost all of my
tests. This is wonderful that this works so easily, but what that
doesn't take care of is the fact that ``bzr-2.0 colo-branch new_branch``
gives an ugly traceback. Should I be doing api_require for such a
situation? Where can I get a mapping from bzr versions to api versions?
The *proper* way to declare version requirements is something that could
be clearer in our plugin documentation. If I knew what was proper, then
I would even be willing to write that documentation.
-Neil
More information about the bazaar
mailing list