diff --git a/meetings/2020-04-22.md b/meetings/2020-04-22.md new file mode 100644 index 000000000..5181ec2cf --- /dev/null +++ b/meetings/2020-04-22.md @@ -0,0 +1,76 @@ + +#### 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) + + + + + +