become a node package maintainer

21
become a node package maintainer opinionated guide about creating and maintaining Donnerstag, 22. November 12

Upload: damien-klinnert

Post on 07-May-2015

889 views

Category:

Technology


4 download

DESCRIPTION

Node's official package manager npm already has more then 17.000 entries. These packages enable node developers to build web applications faster than ever. It's time to give something back to this great community and to contribute your own package. Damien Klinnert will show how to become a node package maintainer with a detailed introduction and a best practices talk.

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