1- # Combostrap Dev files - development flow
1+ # Devfiles - Dev flow configuration across Git repositories
22
33## About
44
5- This repository contains ` devfiles ` .
5+ This repository contains [ devfiles] ( #what-are-devfiles ) .
6+
7+ We use them to manage centrally and distribute our development flow and environment across Git repositories.
8+
9+ ## What are devfiles?
610
711` dotfiles ` configure application files, ` devfiles ` configure a development flow.
812
913With them, you can:
10- * init a new repo
11- * update an existing one
12- and get instantly a consistent development environment across git repositories.
14+
15+ * init/scaffold a new repo
16+ * update an existing one to the latest ` devfiles `
17+
18+ and get instantly a consistent development environment across your git repositories.
1319
1420
1521## QuickStart in three commands
1622
23+ In a new or existing git repository, execute the following commands to install the [ devfiles] ( #what-are-devfiles ) :
1724``` bash
1825cd your-git-repo
1926copier copy https://github.com/combostrap/devfiles .
@@ -26,15 +33,15 @@ For a step by step, see [the detailed steps](#steps)
2633
2734### Core Component
2835
29- It uses the following core components to manage common repositories stuff :
36+ It uses the following core components:
3037
31- * [ copier] ( https:// copier.readthedocs.io/ ) for project templating and upgrade
32- * [ direnv] ( https:// direnv.net/ ) for setup (project and environment)
38+ * [ copier] ( #copy-or-update-this- copier-template ) for ` devfiles ` installation and upgrade
39+ * [ direnv] ( #setup-and-local-configuration- direnv) for setup (project and environment)
3340* [ dev scripts] ( #dev-scripts ) for development flow
3441
3542### Utility components
3643
37- The utility components are used in the scripts or as configuration:
44+ The utility components are used in the [ scripts] ( #dev-scripts ) or as configuration:
3845
3946* [ pre-commit] ( https://pre-commit.com/ ) for files check and normalization
4047* [ jreleaser] ( #jreleaser ) for release management
@@ -71,14 +78,16 @@ copier copy https://github.com/combostrap/devfiles .
7178copier update .
7279```
7380
74- ### Setup and local configuration
81+ Note: the ` copier template ` is in the [ copier-template directory] ( copier-template )
82+
83+ ### Setup and local configuration (direnv)
7584
7685The [ .envrc] ( copier-template/.envrc.jinja ) file is the main entry for ` setup ` and local config.
7786
7887It will:
7988
8089* install the git hooks with [ pre-commit] ( #git-hooks-and-pre-commit )
81- * [ install the common scripts] ( #dev-scripts )
90+ * [ install the dev scripts] ( #dev-scripts )
8291
8392If you open your terminal, ` direnv ` should execute ` .envrc ` .
8493If not:
@@ -89,9 +98,8 @@ direnv reload
8998
9099## Features and configuration
91100
92- ### Copier Template
93101
94- The ` copier ` template is located at [ copier template ] ( copier-template )
102+
95103
96104### Pass - Local Secret Management
97105
@@ -105,8 +113,10 @@ Example for a GitHub token:
105113pass " $ORGANISATION_PATH_NAME /github/release-token"
106114```
107115
108- The secrets are not stored as global shell variables.
109- We create wrapper scripts so that the secret is only available while running the script.
116+ Note:
117+ * The secrets are not stored as global shell variables.
118+ * They are retrieved in wrapper script that wraps a command.
119+ * They are therefore only available while running the wrapper script.
110120
111121Example of wrappers:
112122
@@ -149,9 +159,12 @@ configuration is located at [markdown-link-check.config.json](copier-template/.c
149159
150160Default [ .gitignore] ( copier-template/.gitignore ) and [ .gitattributes] ( copier-template/.gitattributes ) are installed
151161
152- ### Create a LICENSE
162+ ### Create a LICENSE file
153163
154- A License is installed
164+ A ` LICENSE ` file is created from the following templates:
165+ * [ Apache 2.0] ( copier-template/%7B%25%20if%20license_type%20==%20'Apache-2.0'%20%25%7DLICENSE%7B%25%20endif%20%25%7D.jinja )
166+ * [ MIT] ( copier-template/%7B%25%20if%20license_type%20==%20'MIT'%20%25%7DLICENSE%7B%25%20endif%20%25%7D.jinja )
167+ * [ FSL] ( copier-template/%7B%25%20if%20license_type%20==%20'FSL-1.1-ALv2'%20%25%7DLICENSE.md%7B%25%20endif%20%25%7D.jinja )
155168
156169### Scripts
157170
@@ -166,8 +179,8 @@ Dev scripts located in the [dev-scripts](dev-scripts) directory.
166179
167180They are made available:
168181
169- * by cloning this repo
170- * and put in the PATH:
182+ * by cloning this repository
183+ * and put in the ` PATH ` :
171184 * the [ common-scripts directory] ( dev-scripts/common )
172185 * the [ package-manager directory] ( dev-scripts/package-manager )
173186
@@ -210,16 +223,18 @@ git add -A && pre-commit run
210223git-prepare
211224```
212225
213- ### Repository update
226+ ### Task Distribution
227+
228+ The [ go task] ( https://github.com/go-task/task ) file is [ Taskfile.yaml] ( copier-template/Taskfile.yaml )
229+
230+ ## How to
214231
215- You can update any repo generated to the last copier template with:
232+ ### How to update the devfiles to the latest version?
233+
234+ You can update any repo generated to the last ` devfiles ` with:
216235
217236``` bash
218237task update
219- # equivalent to
238+ # or/ equivalent to
220239copier update .
221240```
222-
223- ### Task Distribution
224-
225- The [ go task] ( https://github.com/go-task/task ) file is [ Taskfile.yaml] ( copier-template/Taskfile.yaml )
0 commit comments