---
# System prepended metadata

title: Open RFC Meeting - Deep Dive

---


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






