become a node package                     maintainer                        opinionated guide about creating and maintaini...
introDonnerstag, 22. November 12
whois damienklinnert.com                    • javascript developer && computer science                              studen...
summary                          one: create                     two: maintain                         •    npm commands, ...
y u speak?                    • node and npm are awesome                    • everyone can publish packages w/o control   ...
one: createDonnerstag, 22. November 12
npm commands                    •     npm init         •   npm pack                    •     npm install                  ...
package.json                              create skeleton with $ npm initDonnerstag, 22. November 12
folder structureDonnerstag, 22. November 12
documentation                    • minimum: README.md and LICENSE                    • better: docs/, HISTORY.md, config.ex...
testing                    • use all: unit tests, functional tests,                              integration tests        ...
style                    • lint your code (use a lintconfig and ship it)                    • use only one coding style and...
build tool                                                       GRUNT.JS                      simple tasks: npm, complex ...
git(-hub)                    • .npmignore / .gitignore                    • specify repo and bugtracker url in            ...
publish                    • as easy as $ npm adduser && npm publish                    • will read your package.jsonDonne...
two: maintainDonnerstag, 22. November 12
evolution / revolution                    • check whether there already is a similar                              package ...
update                    • update often                    • fix bugs ASAP                    • never ever unpublish (be a...
semantic versioning                              MAJOR.MINOR.PATCH                                0.1.0, 0.2.3, 2.3.15    ...
appreciate help                    • name contributors                    • react immediately                    • enable ...
thank you                              who writes a tool to automate this?Donnerstag, 22. November 12
Upcoming SlideShare
Loading in …5
×

Become a node package maintainer

1,258 views

Published on

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.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,258
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Become a node package maintainer

  1. 1. become a node package maintainer opinionated guide about creating and maintainingDonnerstag, 22. November 12
  2. 2. introDonnerstag, 22. November 12
  3. 3. whois damienklinnert.com • javascript developer && computer science student && working at doctape • follow me @damienklinnertDonnerstag, 22. November 12
  4. 4. summary one: create two: maintain • npm commands, • evolution / revolution, package.json, folder update, semantic structure, versioning, appreciate documentation, help testing, style, build tools, git(-hub), publishDonnerstag, 22. November 12
  5. 5. 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
  6. 6. one: createDonnerstag, 22. November 12
  7. 7. npm commands • npm init • npm pack • npm install • npm adduser • npm run-script • npm publish • npm docs • npm testDonnerstag, 22. November 12
  8. 8. package.json create skeleton with $ npm initDonnerstag, 22. November 12
  9. 9. folder structureDonnerstag, 22. November 12
  10. 10. documentation • minimum: README.md and LICENSE • better: docs/, HISTORY.md, config.example • use comments, jsdoc and UML • easy to install, use and contributeDonnerstag, 22. November 12
  11. 11. testing • use all: unit tests, functional tests, integration tests • add working examples in examples/ • travis-ci • utilize $ npm testDonnerstag, 22. November 12
  12. 12. style • lint your code (use a lintconfig and ship it) • use only one coding style and keep a reference to it • make it simple + understandableDonnerstag, 22. November 12
  13. 13. build tool GRUNT.JS simple tasks: npm, complex task: grunt.jsDonnerstag, 22. November 12
  14. 14. git(-hub) • .npmignore / .gitignore • specify repo and bugtracker url in package.json • keep versions the same with git tags • create HISTORY.md from git logDonnerstag, 22. November 12
  15. 15. publish • as easy as $ npm adduser && npm publish • will read your package.jsonDonnerstag, 22. November 12
  16. 16. two: maintainDonnerstag, 22. November 12
  17. 17. evolution / revolution • check whether there already is a similar package and contribute instead • stick to your own design, style and guidesDonnerstag, 22. November 12
  18. 18. update • update often • fix bugs ASAP • never ever unpublish (be aware of dependencies) • keep repo and npm packages at the same stateDonnerstag, 22. November 12
  19. 19. semantic versioning MAJOR.MINOR.PATCH 0.1.0, 0.2.3, 2.3.15 Major: API changes Minor: new functionality Patch: bugfixes http://semver.org/Donnerstag, 22. November 12
  20. 20. appreciate help • name contributors • react immediately • enable discussions • merge pull requestsDonnerstag, 22. November 12
  21. 21. thank you who writes a tool to automate this?Donnerstag, 22. November 12

×