#### Meeting from: August 25th, 2021
# Open RFC Meeting (npm)
### Attendees
- Darcy Clarke (@darcyclarke)
- Gar (@wraithgar)
- Isaac Z. Schlueter (@isaacs)
- Nathan LaFreniere (@nlf)
- Jordan Harband (@ljharb)
- Nathan Fritz (@fritzy)
- Vincent Bailly (@VincentBailly)
- Luke Karrys (@lukekarrys)
### Previously...
- [2021-08-18](https://github.com/npm/rfcs/blob/latest/meetings/2021-08-18.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. **PR**: [#126 RFC: Adding types information to the Package JSON in the registry](https://github.com/npm/rfcs/pull/126) - @orta
1. **PR**: [#437 RFC: Robust Lifecycle Scripts](https://github.com/npm/rfcs/pull/437) - @fritzy
1. **PR**: [#436 new installation mode: pure-mode](https://github.com/npm/rfcs/pull/436) - @VincentBailly
1. **PR**: [#422 RFC: audit assertions](https://github.com/npm/rfcs/pull/422) - @bnb
### Notes
#### **PR**: [#126 RFC: Adding types information to the Package JSON in the registry](https://github.com/npm/rfcs/pull/126) - @orta
- @wraithgar
- wanted to resurface this conversation based on work recently in `package.json`
- @orta did the work to add this: https://github.com/npm/read-package-json/pull/92
- **Actions:**
- [ ] @wraithgar to update the PR to ensure the linting tests pass
- [ ] @wraithgar to pull this in, in the next release
#### **PR**: [#437 RFC: Robust Lifecycle Scripts](https://github.com/npm/rfcs/pull/437) - @fritzy
- @fritzy
- it's a draft RFC currently (ie. in-design)
- trying to fix the root-cause of many issues end-users have around the context & usage of lifecycle scripts today
- want to centralize the discussions around improvements to these hooks/events
- @isaacs
- key detail/concern is how much of the downstream implementation do we expose vs. creating an abstraction/interface
- has considered this in terms as conceptual "phases"
- considerations around future usage of import maps
- **Actions:**
- Ask for feedback/ideas to be contributed to the RFC itself
- [ ] @fritzy to continue to develop/design this
#### **PR**: [#436 new installation mode: pure-mode](https://github.com/npm/rfcs/pull/436) - @VincentBailly
- @vincentbailly
- `npm` already supports 3 different reification strategies today (ie. the default, "hoisted" method, `--legacy-bundling` & `--global-style`)
- this RFC introduces a 4th strategy
- looks to help w/ performance, accuracy & "strictness"
- "strictness" is related to the sideffect found when you are able to share/use a dependency you have not delcared
- currently scoped to workspaces
- opt-in
- @ljharb
- confused by the reference to workspaces
- sounds like it's more related to transitive dependencies
- `pnpm`-style reification breaks a bunch of things for projects I maintain
- even though this is opt-in, things might still break
- @vincentbailly
- big question here is definitely how compatible this would be with the curren tecosystem
- @isaacs
- we should talk about this separate from workspaces
- we can take stock of what projects `pnpm` breaks on today & ensure we don't hit the same issues or account for why there will be breakage
- we don't have to necessarilly deal with `ERESOLVE` errors today but would as we consider this RFC
- seems like a good use for import maps
- @darcyclarke
- overrides, `npm link` & refication strategies are all related
- @fritzy
- lets solve this for workspaces to start
- solve this more thoroughly with import maps down the line
- @ljharb
- theres a lot of tooling that already exists to solve the problem already of not requiring dependencies you don't explicitely depend on
- @isaacs
- have heard feedback both positive & negative about `pnpm`'s strategy
- @iarna
- curious how much `--global-style` impacts these problems today (outside of workspaces)
- ~since global style hoists one level
- @isaacs
- have heard of people using that to detect shadow dependencies
- if the problem is space effeciency is the concern we could hardlink
- @vincentbailly
- this is/was already implemented by `yarn` (/w `--link-duplicates` https://classic.yarnpkg.com/en/docs/cli/install/#toc-yarn-install-link-duplicates) & `pnpm`
- `pnpm` has an integrity check to ensure that if someone changed something in the cache/store it checks
- @fritzy
- notably storing unpacked packages in your cache
- **Actions:**
- [ ] Answer: "How much of a breaking change would this be in the current release line
- [ ] Answer: "What projects break today w/ `pnpm` & add that information back to the RFC?"
#### **PR**: [#422 RFC: audit assertions](https://github.com/npm/rfcs/pull/422) - @bnb
- ...