1
0
mirror of https://github.com/danog/liquid.git synced 2024-11-26 23:34:47 +01:00
liquid/CONTRIBUTING.md
2021-06-16 18:42:31 +08:00

64 lines
1.6 KiB
Markdown

# Contributing
Here's some ways to help:
* Select an item from the [issues list](https://github.com/osteele/liquid/issues)
* Search the sources for FIXME and TODO comments.
* Improve the [code coverage](https://coveralls.io/github/osteele/liquid?branch=master).
Review the [pull request template](https://github.com/osteele/liquid/blob/master/.github/PULL_REQUEST_TEMPLATE.md) before you get too far along on coding.
A note on lint: `nolint: gocyclo` has been used to disable cyclomatic complexity checks on generated functions, hand-written parsers, and some of the generic interpreter functions. IMO this check isn't appropriate for those classes of functions. This isn't a license to disable cyclomatic complexity checks or lint in general.
## Cookbook
### Set up your machine
Fork and clone the repo.
[Install go](https://golang.org/doc/install#install). On macOS running Homebrew, `brew install go` is easier than the linked instructions.
Install package dependencies and development tools:
* `make setup`
[Install golangci-lint](https://golangci-lint.run/usage/install/#local-installation).
On macOS: `brew install golangci-lint`
### Test and Lint
```bash
make pre-commit
```
You can also do these individually:
```bash
go test ./...
make lint
```
### Preview the Documentation
```bash
godoc -http=:6060
open http://localhost:6060/pkg/github.com/osteele/liquid/
```
### Work on the Expression Parser and Lexer
To work on the lexer, install Ragel. On macOS: `brew install ragel`.
Do this after editing `scanner.rl` or `expressions.y`:
```bash
go generate ./...
```
Test just the scanner:
```bash
cd expression
ragel -Z scanner.rl && go test
```