blob: b4f9f37902e8d178f0f60026d8b30f1c8563e653 [file] [log] [blame]
Dean Troyer0986a7b2014-10-29 22:08:13 -05001============
2Contributing
3============
Sean M. Collins09e550c2014-10-21 11:40:08 -04004
5DevStack uses the standard OpenStack contribution process as outlined in
6`the OpenStack wiki 'How To
7Contribute' <https://wiki.openstack.org/wiki/How_To_Contribute>`__. This
8means that you will need to meet the requirements of the Contribututors
9License Agreement (CLA). If you have already done that for another
10OpenStack project you are good to go.
11
12Things To Know
13~~~~~~~~~~~~~~
14
15|
16| **Where Things Are**
17
18The official DevStack repository is located at
19``git://git.openstack.org/openstack-dev/devstack.git``, replicated from
20the repo maintained by Gerrit. GitHub also has a mirror at
21``git://github.com/openstack-dev/devstack.git``.
22
23The `blueprint <https://blueprints.launchpad.net/devstack>`__ and `bug
24trackers <https://bugs.launchpad.net/devstack>`__ are on Launchpad. It
25should be noted that DevStack generally does not use these as strongly
26as other projects, but we're trying to change that.
27
28The `Gerrit review
29queue <https://review.openstack.org/#/q/project:openstack-dev/devstack,n,z>`__
30is, however, used for all commits except for the text of this website.
31That should also change in the near future.
32
33|
34| **HACKING.rst**
35
36Like most OpenStack projects, DevStack includes a ``HACKING.rst`` file
37that describes the layout, style and conventions of the project. Because
38``HACKING.rst`` is in the main DevStack repo it is considered
39authoritative. Much of the content on this page is taken from there.
40
41|
42| **bashate Formatting**
43
44Around the time of the OpenStack Havana release we added a tool to do
45style checking in DevStack similar to what pep8/flake8 do for Python
46projects. It is still \_very\_ simplistic, focusing mostly on stray
47whitespace to help prevent -1 on reviews that are otherwise acceptable.
48Oddly enough it is called ``bashate``. It will be expanded to enforce
49some of the documentation rules in comments that are used in formatting
50the script pages for devstack.org and possibly even simple code
51formatting. Run it on the entire project with ``./run_tests.sh``.
52
53Code
54~~~~
55
56|
57| **Repo Layout**
58
59The DevStack repo generally keeps all of the primary scripts at the root
60level.
61
62``docs`` - Contains the source for this website. It is built using
63``tools/build_docs.sh``.
64
65``exercises`` - Contains the test scripts used to validate and
66demonstrate some OpenStack functions. These scripts know how to exit
67early or skip services that are not enabled.
68
69``extras.d`` - Contains the dispatch scripts called by the hooks in
70``stack.sh``, ``unstack.sh`` and ``clean.sh``. See `the plugins
71docs <plugins.html>`__ for more information.
72
73``files`` - Contains a variety of otherwise lost files used in
74configuring and operating DevStack. This includes templates for
75configuration files and the system dependency information. This is also
76where image files are downloaded and expanded if necessary.
77
78``lib`` - Contains the sub-scripts specific to each project. This is
79where the work of managing a project's services is located. Each
80top-level project (Keystone, Nova, etc) has a file here. Additionally
81there are some for system services and project plugins.
82
83``samples`` - Contains a sample of the local files not included in the
84DevStack repo.
85
86``tests`` - the DevStack test suite is rather sparse, mostly consisting
87of test of specific fragile functions in the ``functions`` file.
88
89``tools`` - Contains a collection of stand-alone scripts, some of which
90have aged a bit (does anyone still do ramdisk installs?). While these
91may reference the top-level DevStack configuration they can generally be
92run alone. There are also some sub-directories to support specific
93environments such as XenServer.