diff options
| author | chenxing <chason.chan@foxmail.com> | 2017-07-24 22:10:58 +0800 |
|---|---|---|
| committer | chenxing <chason.chan@foxmail.com> | 2017-10-11 14:06:08 +0800 |
| commit | 5493fb64e11d2ec961c440dbeb9a71b033f3be0b (patch) | |
| tree | ae3dfc00e990a3a3131425abe6fd31a7ee262ed2 /doc/source/contributor | |
| parent | 2ef0bd51a93a3d0d5e963824a7e5fb2ea556239e (diff) | |
| download | kolla-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.rst | 88 | ||||
| -rw-r--r-- | doc/source/contributor/bug-triage.rst | 8 | ||||
| -rw-r--r-- | doc/source/contributor/index.rst | 17 | ||||
| -rw-r--r-- | doc/source/contributor/running-tests.rst | 116 |
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 |
