OLD | NEW |
1 Structure of the infra.git repository | 1 Structure of the infra.git repository |
2 ===================================== | 2 ===================================== |
3 | 3 |
4 Please also read the root README.md file in the source tree. The following | 4 Please also read the root README.md file in the source tree. The following |
5 sections contain an overview of the directory layout. All paths are relative to | 5 sections contain an overview of the directory layout. All paths are relative to |
6 the root one, which means that infra/ refers to infra/infra/. | 6 the root one, which means that infra/ refers to infra/infra/. |
7 | 7 |
8 Entry points | 8 Entry points |
9 ------------ | 9 ------------ |
10 * run.py: wrapper script to run programs contained in subdirectories without | 10 * run.py: wrapper script to run programs contained in subdirectories without |
11 having to deal with sys.path modifications. See README.md for details and | 11 having to deal with sys.path modifications. See README.md for details and |
12 invocation. | 12 invocation. |
13 * test.py: multi-purpose script to run tests. | 13 * test.py: multi-purpose script to run tests. |
14 * infra/libs/: :doc:`reference/infra.libs` generally useful functions and classe
s | 14 * infra/libs/: :doc:`reference/infra.libs` generally useful functions and classe
s |
15 * infra/services/: standalone programs intended to be run as daemons (more | 15 * infra/services/: standalone programs intended to be run as daemons (more |
16 details below) | 16 details below) |
17 * infra/tools: command-line tools, intended to be run by developers. | 17 * infra/tools: command-line tools, intended to be run by developers. |
18 * appengine/: all Chrome-infra-managed appengine applications (more details | 18 * appengine/: all Chrome-infra-managed appengine applications (more details |
19 below) | 19 below) |
20 * infra/experimental: for, well, experimental stuff. Once they are stabilized, | 20 * infra/experimental: for, well, experimental stuff. Once they are stabilized, |
21 they should be moved in a more permanent place. | 21 they should be moved in a more permanent place. |
22 | 22 |
23 | 23 |
24 Miscellaneous technical stuff | 24 Miscellaneous technical stuff |
25 ----------------------------- | 25 ----------------------------- |
26 * bootstrap/: utilities to set up a proper Python virtual environment. | 26 * bootstrap/: utilities to set up a proper Python virtual environment. More |
| 27 details about it can be found on this page: :doc:`bootstrap`. |
27 * infra/path_hacks: submodules of this modules give access to modules in the | 28 * infra/path_hacks: submodules of this modules give access to modules in the |
28 build/ repository (``from infra.path_hacks.common import <stg>`` is actually | 29 build/ repository (``from infra.path_hacks.common import <stg>`` is actually |
29 getting ``<stg>`` from build/scripts/common). | 30 getting ``<stg>`` from build/scripts/common). |
30 * utils/: purpose? | 31 * utils/: purpose? |
31 * misc/: purpose? difference with utils/? | 32 * misc/: purpose? difference with utils/? |
32 | 33 |
33 infra/services/ | 34 infra/services/ |
34 --------------- | 35 --------------- |
35 * gnumbd: git numbering daemon. Adds a monotonically-increasing number to git | 36 * gnumbd: git numbering daemon. Adds a monotonically-increasing number to git |
36 commits. | 37 commits. |
37 * gsubtreed: git subtree daemon. Mirrors subdirectories of some repositories | 38 * gsubtreed: git subtree daemon. Mirrors subdirectories of some repositories |
38 into independent repos so they can be consumed by downstream projects. | 39 into independent repos so they can be consumed by downstream projects. |
39 * lkgr_finder / lkgr_tag_pusher: computes last known good revision, based on | 40 * lkgr_finder / lkgr_tag_pusher: computes last known good revision, based on |
40 test results. | 41 test results. |
41 | 42 |
42 appengine/ and appengine_modules/ | 43 appengine/ and appengine_modules/ |
43 --------------------------------- | 44 --------------------------------- |
44 Contains all appengine applications. | 45 appengine/ should only contain appengine applications (i.e. directories |
| 46 containing an app.yaml file), appengine_modules/ should contain python packages |
| 47 that can be shared between appengine apps. The correct way to use one of them is |
| 48 to symlink the directory inside the application directory. |
45 | 49 |
| 50 Example: the `myapp` application should live in `appengine/myapp`. To use |
| 51 `appengine_module/testing_utils`, create a symlink to it in |
| 52 `appengine/myapp/testing_utils`. The name should remain the same as Python |
| 53 relies on directory names for its import system. |
| 54 |
OLD | NEW |