Skip to content

Pre release checklist

Greg Swindle edited this page May 1, 2018 · 1 revision

Training

Quality assurance

  • 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

    • CI service badge
    • Published NPM package info NodeICO
    • Production and dev-dependency drift status david-dm
    • Semantic release badge
    • Code quality badges
    • Insecure code or dependencies
  • 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

Recommended community standards

  • 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

Git Git logo

Terminal CLI snippets for git.

  1. Git tips
  2. Git notes

tasklist This checklist—adapted from bahmutov/npm-module-checklist link-external—provides useful tips to ensure your module is ready for production deployment and publication.

verified Openly declare the health of your product, project, community, and source code with these essential badges. (GitHub SaaS only.)

UX Cheat-sheets

Info Icons, images, gists, code snippets, etc.

  1. Architecture Decision Record status labels
  2. Octicon cheatsheet
  3. Project status badges
  4. TechRadar labels

Telescope Stellar languages, frameworks, platform, techniques, and tools.

Clone this wiki locally