Skip to content

Latest commit

 

History

History
63 lines (47 loc) · 3.01 KB

CONTRIBUTING.org

File metadata and controls

63 lines (47 loc) · 3.01 KB

Contributing

Bugs, Improvements and new Features

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.

Pull Requests

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.

Testing

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.

Lint & run tests

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-buildCreates the sandbox directory and installs the dependencies and linters in the sandbox.
sandbox-cleanRemoves the sandbox directory.
sandbox-rebuildRuns sandbox-clean and then sandbox-build.
sandbox-allRun the tests and lint the package in the sandbox.
sandbox-lintLint in the sandbox.
sandbox-testRun the tests in the sandbox.
sandbox-interactiveLoad 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-checkdocRun checkdoc. Checks for style errors.
sandbox-lint-compileByte-compile source files with warnings as errors.
sandbox-lint-declareRun check-declare.
sandbox-lint-elsaRun Elsa (not included in “sandbox-lint” rule).
sandbox-lint-indentLint indentation.
sandbox-lint-packageRun package-lint, a linting library for elisp package metadata
sandbox-lint-regexpsRelint 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.