---
# System prepended metadata

title: Open RFC Meeting (npm)

---

#### 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] &#x60;npm publish --if-needed&#x60;](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 &#x60;npm@8&#x60;](https://github.com/npm/rfcs/issues/445) - @nlf

### Notes

#### **Issue**: [#466 [RRFC] &#x60;npm publish --if-needed&#x60;](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 &#x60;npm@8&#x60;](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
