~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/en/user-guide/writing_a_plugin.txt

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2007-11-30 05:43:20 UTC
  • mfrom: (3054.1.1 ianc-integration)
  • Revision ID: pqm@pqm.ubuntu.com-20071130054320-b4oer0rcbiy2ouzg
Bazaar User Guide for 1.0rc (Ian Clatworthy)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Writing a plugin
 
2
================
 
3
 
 
4
Introduction
 
5
------------
 
6
 
 
7
Plugins are very similar to bzr core functionality.  They can import
 
8
anything in bzrlib.  A plugin may simply override standard functionality,
 
9
but most plugins supply new commands.
 
10
 
 
11
Creating a new command
 
12
----------------------
 
13
 
 
14
To create a command, make a new object that derives from
 
15
``bzrlib.commands.Command``, and name it ``cmd_foo``, where foo is the name of
 
16
your command.  If you create a command whose name contains an underscore,
 
17
it will appear in the UI with the underscore turned into a hyphen.  For
 
18
example, `cmd_baz_import` will appear as `baz-import`.  For examples of how
 
19
to write commands, please see ``builtins.py``.
 
20
 
 
21
Once you've created a command you must register the command with
 
22
``bzrlib.commands.register_command(cmd_foo)``.  You must register the
 
23
command when your file is imported, otherwise bzr will not see it.
 
24
 
 
25
Plugin searching rules
 
26
----------------------
 
27
 
 
28
Bzr will scan ``bzrlib/plugins`` and ``~/.bazaar/plugins`` for plugins
 
29
by default.  You can override this with ``BZR_PLUGIN_PATH``.  Plugins
 
30
may be either modules or packages.  If your plugin is a single file,
 
31
you can structure it as a module.  If it has multiple files, or if you
 
32
want to distribute it as a bzr branch, you should structure it as a
 
33
package, i.e. a directory with an ``__init__.py`` file.
 
34
 
 
35
More information
 
36
----------------
 
37
 
 
38
Please feel free to contribute your plugin to BzrTools, if you think it
 
39
would be useful to other people.
 
40
 
 
41
See the `Bazaar Developer Guide`_ for details on Bazaar's development
 
42
guidelines and policies.
 
43
 
 
44
.. _Bazaar Developer Guide: ../developer-guide/HACKING.html