~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/plugin-api.txt

  • Committer: John Arbash Meinel
  • Date: 2009-06-19 17:40:59 UTC
  • mto: This revision was merged to the branch mainline in revision 4466.
  • Revision ID: john@arbash-meinel.com-20090619174059-jzowjv0d86vzjg4m
Update the python code to do the same checking around known_parent_gdfos being present.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
See also
23
23
--------
24
24
 
25
 
 * `Bazaar Developer Documentation Catalog <../index.html>`_.
26
 
 * `Bazaar Plugins Guide <http://doc.bazaar.canonical.com/plugins/en/plugin-development.html>`_ for
27
 
   more suggestions about particular APIs.
 
25
 * `Bazaar Developer Documentation Catalog <index.html>`_.
 
26
 * <http://bazaar-vcs.org/WritingPlugins> wiki page with many more
 
27
   suggestions about particular APIs
28
28
 
29
29
 
30
30
Structure of a plugin
109
109
| bzr_repository_formats | {}      | As bzr_checkout_formats but for        |
110
110
|                        |         | repositories.                          |
111
111
+------------------------+---------+----------------------------------------+
112
 
| bzr_transports         | []      | URL prefixes for which this plugin     |
113
 
|                        |         | will register transports.              |
114
 
+------------------------+---------+----------------------------------------+
115
112
 
116
113
Control Formats
117
114
---------------
128
125
 
129
126
  # (look for a .hg directory)
130
127
  bzr_control_formats = {"Mercurial":{'.hg/': None}}
131
 
 
 
128
  
132
129
  # (look for a file called .svn/format with contents 4\n).
133
130
  bzr_control_formats = {"Subversion":{'.svn/format': '4\n'}}
134
131
 
137
134
-------
138
135
 
139
136
An example setup.py follows::
140
 
 
 
137
  
141
138
  #!/usr/bin/env python2.4
142
139
  from distutils.core import setup
143
 
 
 
140
  
144
141
  bzr_plugin_name = 'demo'
145
142
  bzr_commands = [
146
143
      'new-command',
147
144
      ]
148
 
 
 
145
  
149
146
  bzr_branch_formats = {
150
147
      "Branch label on disk\n":"demo branch",
151
148
      }
152
149
 
153
150
  bzr_control_formats = {"Subversion":{'.svn/format': '4\n'}}
154
 
 
155
 
  bzr_transports = ["hg+ssh://"]
156
 
 
 
151
  
157
152
  bzr_plugin_version = (1, 3, 0, 'dev', 0)
158
153
  bzr_minimum_version = (1, 0, 0)
159
 
 
 
154
  
160
155
  if __name__ == 'main':
161
156
      setup(name="Demo",
162
157
            version="1.3.0dev0",
186
181
short complete sentence summarizing the plugin.  The full docstring is
187
182
shown by ``bzr help PLUGIN_NAME``.
188
183
 
189
 
This is a user-visible docstring so should be prefixed with ``__doc__ =``
190
 
to ensure help works under ``python -OO`` with docstrings stripped.
 
184
Remember that to be effective, the module docstring must be the first
 
185
statement in the file.  It may come after comments but it must be before
 
186
any import statements.
191
187
 
192
188
API version
193
189
-----------
241
237
time other than register or override functions to be called later.
242
238
 
243
239
The plugin can import bzrlib and call any function.
244
 
Some interesting APIs are described in `Bazaar Plugins Guide <http://doc.bazaar.canonical.com/plugins/en/plugin-development.html>`_.
 
240
Some interesting APIs are described in <http://bazaar-vcs.org/WritingPlugins>
245
241
 
246
242
 
247
243
Publishing your plugin
254
250
   <https://launchpad.net/bzr-fastimport>
255
251
   and publish the branches or tarballs there
256
252
 
257
 
 * include the plugin in <http://wiki.bazaar.canonical.com/BzrPlugins>
 
253
 * include the plugin in <http://bazaar-vcs.org/BzrPlugins>
258
254
 
259
255
 * post about it to the ``bazaar-announce`` list at ``lists.canonical.com``
260
256