| @@ -6,7 +6,7 @@ Clone the repository, keep what you need and delete everything else! | |||||
| ## Go Directories | ## Go Directories | ||||
| * `/cmd` | |||||
| ### `/cmd` | |||||
| Main applications for this project. | Main applications for this project. | ||||
| @@ -16,19 +16,19 @@ Don't put a lot of code in the application directory unless you think that code | |||||
| It's common to have a small main function that imports and invokes the code from the `/internal` and `/pkg` directories. | It's common to have a small main function that imports and invokes the code from the `/internal` and `/pkg` directories. | ||||
| * `/internal` | |||||
| ### `/internal` | |||||
| Private application and library code. | Private application and library code. | ||||
| Put your actual application code in the `/internal/app` directory (e.g., `/internal/app/myapp`) and the code shared by those apps in the `/internal/pkg` directory (e.g., `/internal/pkg/myprivlib`). | Put your actual application code in the `/internal/app` directory (e.g., `/internal/app/myapp`) and the code shared by those apps in the `/internal/pkg` directory (e.g., `/internal/pkg/myprivlib`). | ||||
| * `/pkg` | |||||
| ### `/pkg` | |||||
| Library code that's safe to use by external applications (e.g., `/pkg/mypubliclib`). | Library code that's safe to use by external applications (e.g., `/pkg/mypubliclib`). | ||||
| Other projects will import these libraries expecting them to work, so think twice before you put something here :-) | Other projects will import these libraries expecting them to work, so think twice before you put something here :-) | ||||
| * `/vendor` | |||||
| ### `/vendor` | |||||
| Application dependencies (managed manually or by your favorite dependency management tool). | Application dependencies (managed manually or by your favorite dependency management tool). | ||||
| @@ -36,35 +36,35 @@ Don't commit your application dependencies if you are building a library. | |||||
| ## Service Application Directories | ## Service Application Directories | ||||
| * `/api` | |||||
| ### `/api` | |||||
| OpenAPI/Swagger specs, JSON schema files, protocol definition files. | OpenAPI/Swagger specs, JSON schema files, protocol definition files. | ||||
| ## Web Application Directories | ## Web Application Directories | ||||
| * `/web` | |||||
| ### `/web` | |||||
| Web application specific components: static web assets, server side templates and SPAs. | Web application specific components: static web assets, server side templates and SPAs. | ||||
| ## Common Application Directories | ## Common Application Directories | ||||
| * `/configs` | |||||
| ### `/configs` | |||||
| Configuration file templates or default configs. | Configuration file templates or default configs. | ||||
| Put your `confd` or `consule-template` template files here. | Put your `confd` or `consule-template` template files here. | ||||
| * `/init` | |||||
| ### `/init` | |||||
| System init (systemd, upstart, sysv) and process manager/supervisor (runit, supervisord) configs. | System init (systemd, upstart, sysv) and process manager/supervisor (runit, supervisord) configs. | ||||
| * `/scripts` | |||||
| ### `/scripts` | |||||
| Scripts to perform various build, install, analysis, etc operations. | Scripts to perform various build, install, analysis, etc operations. | ||||
| These scripts keep the root level Makefile small and simple. | These scripts keep the root level Makefile small and simple. | ||||
| * `/build` | |||||
| ### `/build` | |||||
| Packaging and Continous Integration. | Packaging and Continous Integration. | ||||
| @@ -72,37 +72,37 @@ Put your cloud (AMI), container (Docker), OS (deb, rpm, pkg) package configurati | |||||
| Put your CI (travis, circle, drone) configurations and scripts in the `/build/ci` directory. | Put your CI (travis, circle, drone) configurations and scripts in the `/build/ci` directory. | ||||
| * `/deployments` | |||||
| ### `/deployments` | |||||
| IaaS, PaaS, system and container orchestration deployment configurations and templates (docker-compose, kubernetes/helm, mesos, terraform, bosh). | IaaS, PaaS, system and container orchestration deployment configurations and templates (docker-compose, kubernetes/helm, mesos, terraform, bosh). | ||||
| * `/test` | |||||
| ### `/test` | |||||
| Additional external test apps and test data. | Additional external test apps and test data. | ||||
| ## 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). | ||||
| * `/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` | |||||
| ### `/examples` | |||||
| Examples for your applications and/or public libraries. | Examples for your applications and/or public libraries. | ||||
| * `/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). | ||||
| * `/githooks` | |||||
| ### `/githooks` | |||||
| Git hooks. | Git hooks. | ||||
| * `/assets` | |||||
| ### `/assets` | |||||
| Other assets to go along with your repository. | Other assets to go along with your repository. | ||||