#### Wednesday, April 22, 2020, 2:00 PM EST # Open RFC Meeting - Deep Dive ### Attendees - Darcy Clarke (@darcyclarke) - Wes Todd (@wesleytodd) - Claudia Hernández (@claudiahdz) - Ruy Adorno (@ruyadorno) - Isaac Z. Schlueter (@isaacs) - Jordan Harband (@ljharb) ### Agenda 1. **Housekeeping** 1. Introduction(s) 1. Code of Conduct Acknowledgement 1. Outline Intentions & Desired Outcomes 1. Announcements 1. Topic: * **Resolutions/Overrides** 1. References: * [**Legacy** Overrides RFC](https://github.com/npm/rfcs/blob/latest/accepted/0009-package-overrides.md) * [**New** Overrides RFC](https://github.com/npm/rfcs/pull/129) * [Previous: **Overrides Deep Dive - Agenda**](https://github.com/npm/rfcs/issues/124) * [Previous: **Overrides Deep Dive - Video Recording**](https://www.youtube.com/watch?v=GTocZoiiu4k&feature=youtu.be) * [Previous: **Overrides Deep Dive - Notes**](https://github.com/npm/rfcs/blob/latest/meetings/2020-04-08.md) ### Notes: - Discussions on implementation: Find one override and we're done: once there's a match we will not apply any other overrides, whether is string or object values - String and object values like: ```json { "typescript@^3.8": "3.7", "react": "15", "react@15": { "loose-envify@1": "1.3.1" }, "tap": { "react": "16.13.1" } } ``` Reference: https://github.com/npm/rfcs/blob/isaacs/overrides/accepted/0000-overrides.md#object-overrides
 - Isaac: We have to treat string and object overrides differently, this affects how we merge and deduplicate packages - Overrides field string structure on `package.json`: **left hand value**: a name package specifier, github repo link with at a particular branch/commit **right hand value**: an unnamed package specifier that uses alias specifiers - Examples: ``` "foo": "npm:@fancy/foo@${VERSION}" "foo": "npm:@fancy/foo" "foo": "https://my-registry/foo/-/foo-${VERSION}.tgz" “foo”: “latest” ``` - If you match the left hand value it gets overriden by the right side - Challanges: figure out which overrides are relevant at a given point of time in the code - Good aligntment of what should be included in v1 - - Wes talks about company/team wide package restrictions - shouldn't take the config out of the thing it is trying to config - npm has no concept of team-level configs - v1: npm install and then re-install to get overrides? We assume we get overrides from somewhere - Jordan: overrides on the packument? - Isaac to update the RFC with ideas discussed (version defaults, capture groups, sharing configs etc)