A linting library for elisp package metadata
This library provides a linter for the metadata in Emacs Lisp files which are intended to be packages. You can integrate it into your build process.
package-lintdetects various issues that may make your package uninstallable or unusable for some users, and it warns about significant deviations from the Elisp coding conventions, such as non-compliant symbol naming, and use of reserved keybindings. Among other community uses,
package-lintis a prerequisite for submission of packages to MELPA.
package-lintcan be used standalone, but see also the flycheck-package and
package-lint-flymakepackages, which both use
package-lintto conveniently display packaging errors directly in the buffer while writing elisp packages.
The recommended way to get
package-lintis as a package from the MELPA repository. The version of
package-lintthere will always be up-to-date. There are also packages in MELPA Stable, which track the latest numbered tag.
Use the command
package-lint-current-bufferinteractively, or use
package-lint-bufferif linting programmatically.
If you're a package author, you can include
package-lintin your build process by ensuring that the package is installed, and then using the function
package-lint-batch-and-exitto lint your files -- see
run-tests.shin this repo for an example.
Additional checks for future versions:
-modefunction directly instead of using
Please refer to the file
package-lintwas written by Steve Purcell with significant contributions from Fanael Linithien.