Skip to content
This repository has been archived by the owner on Feb 29, 2020. It is now read-only.

WIP Vendoring documentation #5217

Open
wants to merge 5 commits into
base: master
Choose a base branch
from
Open
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions docs/v2-system-addon/vendor.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Vendoring in npm libraries

#### Build system basics

#### Vendored libraries as externals

#### Is this library a good candidate to depend on and vendor?

#### How to vendor in a library

- [ ] file a bug for vendoring in the library itself
dmose marked this conversation as resolved.
Show resolved Hide resolved

- [ ] Get license approval from the licensing team

- [ ] review the mozilla-central policy at
JeaneC marked this conversation as resolved.
Show resolved Hide resolved
https://www.mozilla.org/en-US/MPL/license-policy/
- [ ] file a license bug as described in the policy doc to request approval
dmose marked this conversation as resolved.
Show resolved Hide resolved
- [ ] make it block the next upcoming export bug (if that bug is not already
filed, file one)
- [ ] post a patch to add the license to
[ `toolkit/content/license.html` ](https://searchfox.org/mozilla-central/source/toolkit/content/license.html)
- [ ] get the patch reviewed
- [ ] make sure that the patch gets landed at export time.

- [ ] Install the package using npm

- [ ] Check that you're using npm 6.9.0 with `npm --version`
- [ ] Be sure to save the exact version by passing `--save-exact` to
`npm install`

- [ ] Include the vendored files and reference them

- [ ] update [`bin/vendor.js`](../../bin/vendor.js) to copy any files
needed at runtime as well as the license to the [`vendor/`
directory](../../vendor/)
- [ ] execute `bin/vendor.js` to copy your files into place so they get
committed and referenced at runtime
- [ ] Add the exported symbol for your library to the list of externals in
[`webpack.system-addon.config.js`](../../webpack.system-addon.config.js)
so that webpack knows where to link the symbol from
- [ ] Add the library to the list of scripts in
[`bin/render-activity-stream-html.js`](../../bin/render-activity-stream-html.js)
so it gets loaded at runtime
- [ ] test and make sure that everything builds and works at runtime