state of the cli- kat marchan
TRANSCRIPT
State of the CLI
Katerina Marchán | @maybekatz | npm, Inc npm install @zkat/nodeinteractive-2016
Whatcha up to?
• npm@3
• npm@4
• npm@5(!)
• LTS
• State of Triage
• Product
npm@3
• It’s a year old!
• Works really well!
• Already shipping with node@6!
• Becoming new LTS
npm@3
New! Fast! Progress! Bar.
npm@3
• Keeping Travis green + tests pass on Windows
• Big Bugs push
• making shrinkwrap, as designed, consistent
• Major redesigns of shrinkwrap later (npm@5)
npm@4
• October 2016!
• Less impactful than npm@3
• Catch up with a few small breaking changes
• Close book on npm@2 vs npm@3
• Future semver-major releases more frequent
npm@4 - node path
• npm@3 prepends path of current `node`
• caused sadfaces/discussions
• Instead, `--scripts-prepend-node-path`
• Variety of options, no prepend by default
• @addaleax patch (and motivation for npm@4)
npm@4 - search
• `npm search` works again
• sacrificing sorting/search speed for ability to
*work*
• temporary until more featureful endpoint
• incremental, streaming search w/ caching
• npm/npm#13746
npm@4 - search
npm@4 - prepare
• `prepublish` deprecated
• `prepare` script === `prepublish`
• `prepublishOnly` script === before publish
• `prepublishOnly` not run on `npm install`
• `prepublishOnly` later renamed to `prepublish`
• npm/npm#10074
npm@5
• 2017Q1
• Focused on `npm shrinkwrap` • Refactor things to make it simpler internally
• Make it way the way the community wants it to
• Faster, more robust content-addressable cache
LTS
• Diverges from Node.js LTS process:
• small team
• want an LTS that works well for Node distribution
• we already greatly prioritize stability
• Strongly prefer developers upgrade to npm@latest
LTS
• npm@2 => “maintenance”
• npm@3 => (active) LTS
• npm@4 => node@7 (?)
• npm@5 => node@8 LTS? ¯\_( )_/¯
State of Triage
State of Triage
• Triage every day
• Daily feature request meetings
• close if not in 6-12 month roadmap
• “Big bugs” take priority over features
• @KenanY/@kyild added as a contributor!
Product
• Guiding Principles • Community Responsibilities
• Reliability
• Consistency
• Performance
• Improve the value of the CLI in the larger ecosystem
Product
• Quality & Robustness Improvement
• Performance Improvement
• Shrinkwrap Improvement
• Improved Login Experience
• Tighter Integration with the New Registry
🌊! Talk to us @npmjs!
WeAllJS.org
Open, inclusive, diverse JavaScript Slack + community. Lots of Europeans! Join us!