-
Notifications
You must be signed in to change notification settings - Fork 9
Pre release checklist
- Watch the egghead.io series How to Write an Open Source JavaScript Library; it is extremely useful for any NPM project (OSS or closed-sourced).
-
Start unit testing right away, pick your unit testing framework
-
Start linting code to prevent obvious problems, like misspelled variable. eslint, jshint, jscs or all of them together gulp-lint-everything
-
Run linting and unit tests on each commit locally. pre-git, ghooks
-
Use code quality as a service tool to fight creeping code complexity. Codacy, CodeClimate, BitHound
-
Validate commit message using pre-git or commitizen with validate-commit-msg. This enables other tools, like intelligent release notes.
-
Use a logging library to show more information during debugging or verbose mode. debug, logdown
-
Show the project's GitHub open issues on demand or on commit using git-issues
-
Setup continuous integration services like TravisCI or CircleCI (or wait until you set up semantic-release which will set up TravisCI for you).
-
Add badges to the README to make broken unit tests or out of date dependencies visible
-
Check module published size and white list only necessary files, tutorial
-
Setup semantic-release to automate publishing and avoid breaking semver. This is important, but is currently broken in too many projects. Even this checklist is using semver!
-
Avoid surprises by using exact versions of the top level dependencies. Use save-exact NPM setting and exact-semver to enforce it.
-
Setup a script to reliably update out of date dependencies using next-update
- Setup automatic pull requests when newer versions of dependencies appear greenkeeper.io
-
If writing a CLI tool, add a way to check if it is out of date and should be upgraded; update-notifier
-
Scan dependencies and code for known security vulnerabilities. snyk, NodeSecurity
-
Catch missing or invalid
package.json
values using grunt-nice-package or fixpack
-
Write simple installation commands for your module
-
Write a "quick intro" example showing the main feature(s) of your module
-
Add CONTRIBUTING.md file with clear guidelines how others can add new features or fix bugs in your module. Atom editor and lodash have excellent examples to follow. When GitHub finds a CONTRIBUTING.md file it shows a message to anyone opening an issue.
-
Generate documentation automatically. xplain is my own tool for JS to HTML/Markdown generation
-
Place most of the public API documentation in README file for simple retrieval. This allows other developers to find relevant sections right from the command line manpm or by looking up
npm home package-name
-
Use a library to output the correct plural forms of words in the user messages pluralize
Source: npm-module-checklist
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
CLI snippets for
git
.
This checklist—adapted from
bahmutov/npm-module-checklist
—provides useful tips to ensure your module is ready for production deployment and publication.
Openly declare the health of your product, project, community, and source code with these essential badges. (GitHub SaaS only.)
Icons, images, gists, code snippets, etc.
- Architecture Decision Record status labels
- Octicon cheatsheet
- Project status badges
- TechRadar labels
Stellar languages, frameworks, platform, techniques, and tools.