diff options
author | Noah Swartz <swartzcr@gmail.com> | 2017-04-14 02:54:51 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-14 02:54:51 +0300 |
commit | 8fea513dec115441ba98652f10fc8581120f393e (patch) | |
tree | c30eee7bea6018d64f130637ef43c4131d671cb1 /docs | |
parent | 1ff117e2ec975185ea1d0c5282f741e0b3b403f6 (diff) | |
parent | 22248c1393d22d489edebd5e804806f47d6d0eb7 (diff) |
Merge pull request #4455 from zjs/topic/zjs/developer-guide
Documentation improvements for plugin developers
Diffstat (limited to 'docs')
-rw-r--r-- | docs/contributing.rst | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/docs/contributing.rst b/docs/contributing.rst index 4579d9e97..2fc78bdc3 100644 --- a/docs/contributing.rst +++ b/docs/contributing.rst @@ -26,7 +26,8 @@ If you're on macOS, we recommend you skip the rest of this section and instead run Certbot in Docker. You can find instructions for how to do this :ref:`here <docker>`. If you're running on Linux, you can run the following commands to install dependencies and set up a virtual environment where you can run -Certbot. You only need to do this once. +Certbot. You will need to repeat this when Certbot's dependencies change or when +a new plugin is introduced. .. code-block:: shell @@ -177,8 +178,8 @@ challenges: HTTP, TLS-SNI, and DNS, represented by classes in `acme.challenges`. An authenticator plugin should implement support for at least one challenge type. An Authenticator indicates which challenges it supports by implementing -get_chall_pref(domain) to return a sorted list of challenge types in preference -order. +`get_chall_pref(domain)` to return a sorted list of challenge types in +preference order. An Authenticator must also implement `perform(achalls)`, which "performs" a list of challenges by, for instance, provisioning a file on an HTTP server, or @@ -228,9 +229,10 @@ Writing your own plugin ~~~~~~~~~~~~~~~~~~~~~~~ Certbot client supports dynamic discovery of plugins through the -`setuptools entry points`_. This way you can, for example, create a -custom implementation of `~certbot.interfaces.IAuthenticator` or -the `~certbot.interfaces.IInstaller` without having to merge it +`setuptools entry points`_ using the `certbot.plugins` group. This +way you can, for example, create a custom implementation of +`~certbot.interfaces.IAuthenticator` or the +`~certbot.interfaces.IInstaller` without having to merge it with the core upstream source code. An example is provided in ``examples/plugins/`` directory. @@ -238,6 +240,7 @@ While developing, you can install your plugin into a Certbot development virtualenv like this: .. code-block:: shell + . venv/bin/activate . tests/integration/_common.sh pip install -e examples/plugins/ |