#### 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