Transcript
Page 1: Become a node package maintainer

become a node package maintainer

opinionated guide about creating and maintaining

Donnerstag, 22. November 12

Page 2: Become a node package maintainer

intro

Donnerstag, 22. November 12

Page 3: Become a node package maintainer

whois damienklinnert.com

• javascript developer && computer science student && working at doctape

• follow me @damienklinnert

Donnerstag, 22. November 12

Page 4: Become a node package maintainer

summary

one: create

• npm commands, package.json, folder structure, documentation, testing, style, build tools, git(-hub), publish

two: maintain

• evolution / revolution, update, semantic versioning, appreciate help

Donnerstag, 22. November 12

Page 5: Become a node package maintainer

y u speak?

• node and npm are awesome

• everyone can publish packages w/o control

• lots of crappy packages (crappy maintenance, crappy docs, crappy code, crappy style, crappy structure, …)

Donnerstag, 22. November 12

Page 6: Become a node package maintainer

one: create

Donnerstag, 22. November 12

Page 7: Become a node package maintainer

npm commands• npm init

• npm install

• npm run-script

• npm docs

• npm test

• npm pack

• npm adduser

• npm publish

Donnerstag, 22. November 12

Page 8: Become a node package maintainer

package.jsoncreate skeleton with $ npm init

Donnerstag, 22. November 12

Page 9: Become a node package maintainer

folder structure

Donnerstag, 22. November 12

Page 10: Become a node package maintainer

documentation

• minimum: README.md and LICENSE

• better: docs/, HISTORY.md, config.example

• use comments, jsdoc and UML

• easy to install, use and contribute

Donnerstag, 22. November 12

Page 11: Become a node package maintainer

testing

• use all: unit tests, functional tests, integration tests

• add working examples in examples/

• travis-ci

• utilize $ npm test

Donnerstag, 22. November 12

Page 12: Become a node package maintainer

style

• lint your code (use a lintconfig and ship it)

• use only one coding style and keep a reference to it

• make it simple + understandable

Donnerstag, 22. November 12

Page 13: Become a node package maintainer

build toolGRUNT.JS

simple tasks: npm, complex task: grunt.jsDonnerstag, 22. November 12

Page 14: Become a node package maintainer

git(-hub)

• .npmignore / .gitignore

• specify repo and bugtracker url in package.json

• keep versions the same with git tags

• create HISTORY.md from git log

Donnerstag, 22. November 12

Page 15: Become a node package maintainer

publish

• as easy as $ npm adduser && npm publish

• will read your package.json

Donnerstag, 22. November 12

Page 16: Become a node package maintainer

two: maintain

Donnerstag, 22. November 12

Page 17: Become a node package maintainer

evolution / revolution

• check whether there already is a similar package and contribute instead

• stick to your own design, style and guides

Donnerstag, 22. November 12

Page 18: Become a node package maintainer

update

• update often

• fix bugs ASAP

• never ever unpublish (be aware of dependencies)

• keep repo and npm packages at the same state

Donnerstag, 22. November 12

Page 19: Become a node package maintainer

semantic versioning

MAJOR.MINOR.PATCH

0.1.0, 0.2.3, 2.3.15Major: API changes

Minor: new functionalityPatch: bugfixes

http://semver.org/

Donnerstag, 22. November 12

Page 20: Become a node package maintainer

appreciate help

• name contributors

• react immediately

• enable discussions

• merge pull requests

Donnerstag, 22. November 12

Page 21: Become a node package maintainer

thank youwho writes a tool to automate this?

Donnerstag, 22. November 12


Recommended