Go to Issues and make a new issue.
Make sure to:
- Check that the issue has not already been reported (open and closed ones).
- Check that the issue is not part of an active pull request.
Cool that you want to contribute your code :-)
Remember to:
- Include only one feature in a pull request.
- Open an issue and mention your planned pull request.
- Add/update tests if needed.
- The tests must pass (see Testing).
- Update ./README.org if needed.
- Update the documentation in the ./README.org if needed.
- Update ./CHANGELOG.org.
Uses makem.sh for linting and running the tests. The tests are written with buttercup. After pushing a GitHub action is triggered to automatically lint and run tests. The outcome can be seen on the Actions page.
To lint the package and run the tests locally from the command line you can use
the Makefile targets or call makem.sh directly. Make sure to build the sandbox
(make sandbox-build
) before running the tests and to rebuild it if the
dependencies or the emacs version have changed. The main targets are:
sandbox-build | Creates the sandbox directory and installs the dependencies and linters in the sandbox. |
sandbox-clean | Removes the sandbox directory. |
sandbox-rebuild | Runs sandbox-clean and then sandbox-build . |
sandbox-all | Run the tests and lint the package in the sandbox. |
sandbox-lint | Lint in the sandbox. |
sandbox-test | Run the tests in the sandbox. |
sandbox-interactive | Load the packages in the sandbox and launch Emacs (GUI). |
There are additional makefile targets for linting to be able to call the linters separately:
sandbox-lint-checkdoc | Run checkdoc. Checks for style errors. |
sandbox-lint-compile | Byte-compile source files with warnings as errors. |
sandbox-lint-declare | Run check-declare. |
sandbox-lint-elsa | Run Elsa (not included in “sandbox-lint” rule). |
sandbox-lint-indent | Lint indentation. |
sandbox-lint-package | Run package-lint, a linting library for elisp package metadata |
sandbox-lint-regexps | Relint scans elisp files for mistakes in regexps. |
To increase the verbosity add v=v
or v=vv
before or after the target like
make v=vv sandbox-all
.