Browse code

Add stackrc comments to HACKING

Change-Id: I46ff885184a2b5b71caca905c27f28d8b1304011

Dean Troyer authored on 2013/01/11 04:22:45
Showing 1 changed files
... ...
@@ -88,6 +88,30 @@ to be in the sub-script, such as testing for keystone being enabled in
88 88
 ``configure_swift()``.
89 89
 
90 90
 
91
+stackrc
92
+-------
93
+
94
+``stackrc`` is the global configuration file for DevStack.  It is responsible for
95
+calling ``localrc`` if it exists so configuration can be overridden by the user.
96
+
97
+The criteria for what belongs in ``stackrc`` can be vaguely summarized as
98
+follows:
99
+
100
+* All project respositories and branches (for historical reasons)
101
+* Global configuration that may be referenced in ``localrc``, i.e. ``DEST``, ``DATA_DIR``
102
+* Global service configuration like ``ENABLED_SERVICES``
103
+* Variables used by multiple services that do not have a clear owner, i.e.
104
+  ``VOLUME_BACKING_FILE_SIZE`` (nova-volumes and cinder) or ``PUBLIC_NETWORK_NAME``
105
+  (nova-network and quantum)
106
+* Variables that can not be cleanly declared in a project file due to
107
+  dependency ordering, i.e. the order of sourcing the project files can
108
+  not be changed for other reasons but the earlier file needs to dereference a
109
+  variable set in the later file.  This should be rare.
110
+
111
+Also, variable declarations in ``stackrc`` do NOT allow overriding (the form
112
+``FOO=${FOO:-baz}``); if they did then they can already be changed in ``localrc``
113
+and can stay in the project file.
114
+
91 115
 Documentation
92 116
 -------------
93 117