purcell / package-lint

A linting library for elisp package metadata
GNU General Public License v3.0
194 stars 34 forks source link

Melpa Status Melpa Stable Status Build Status Support me

package-lint

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-lint detects 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-lint is a prerequisite for submission of packages to MELPA.

package-lint can be used standalone, but see also the flycheck-package and package-lint-flymake packages, which both use package-lint to conveniently display packaging errors directly in the buffer while writing elisp packages.

Installation

The recommended way to get package-lint is as a package from the MELPA repository. The version of package-lint there will always be up-to-date. There are also packages in MELPA Stable, which track the latest numbered tag.

Usage

Use the command package-lint-current-buffer interactively, or use package-lint-buffer if linting programmatically.

If you're a package author, you can include package-lint in your build process by ensuring that the package is installed, and then using the function package-lint-batch-and-exit to lint your files -- see run-tests.sh in this repo for an example.

Roadmap

Additional checks for future versions:

License

Please refer to the file LICENSE.

Credits

package-lint was written by Steve Purcell with significant contributions from Fanael Linithien.


Author links:

šŸ’ Support this project and my other Open Source work

šŸ’¼ LinkedIn profile

āœ sanityinc.com

šŸ¦ @sanityinc