github.com/xiaq/elvish@v0.12.0/CONTRIBUTING.md (about) 1 # Notes for Contributors 2 3 ## Code 4 5 1. Always run unit tests before committing. `make` will take care of this. 6 7 2. Some files are generated from other files. They should be committed into the repository for this package to be go-gettable. Run `go generate ./...` to regenerate them in case you modified the source. 8 9 Dependencies of the generation rules: 10 11 * The `stringer` tool: Install with `go get -u golang.org/x/tools/cmd/stringer`; 12 13 * An installed `elvish` in your PATH; 14 15 * Python 2.7 at `/usr/bin/python2.7` (Python scripts should be rewritten in either Go or Elvish). 16 17 3. Always format the code with `goimports` before committing. Run `go get golang.org/x/tools/cmd/goimports` to install `goimports`, and `goimports -w .` to format all golang sources. 18 19 To automate this you can set up a `goimports` filter for Git by putting this in `~/.gitconfig`: 20 21 [filter "goimports"] 22 clean = goimports 23 smudge = cat 24 25 Git will then always run `goimports` for you before committing, since `.gitattributes` in this repository refers to this filter. More about Git attributes and filters [here](https://www.kernel.org/pub/software/scm/git/docs/gitattributes.html). 26 27 ## Human Communication 28 29 If you are making significant changes or any user-visible changes (e.g. changes to the language, the UI or the elv script API), please discuss on the developer channel before starting to work. 30 31 ## Licensing 32 33 By contributing, you agree to license your code under the same license as existing source code of elvish. See the LICENSE file.