mirror of
https://github.com/go-task/task.git
synced 2025-03-19 21:17:46 +02:00
Add a styleguide to documentation site
This commit is contained in:
parent
a152db7054
commit
e1dcd0b441
@ -1,5 +1,6 @@
|
|||||||
- [Installation](installation.md)
|
- [Installation](installation.md)
|
||||||
- [Usage](usage.md)
|
- [Usage](usage.md)
|
||||||
|
- [Styleguide](styleguide.md)
|
||||||
- [Taskfile Versions](taskfile_versions.md)
|
- [Taskfile Versions](taskfile_versions.md)
|
||||||
- [Examples](examples.md)
|
- [Examples](examples.md)
|
||||||
- [Releasing Task](releasing_task.md)
|
- [Releasing Task](releasing_task.md)
|
||||||
|
213
docs/styleguide.md
Normal file
213
docs/styleguide.md
Normal file
@ -0,0 +1,213 @@
|
|||||||
|
# Styleguide
|
||||||
|
|
||||||
|
This is the official Task styleguide for `Taskfile.yml` files. This guide
|
||||||
|
contains some basic instructions to keep your Taskfile clean and familiar to
|
||||||
|
other users.
|
||||||
|
|
||||||
|
This contains general guidelines, but don't necessarely need to be strictly
|
||||||
|
followed. Feel free to disagree and proceed differently in some point if you
|
||||||
|
need or want to. Also, feel free to open issues or pull requests with
|
||||||
|
improvements to this guide.
|
||||||
|
|
||||||
|
## Use `Taskfile.yml` and not `taskfile.yml`
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# bad
|
||||||
|
taskfile.yml
|
||||||
|
|
||||||
|
|
||||||
|
# good
|
||||||
|
Taskfile.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
This is important to specially to Linux users. Windows and macOS have case
|
||||||
|
insensitive filesystems, so `taskfile.yml` will end up working, even that not
|
||||||
|
officially supported. On Linux, only `Taskfile.yml` will work, though.
|
||||||
|
|
||||||
|
## Use the correct order of keywords
|
||||||
|
|
||||||
|
- `version:`
|
||||||
|
- `includes:`
|
||||||
|
- Configuration ones, like `output:` and `expansions:`
|
||||||
|
- `vars:`
|
||||||
|
- `env:`
|
||||||
|
- `tasks:`
|
||||||
|
|
||||||
|
## Use 2 spaces for indentation
|
||||||
|
|
||||||
|
This is the most common convention for YAML files, and Task follows it.
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# bad
|
||||||
|
tasks:
|
||||||
|
foo:
|
||||||
|
cmds:
|
||||||
|
- echo 'foo'
|
||||||
|
|
||||||
|
|
||||||
|
# good
|
||||||
|
tasks:
|
||||||
|
foo:
|
||||||
|
cmds:
|
||||||
|
- echo 'foo'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Separate with spaces the mains sections
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# bad
|
||||||
|
version: 2
|
||||||
|
includes:
|
||||||
|
docker: ./docker/Taskfile.yml
|
||||||
|
output: prefixed
|
||||||
|
expansions: 3
|
||||||
|
vars:
|
||||||
|
FOO: bar
|
||||||
|
env:
|
||||||
|
BAR: baz
|
||||||
|
tasks:
|
||||||
|
# ...
|
||||||
|
|
||||||
|
|
||||||
|
# good
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
includes:
|
||||||
|
docker: ./docker/Taskfile.yml
|
||||||
|
|
||||||
|
output: prefixed
|
||||||
|
expansions: 3
|
||||||
|
|
||||||
|
vars:
|
||||||
|
FOO: bar
|
||||||
|
|
||||||
|
env:
|
||||||
|
BAR: baz
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
# ...
|
||||||
|
```
|
||||||
|
|
||||||
|
## Add spaces between tasks
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# bad
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
foo:
|
||||||
|
cmds:
|
||||||
|
- echo 'foo'
|
||||||
|
bar:
|
||||||
|
cmds:
|
||||||
|
- echo 'bar'
|
||||||
|
baz:
|
||||||
|
cmds:
|
||||||
|
- echo 'baz'
|
||||||
|
|
||||||
|
|
||||||
|
# good
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
foo:
|
||||||
|
cmds:
|
||||||
|
- echo 'foo'
|
||||||
|
|
||||||
|
bar:
|
||||||
|
cmds:
|
||||||
|
- echo 'bar'
|
||||||
|
|
||||||
|
baz:
|
||||||
|
cmds:
|
||||||
|
- echo 'baz'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Use upper-case variable names
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# bad
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
vars:
|
||||||
|
binary_name: myapp
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
build:
|
||||||
|
cmds:
|
||||||
|
- go build -o {{.binary_name}} .
|
||||||
|
|
||||||
|
|
||||||
|
# good
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
vars:
|
||||||
|
BINARY_NAME: myapp
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
build:
|
||||||
|
cmds:
|
||||||
|
- go build -o {{.BINARY_NAME}} .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Don't wrap vars in spaces when templating
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# bad
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
greet:
|
||||||
|
cmds:
|
||||||
|
- echo '{{ .MESSAGE }}'
|
||||||
|
|
||||||
|
|
||||||
|
# good
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
greet:
|
||||||
|
cmds:
|
||||||
|
- echo '{{.MESSAGE}}'
|
||||||
|
```
|
||||||
|
|
||||||
|
This convention is also used by most people for any Go templating.
|
||||||
|
|
||||||
|
## Separate task name words with a dash
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# bad
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
do_something_fancy:
|
||||||
|
cmds:
|
||||||
|
- echo 'Do something'
|
||||||
|
|
||||||
|
|
||||||
|
# good
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
do-something-fancy:
|
||||||
|
cmds:
|
||||||
|
- echo 'Do something'
|
||||||
|
```
|
||||||
|
|
||||||
|
## Use colon for task namespacing
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# good
|
||||||
|
version: 2
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
docker:build:
|
||||||
|
cmds:
|
||||||
|
- docker ...
|
||||||
|
|
||||||
|
docker:run:
|
||||||
|
cmds:
|
||||||
|
- docker-compose ...
|
||||||
|
```
|
||||||
|
|
||||||
|
This is also done automatically when using included Taskfiles.
|
Loading…
x
Reference in New Issue
Block a user