| ============ |
| Contributing |
| ============ |
| |
| DevStack uses the standard OpenStack contribution process as outlined in |
| `the OpenStack wiki 'How To |
| Contribute' <https://wiki.openstack.org/wiki/How_To_Contribute>`__. This |
| means that you will need to meet the requirements of the Contributors |
| License Agreement (CLA). If you have already done that for another |
| OpenStack project you are good to go. |
| |
| Things To Know |
| ============== |
| |
| | |
| | **Where Things Are** |
| |
| The official DevStack repository is located at |
| ``git://git.openstack.org/openstack-dev/devstack.git``, replicated from |
| the repo maintained by Gerrit. GitHub also has a mirror at |
| ``git://github.com/openstack-dev/devstack.git``. |
| |
| The `blueprint <https://blueprints.launchpad.net/devstack>`__ and `bug |
| trackers <https://bugs.launchpad.net/devstack>`__ are on Launchpad. It |
| should be noted that DevStack generally does not use these as strongly |
| as other projects, but we're trying to change that. |
| |
| The `Gerrit review |
| queue <https://review.openstack.org/#/q/project:openstack-dev/devstack,n,z>`__ |
| is, however, used for all commits except for the text of this website. |
| That should also change in the near future. |
| |
| | |
| | **HACKING.rst** |
| |
| Like most OpenStack projects, DevStack includes a ``HACKING.rst`` file |
| that describes the layout, style and conventions of the project. Because |
| ``HACKING.rst`` is in the main DevStack repo it is considered |
| authoritative. Much of the content on this page is taken from there. |
| |
| | |
| | **bashate Formatting** |
| |
| Around the time of the OpenStack Havana release we added a tool to do |
| style checking in DevStack similar to what pep8/flake8 do for Python |
| projects. It is still \_very\_ simplistic, focusing mostly on stray |
| whitespace to help prevent -1 on reviews that are otherwise acceptable. |
| Oddly enough it is called ``bashate``. It will be expanded to enforce |
| some of the documentation rules in comments that are used in formatting |
| the script pages for devstack.org and possibly even simple code |
| formatting. Run it on the entire project with ``./run_tests.sh``. |
| |
| Code |
| ==== |
| |
| | |
| | **Repo Layout** |
| |
| The DevStack repo generally keeps all of the primary scripts at the root |
| level. |
| |
| ``doc`` - Contains the Sphinx source for the documentation. |
| ``tools/build_docs.sh`` is used to generate the HTML versions of the |
| DevStack scripts. A complete doc build can be run with ``tox -edocs``. |
| |
| ``exercises`` - Contains the test scripts used to sanity-check and |
| demonstrate some OpenStack functions. These scripts know how to exit |
| early or skip services that are not enabled. |
| |
| ``extras.d`` - Contains the dispatch scripts called by the hooks in |
| ``stack.sh``, ``unstack.sh`` and ``clean.sh``. See :doc:`the plugins |
| docs <plugins>` for more information. |
| |
| ``files`` - Contains a variety of otherwise lost files used in |
| configuring and operating DevStack. This includes templates for |
| configuration files and the system dependency information. This is also |
| where image files are downloaded and expanded if necessary. |
| |
| ``lib`` - Contains the sub-scripts specific to each project. This is |
| where the work of managing a project's services is located. Each |
| top-level project (Keystone, Nova, etc) has a file here. Additionally |
| there are some for system services and project plugins. |
| |
| ``samples`` - Contains a sample of the local files not included in the |
| DevStack repo. |
| |
| ``tests`` - the DevStack test suite is rather sparse, mostly consisting |
| of test of specific fragile functions in the ``functions`` and |
| ``functions-common`` files. |
| |
| ``tools`` - Contains a collection of stand-alone scripts. While these |
| may reference the top-level DevStack configuration they can generally be |
| run alone. There are also some sub-directories to support specific |
| environments such as XenServer. |