-
Notifications
You must be signed in to change notification settings - Fork 344
Pull request checklist
Related page How to merge.
Haskell Mode is a mature project that requires high quality engineering and adherence to project process. We strive to deliver working solution, well written documentation while keeping maintenance cost feasible for an all-volunteer effort project.
Note that we especially do NOT expected first time contributors to know about this checklist upfront. We are grateful for their pull requests and we are resolved to help them with their pull request by politely pointing out specific items to fix.
Person merging a pull request is responsible to go through this checklist before merging a pull request.
- Project scope and focus
- Code will not be a maintenance burden on the Haskell Mode community
- Code falls into project scope
- Functionality is sufficiently general to serve many users
- Engineering quality
- New functionality is reflected in unit test cases (as separate commits)
- There is an ERT test case for every modified function
- TravisCI has run and is green
- Indentation and style mimics surrounding code (does not stand out) and follows Emacs Lisp practice
- User guidelines, manual and documentation quality
- Functionality is properly described in
haskell-mode.texi
- There is a sensible docstring for everything and reflects current semantics
-
defcustom
s docstring references functions where it is used -
defun
s docstring references related functions, modes anddefcustom
s it depends on - Pull request structure
- Commit messages roughly follow A Note About Git Commit Messages
- Commits are split in semantic parts, one commit per semantic change
- Tests are in a separate commit
- Documentation changes are in a separate commit
- Pull request is cleanly rebased over current master branch and does not have fixup commits
Important: It is a discretion of Core Team to forgo some of items on this list provided it better serves current Project focus. Symmetrically it might be beneficial to impose additional requirements on case by case basis.