| @@ -20,6 +20,8 @@ Don't put a lot of code in the application directory. If you think the code can | |||||
| It's common to have a small `main` function that imports and invokes the code from the `/internal` and `/pkg` directories and nothing else. | It's common to have a small `main` function that imports and invokes the code from the `/internal` and `/pkg` directories and nothing else. | ||||
| See the `/cmd` directory for examples. | |||||
| ### `/internal` | ### `/internal` | ||||
| Private application and library code. This is the code you don't want others importing in their applications or libraries. | Private application and library code. This is the code you don't want others importing in their applications or libraries. | ||||
| @@ -44,6 +46,8 @@ Don't commit your application dependencies if you are building a library. | |||||
| OpenAPI/Swagger specs, JSON schema files, protocol definition files. | OpenAPI/Swagger specs, JSON schema files, protocol definition files. | ||||
| See the `/api` directory for examples. | |||||
| ## Web Application Directories | ## Web Application Directories | ||||
| ### `/web` | ### `/web` | ||||
| @@ -84,20 +88,28 @@ IaaS, PaaS, system and container orchestration deployment configurations and tem | |||||
| Additional external test apps and test data. | Additional external test apps and test data. | ||||
| See the `/test` directory for examples. | |||||
| ## Other Directories | ## Other Directories | ||||
| ### `/docs` | ### `/docs` | ||||
| Design and user documents (in addition to your godoc generated documentation). | Design and user documents (in addition to your godoc generated documentation). | ||||
| See the `/docs` directory for examples. | |||||
| ### `/tools` | ### `/tools` | ||||
| Supporting tools for this project. Note that these tools can import code from the `/pkg` and `/internal` directories. | Supporting tools for this project. Note that these tools can import code from the `/pkg` and `/internal` directories. | ||||
| See the `/tools` directory for examples. | |||||
| ### `/examples` | ### `/examples` | ||||
| Examples for your applications and/or public libraries. | Examples for your applications and/or public libraries. | ||||
| See the `/examples` directory for examples. | |||||
| ### `/third_party` | ### `/third_party` | ||||
| External helper tools, forked code and other 3rd party utilities (e.g., Swagger UI). | External helper tools, forked code and other 3rd party utilities (e.g., Swagger UI). | ||||
| @@ -1,3 +1,7 @@ | |||||
| # `/api` | # `/api` | ||||
| OpenAPI/Swagger specs, JSON schema files, protocol definition files. | OpenAPI/Swagger specs, JSON schema files, protocol definition files. | ||||
| Examples: | |||||
| * https://github.com/openshift/origin/tree/master/api | |||||
| @@ -7,3 +7,7 @@ The directory name for each application should match the name of the executable | |||||
| Don't put a lot of code in the application directory. If you think the code can be imported and used in other projects, then it should live in the `/pkg` directory. If the code is not reusable or if you don't want others to reuse it, put that code in the `/internal` directory. You'll be surprised what others will do, so be explicit about your intentions! | Don't put a lot of code in the application directory. If you think the code can be imported and used in other projects, then it should live in the `/pkg` directory. If the code is not reusable or if you don't want others to reuse it, put that code in the `/internal` directory. You'll be surprised what others will do, so be explicit about your intentions! | ||||
| It's common to have a small `main` function that imports and invokes the code from the `/internal` and `/pkg` directories and nothing else. | It's common to have a small `main` function that imports and invokes the code from the `/internal` and `/pkg` directories and nothing else. | ||||
| Examples: | |||||
| * https://github.com/heptio/ark/tree/master/cmd | |||||
| @@ -1,3 +1,7 @@ | |||||
| # `/docs` | # `/docs` | ||||
| Design and user documents (in addition to your godoc generated documentation). | Design and user documents (in addition to your godoc generated documentation). | ||||
| Examples: | |||||
| * https://github.com/openshift/origin/tree/master/docs | |||||
| @@ -1,3 +1,7 @@ | |||||
| # `/examples` | # `/examples` | ||||
| Examples for your applications and/or public libraries. | Examples for your applications and/or public libraries. | ||||
| Examples: | |||||
| * https://github.com/docker-slim/docker-slim/tree/master/examples | |||||
| @@ -1,3 +1,9 @@ | |||||
| # `/test` | # `/test` | ||||
| Additional external test apps and test data. | Additional external test apps and test data. | ||||
| Examples: | |||||
| * https://github.com/openshift/origin/tree/master/test (test data is in the `/testdata` subdirectory) | |||||
| @@ -1,3 +1,7 @@ | |||||
| # `/tools` | # `/tools` | ||||
| Supporting tools for this project. Note that these tools can import code from the `/pkg` and `/internal` directories. | Supporting tools for this project. Note that these tools can import code from the `/pkg` and `/internal` directories. | ||||
| Examples: | |||||
| * https://github.com/openshift/origin/tree/master/tools | |||||