summaryrefslogtreecommitdiff
path: root/doc/source
diff options
context:
space:
mode:
authorSteve Martinelli <stevemar@ca.ibm.com>2016-02-25 16:42:45 -0500
committerSteve Martinelli <stevemar@ca.ibm.com>2016-03-01 06:06:59 +0000
commit3f95e2dd052cf0b24507088da7883e281101b6b9 (patch)
tree253ab42d068065ff960af0f52fcde7f38110ac7d /doc/source
parent6176e802b3a4125e983eba3805f3f90881622bc4 (diff)
downloadpython-openstackclient-3f95e2dd052cf0b24507088da7883e281101b6b9.tar.gz
add a checklist for creating a new plugin
includes steps for both infra and osc changes. Change-Id: I35ae2eb29cff87f5c971e64badd2927fc9a59bf4
Diffstat (limited to 'doc/source')
-rw-r--r--doc/source/plugins.rst38
1 files changed, 38 insertions, 0 deletions
diff --git a/doc/source/plugins.rst b/doc/source/plugins.rst
index 288ee4b1..f5bbd6dd 100644
--- a/doc/source/plugins.rst
+++ b/doc/source/plugins.rst
@@ -129,3 +129,41 @@ so the version should not contain the leading 'v' character.
DEFAULT_API_VERSION +
' (Env: OS_OSCPLUGIN_API_VERSION)')
return parser
+
+Checklist for adding new OpenStack plugins
+==========================================
+
+Creating the initial plugin described above is the first step. There are a few
+more steps needed to fully integrate the client with openstackclient.
+
+Add the command checker to your CI
+----------------------------------
+
+#. Modify the section of ``zuul/layout.yaml`` related to your repository to
+ add ``osc-plugin-jobs`` to the list of job templates for your project.
+ This job checks that to see if any new commands are: duplicated, missing
+ entry points, or have overlap; across all openstackclient plugins.
+
+#. Update ``jenkins/scripts/check-osc-plugins.sh`` to include your new
+ library to be installed from source. This is essential in running the
+ previously mentioned check job. Simply add
+ ``install_from_source python-fooclient`` to the block of code where all
+ other clients are installed.
+
+Changes to python-openstackclient
+---------------------------------
+
+#. In ``doc/source/plugins.rst``, update the `Adoption` section to reflect the
+ status of the project.
+
+#. Update ``doc/source/commands.rst`` to include objects that are defined by
+ fooclient's new plugin.
+
+#. Update ``doc/source/plugin-commands.rst`` to include the entry point defined
+ in fooclient. We use `sphinxext`_ to automatically document commands that
+ are used.
+
+#. Update ``test-requirements.txt`` to include fooclient. This is necessary
+ to auto-document the commands in the previous step.
+
+.. _sphinxext: http://docs.openstack.org/developer/stevedore/sphinxext.html