#### Meeting from: October 6th, 2021 # Open RFC Meeting (npm) ### Attendees - Darcy Clarke (@darcyclarke) - Nathan Fritz (@fritzy) - Matt Hayes (@mysterycommand) - Gar (@wraithgar) - Jordan Harband (@ljharb) - Rick Markins (@rxmarbles) ### Previously... - [2021-09-29](https://github.com/npm/rfcs/blob/latest/meetings/2021-09-29.md) ### Agenda 1. **Housekeeping** 1. Introduction(s) 1. [Code of Conduct Acknowledgement](https://www.npmjs.com/policies/conduct) 1. Outline Intentions & Desired Outcomes 1. Announcements 1. **Issue**: [#466 [RRFC] `npm publish --if-needed`](https://github.com/npm/rfcs/issues/466) - @ljharb 1. **Issue**: [#463 [RRFC] Multi-app Monorepo Support](https://github.com/npm/rfcs/issues/463) - @mysterycommand 1. **Tree Mutation Event** 1. **Issue**: [#445 ⚠️ [RRFC] Breaking changes for `npm@8`](https://github.com/npm/rfcs/issues/445) - @nlf ### Notes #### **Issue**: [#466 [RRFC] `npm publish --if-needed`](https://github.com/npm/rfcs/issues/466) - @ljharb - **Action:** - @darcyclarke to remove label - @darcyclarke to backlog work for CLI team #### **Issue**: [#463 [RRFC] Multi-app Monorepo Support](https://github.com/npm/rfcs/issues/463) - @mysterycommand - @mysterycommand - use-case for this RFC comes from sharing lambdas across multiple repos - right now have a tedious job to cd'ing around & only install prod deps - tried doing `npm install` + `npm shrinkwrap` + `npm ci` inside the lambda (ran into problems w/ local deps specified that eventually reach out to a registry to resolve vs. the local/bundled version) - @ljharb - have been saying this for awhile (in terms of ideal workspace layout on disk) - node_modules should live alongside the package.json for that part of the try (not hoisted) - peer dependencies/share dependencies could love somewhere else at the root (not hoisted) - @isaacs - we've potentially fixed this problem where workspaces respect lifecycle scripts that would allow you to set a `prepare` script to properly build/pack `b` - change to `npm-packlist` will go out soon (respects ignore scripts inside workspaces) - bundled dependencies should have their prepare/prepack scripts run - @ljharb - should all symlinked dependencies should have their prepare/prepack scripts run? - @isaacs - no, just define the dep as bundled as well as define it as a dependency - ex. ```json= { "name": "lambda-a", "dependencies": { "b": "file:../b" }, "bundleDependencies": [ "b" ], "scripts": { "prepare": "cd ../b; npm run prepare" } } ``` - **Actions:** - [ ] land npm-packlist in cli (@wraithgar) - [ ] RFC about running prepare scripts for linked bundled deps - [ ] RFC about workspace layout (ljharb) #### **Issue**: [#445 ⚠️ [RRFC] Breaking changes for `npm@8`](https://github.com/npm/rfcs/issues/445) - @nlf - @ljharb - upgrading more then one major at a time can be hard to do - if there's no major changes, it should be easy to backport - if there's easy changes, why not backport - @wraithgar - we are going to be better about this moving forward - this is a special case to drop node engines support - need to make a distinction between npm adding new features vs. node lts support - **Suport Policy**: https://github.com/npm/cli/wiki/Support-Policy - **Regression Reference**: `npm6 -> npm7 regressions` https://github.com/npm/statusboard/issues/397