Update contributing guide with website info (#146)

This commit is contained in:
Tim Byrne 2019-03-20 17:17:40 -05:00
parent 282b772ce5
commit 2848ca2d1d
No known key found for this signature in database
GPG Key ID: 14DB4FC2465A4B12
1 changed files with 35 additions and 20 deletions

View File

@ -66,8 +66,8 @@ Include the version numbers of your operating system, of **yadm**, and of Git.
### Attaching a script.gz ### Attaching a script.gz
Consider trying to reproduce the bug inside a docker container using the Consider trying to reproduce the bug inside a docker container using the
[yadm/testbed][testbed] docker image. Doing so will greatly increase the [yadm/testbed][] docker image. Doing so will greatly increase the likelihood of
likelihood of the problem being fixed. the problem being fixed.
The easiest way to start this container, is to clone the [TheLocehiliosan/yadm The easiest way to start this container, is to clone the [TheLocehiliosan/yadm
repo][yadm-repo], and use the `scripthost` make target. _(You will need `make` repo][yadm-repo], and use the `scripthost` make target. _(You will need `make`
@ -239,21 +239,22 @@ these principles when making changes.
When updating the yadm code, please follow these guidelines: When updating the yadm code, please follow these guidelines:
* ShellCheck * Code linting
* Bash code should pass the scrutiny of [ShellCheck][shellcheck]. The * Bash code should pass the scrutiny of [ShellCheck][shellcheck].
simplest way to quickly test this is to run: * Python code must pass the scrutiny of [pylint][] and [flake8][].
* `make test testargs='-k shellcheck'` * Any YAML must pass the scrutiny of [yamllint][].
* Running `make test_syntax.py` is an easy way to run all linters.
* Interface changes * Interface changes
* Any changes to **yadm**'s interface should include a commit that updates * Any changes to **yadm**'s interface should include a commit that updates
the `yadm.1` man page. the `yadm.1` man page.
### Test conventions ### Test conventions
The test system is written in Python 3 using [pytest][pytest]. Tests should be The test system is written in Python 3 using [pytest][]. Tests should be written
written for all bugs fixed and features added. To make testing portable and for all bugs fixed and features added. To make testing portable and uniform,
uniform, tests should be performed via the [yadm/testbed][testbed] docker image. tests should be performed via the [yadm/testbed][] docker image. The `Makefile`
The `Makefile` has several "make targets" for testing. Running `make` by itself has several "make targets" for testing. Running `make` by itself will produce a
will produce a help page. help page.
Please follow these guidelines while writing tests: Please follow these guidelines while writing tests:
@ -268,10 +269,6 @@ Please follow these guidelines while writing tests:
* Care should be taken to make tests run as efficiently as possible. * Care should be taken to make tests run as efficiently as possible.
* Scope large, unchanging, fixtures appropriately so they do not have to be * Scope large, unchanging, fixtures appropriately so they do not have to be
recreated multiple times. recreated multiple times.
* Linting
* Python code must pass the scrutiny of [pylint][pylint] and
[flake8][flake8]. The simplest way to quickly test this is to run:
* `make test testargs='-k pylint\ or\ flake8'`
### Commit conventions ### Commit conventions
@ -311,10 +308,24 @@ That file is only updated during software releases.
### Website changes ### Website changes
**NOTE:** A [website refactoring][refactor] is being performed soon, and it is The yadm.io website is generated using [Jekyll][jekyll]. The bulk of the
unlikely that website changes will be accepted until this task is completed. documentation is created as an ordered collection within `_docs`. To make
Better instructions for testing and submitting website changes will be written website testing easy and portable, use the [yadm/jekyll][] docker image. The
during that refactor. `Makefile` has several "make targets" for testing. Running `make` by itself will
produce a help page.
* `make test`:
Perform tests done by continuous integration.
* `make up`:
Start a container to locally test the website. The test website will be
hosted at http://localhost:4000/
* `make clean`:
Remove previously built data any any Jekyll containers.
When making website changes, be sure to adhere to [code](#code-conventions) and
[commit](#commit-conventions) conventions. Use the same [GitHub
workflow](#github-workflow) when creating a pull request. However use the
`dev-pages` branch as a base instead of `develop`.
# Maintaining packages # Maintaining packages
@ -348,6 +359,8 @@ see if you can help.
[flake8]: https://pypi.org/project/flake8/ [flake8]: https://pypi.org/project/flake8/
[groff-man]: https://www.gnu.org/software/groff/manual/html_node/man.html [groff-man]: https://www.gnu.org/software/groff/manual/html_node/man.html
[hooks-help]: https://github.com/TheLocehiliosan/yadm/blob/master/yadm.md#hooks [hooks-help]: https://github.com/TheLocehiliosan/yadm/blob/master/yadm.md#hooks
[html-proofer]: https://github.com/gjtorikian/html-proofer
[jekyll]: https://jekyllrb.com
[new-bug]: https://github.com/TheLocehiliosan/yadm/issues/new?template=BUG_REPORT.md [new-bug]: https://github.com/TheLocehiliosan/yadm/issues/new?template=BUG_REPORT.md
[new-feature]: https://github.com/TheLocehiliosan/yadm/issues/new?template=FEATURE_REQUEST.md [new-feature]: https://github.com/TheLocehiliosan/yadm/issues/new?template=FEATURE_REQUEST.md
[open-issues]: https://github.com/TheLocehiliosan/yadm/issues [open-issues]: https://github.com/TheLocehiliosan/yadm/issues
@ -358,7 +371,9 @@ see if you can help.
[refactor]: https://github.com/TheLocehiliosan/yadm/issues/146 [refactor]: https://github.com/TheLocehiliosan/yadm/issues/146
[shellcheck]: https://www.shellcheck.net [shellcheck]: https://www.shellcheck.net
[signing-commits]: https://help.github.com/en/articles/signing-commits [signing-commits]: https://help.github.com/en/articles/signing-commits
[testbed]: https://hub.docker.com/r/yadm/testbed
[tpope-style]: https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html [tpope-style]: https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
[yadm-man]: https://github.com/TheLocehiliosan/yadm/blob/master/yadm.md [yadm-man]: https://github.com/TheLocehiliosan/yadm/blob/master/yadm.md
[yadm-repo]: https://github.com/TheLocehiliosan/yadm [yadm-repo]: https://github.com/TheLocehiliosan/yadm
[yadm/jekyll]: https://hub.docker.com/r/yadm/jekyll
[yadm/testbed]: https://hub.docker.com/r/yadm/testbed
[yamllint]: https://github.com/adrienverge/yamllint