#+STARTUP:showall

* Contributing

** Running tests

There are a couple of dependencies in order to run tests. These dependencies
will be picked up directly by the =vendor= make task. You can run it by
performing:

#+BEGIN_SRC bash
$ make vendor
#+END_SRC

The =vendor= task is already called by other tasks such as =lint=. Thus, if you
just want to run everything, just execute:

#+BEGIN_SRC bash
$ make
#+END_SRC

This will fetch the dependencies for you and run the style checkers and the
tests, among other things. See the sections below to read more about them.

*** Checking the style

The [[https://github.com/gonewest818/elisp-lint][elisp-lint]] and [[https://github.com/purcell/package-lint][package-lint]] packages are being used for checking the
style. You can run these checkers by performing:

#+BEGIN_SRC bash
$ make lint
#+END_SRC

*** Git validation

In order to ensure that the git log is as maintainable as possible, the
[[https://github.com/vbatts/git-validation][git-validation]] tool is used. You can install this tool by running:

#+BEGIN_SRC bash
$ go get -u github.com/vbatts/git-validation
#+END_SRC

If you already have this tool installed, then simply perform:

#+BEGIN_SRC bash
$ make git-validation
#+END_SRC

Note that if you don't have this tool installed the task will do nothing (it
will just print a help message). This is done so when running the default make
task this doesn't interrupt it.

*** Load test

In order to test that this theme can be actually loaded, run:

#+BEGIN_SRC bash
$ make load-test
#+END_SRC

** Issue reporting

I'm using [[https://github.com/mssola/soria][Github]] in order to host the code. Thus, in order to report issues you
can do it on its [[https://github.com/mssola/soria/issues][issue tracker]]. A couple of notes on reports:

- Check that the issue has not already been reported or fixed in =master=.
- Try to be concise and precise in your description of the problem.
- Provide a step by step guide on how to reproduce this problem.
- Provide the version you are using (the commit SHA, if possible), as well as
  the version of the GNU Emacs you are using and the operating system.

** Pull requests

- Write a [[https://chris.beams.io/posts/git-commit/][good commit message]].
- Make sure that tests are passing on your local machine (it will also be
  checked by the CI system whenever you submit the pull request).
- Update the [[./CHANGELOG.org][changelog]] (if relevant).
- Open a pull request with *only* one subject and a clear title and
  description. Refrain from submitting pull requests with tons of different
  unrelated commits.
