aboutsummaryrefslogtreecommitdiff
path: root/doc/source/contributor
diff options
context:
space:
mode:
authorchenxing <chason.chan@foxmail.com>2017-07-24 22:10:58 +0800
committerchenxing <chason.chan@foxmail.com>2017-10-11 14:06:08 +0800
commit5493fb64e11d2ec961c440dbeb9a71b033f3be0b (patch)
treeae3dfc00e990a3a3131425abe6fd31a7ee262ed2 /doc/source/contributor
parent2ef0bd51a93a3d0d5e963824a7e5fb2ea556239e (diff)
downloadkolla-5493fb64e11d2ec961c440dbeb9a71b033f3be0b.tar.gz
kolla-5493fb64e11d2ec961c440dbeb9a71b033f3be0b.zip
Rearrange existing documentation to fit the new standard layout
For more detail, see the doc migration spec. http://specs.openstack.org/openstack/docs-specs/specs/pike/os-manuals-migration.html Partially-Implements: blueprint queens-doc-restructure Co-Authored-By: Kurt Taylor <kurt.r.taylor@gmail.com> Change-Id: Iab93bf023a13b953a31152b91d4fea0fa75bf2d0
Diffstat (limited to 'doc/source/contributor')
-rw-r--r--doc/source/contributor/CONTRIBUTING.rst88
-rw-r--r--doc/source/contributor/bug-triage.rst8
-rw-r--r--doc/source/contributor/index.rst17
-rw-r--r--doc/source/contributor/running-tests.rst116
4 files changed, 229 insertions, 0 deletions
diff --git a/doc/source/contributor/CONTRIBUTING.rst b/doc/source/contributor/CONTRIBUTING.rst
new file mode 100644
index 000000000..7b6ce18f4
--- /dev/null
+++ b/doc/source/contributor/CONTRIBUTING.rst
@@ -0,0 +1,88 @@
+.. _CONTRIBUTING:
+
+=================
+How To Contribute
+=================
+
+Basics
+======
+
+#. Our source code is hosted on `OpenStack Kolla Git`_. Bugs should be filed on
+ launchpad_.
+
+#. Please follow OpenStack `Gerrit Workflow`_ to contribute to Kolla.
+
+#. Note the branch you're proposing changes to. ``master`` is the current focus
+ of development. Kolla project has a strict policy of only allowing backports
+ in ``stable/branch``, unless when not applicable. A bug in a
+ ``stable/branch`` will first have to be fixed in ``master``.
+
+#. Please file a launchpad_ blueprint for any significant code change and a bug
+ for any significant bug fix. See how to reference a bug or a blueprint in
+ the commit message here_. For simple changes, contributors may optionally
+ add the text "TrivialFix" to the commit message footer to indicate to
+ reviewers a bug is not required.
+
+.. _OpenStack Kolla Git: https://git.openstack.org/cgit/openstack/kolla/
+.. _launchpad: https://bugs.launchpad.net/kolla
+.. _here: https://wiki.openstack.org/wiki/GitCommitMessages
+
+Please use the existing sandbox repository, available at
+https://git.openstack.org/cgit/openstack-dev/sandbox, for learning, understanding
+and testing the `Gerrit Workflow`_.
+
+.. _Gerrit Workflow: https://docs.openstack.org/infra/manual/developers.html#development-workflow
+
+Adding a new service
+====================
+
+Kolla aims to both containerise and deploy all services within the OpenStack
+"big tent". This is a constantly moving target as the ecosystem grows, so these
+guidelines aim to help make adding a new service to Kolla a smooth experience.
+
+The image
+---------
+Kolla follows Docker best practices
+(https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/)
+when designing and implementing services where at all possible.
+
+We use ``jinja2`` templating syntax to help manage the volume and complexity
+that comes with maintaining multiple Dockerfiles for multiple different base
+operating systems.
+
+Images should be created under the ``docker`` directory. OpenStack services
+should inherit from the provided ``openstack-base`` image, while supporting and
+infrastructure services (e.g. mongodb) should inherit from ``base``.
+
+Services consisting of only one service should be placed in an image named the
+same as that service, e.g. ``horizon``. Services that consist of multiple
+processes generally use a base image and child images, e.g. ``glance-base``,
+``glance-api``, and ``glance-registry``.
+
+Jinja2 'blocks' are employed throughout the Dockerfile's to help operators
+customise various stages of the build (refer to
+https://docs.openstack.org/kolla/latest/image-building.html#dockerfile-customisation)
+
+Some of these blocks are free form however, there are a subset that should be
+common to every Dockerfile. The overall structure for a multi container service
+is as follows::
+
+ FROM {{ namespace }}/{{ image_prefix }}openstack-base:{{ tag }}
+ LABEL maintainer="{{ maintainer }}" name="{{ image_name }}" build-date="{{ build_date }}"
+
+ {% block << service >>_header %}{% endblock %}
+
+ {% import "macros.j2" as macros with context %}
+
+ << binary specific steps >>
+
+ << source specific steps >>
+
+ << common steps >>
+
+ {% block << service >>_footer %}{% endblock %}
+ {% block footer %}{% endblock %}
+
+.. NOTE::
+ The generic footer block ``{% block footer %}{% endblock %}`` should not be
+ included in base images (e.g. glance-base).
diff --git a/doc/source/contributor/bug-triage.rst b/doc/source/contributor/bug-triage.rst
new file mode 100644
index 000000000..d5d24ca15
--- /dev/null
+++ b/doc/source/contributor/bug-triage.rst
@@ -0,0 +1,8 @@
+==========
+Bug triage
+==========
+
+The triage of Kolla bugs follows the OpenStack-wide process documented
+on `BugTriage <https://wiki.openstack.org/wiki/BugTriage>`_ in the wiki.
+Please reference `Bugs <https://wiki.openstack.org/wiki/Bugs>`_ in the
+wiki for further details.
diff --git a/doc/source/contributor/index.rst b/doc/source/contributor/index.rst
new file mode 100644
index 000000000..13430a481
--- /dev/null
+++ b/doc/source/contributor/index.rst
@@ -0,0 +1,17 @@
+============
+Development
+============
+
+Contributing
+------------
+
+This guide is to tell someone who would like to contribute to
+Kolla project. Following this guide to propose your first patch for Kolla.
+And we are welcome everyone to join our project!
+
+.. toctree::
+ :maxdepth: 2
+
+ CONTRIBUTING.rst
+ running-tests
+ bug-triage
diff --git a/doc/source/contributor/running-tests.rst b/doc/source/contributor/running-tests.rst
new file mode 100644
index 000000000..e60671c9f
--- /dev/null
+++ b/doc/source/contributor/running-tests.rst
@@ -0,0 +1,116 @@
+.. _running-tests:
+
+=============
+Running tests
+=============
+
+Kolla contains a suite of tests in the
+``tests`` and ``kolla/tests`` directories.
+
+Any proposed code change in gerrit is automatically rejected by the OpenStack
+Jenkins server [#f1]_ if the change causes test failures.
+
+It is recommended for developers to run the test suite before submitting patch
+for review. This allows to catch errors as early as possible.
+
+Preferred way to run the tests
+------------------------------
+
+The preferred way to run the unit tests is using ``tox``. It executes tests in
+isolated environment, by creating separate virtualenv and installing
+dependencies from the ``requirements.txt`` and ``test-requirements.txt`` files,
+so the only package you install is ``tox`` itself:
+
+.. code-block:: console
+
+ $ pip install tox
+
+See `the unit testing section of the Testing wiki page`_ for more information.
+Following are some simple examples.
+
+To run the Python 2.7 tests:
+
+.. code-block:: console
+
+ $ tox -e py27
+
+To run the style tests:
+
+.. code-block:: console
+
+ $ tox -e pep8
+
+To run multiple tests separate items by commas:
+
+.. code-block:: console
+
+ $ tox -e py27,py35,pep8
+
+.. _the unit testing section of the Testing wiki page: https://wiki.openstack.org/wiki/Testing#Unit_Tests
+
+Running a subset of tests
+-------------------------
+
+Instead of running all tests, you can specify an individual directory, file,
+class or method that contains test code, i.e. filter full names of tests by a
+string.
+
+To run the tests located only in the ``kolla/tests``
+directory use:
+
+.. code-block:: console
+
+ $ tox -e py27 kolla.tests
+
+To run the tests of a specific file say ``kolla/tests/test_set_config.py``:
+
+.. code-block:: console
+
+ $ tox -e py27 test_set_config
+
+To run the tests in the ``ConfigFileTest`` class in
+the ``kolla/tests/test_set_config.py`` file:
+
+.. code-block:: console
+
+ $ tox -e py27 test_set_config.ConfigFileTest
+
+To run the ``ConfigFileTest.test_delete_path_not_exists`` test method in
+the ``kolla/tests/test_set_config.py`` file:
+
+.. code-block:: console
+
+ $ tox -e py27 test_set_config.ConfigFileTest.test_delete_path_not_exists
+
+
+Coverage Report Generation
+--------------------------
+
+In order to get coverage report for Kolla, run the below command.
+
+.. code-block:: console
+
+ $ tox -e cover
+
+Debugging unit tests
+--------------------
+
+In order to break into the debugger from a unit test we need to insert
+a breaking point to the code:
+
+.. code-block:: python
+
+ import pdb; pdb.set_trace()
+
+Then run ``tox`` with the debug environment as one of the following::
+
+ tox -e debug
+ tox -e debug test_file_name.TestClass.test_name
+
+For more information see the `oslotest documentation
+<https://docs.openstack.org/oslotest/latest/user/features.html#debugging-with-oslo-debug-helper>`_.
+
+
+.. rubric:: Footnotes
+
+.. [#f1] See https://docs.openstack.org/infra/system-config/jjb.html