Skip to content

Commit 6f1906f

Browse files
committed
docs: add explanation of how to set up a new NPM package in Wombat
(cherry picked from commit a072c62)
1 parent dcec597 commit 6f1906f

File tree

1 file changed

+49
-0
lines changed

1 file changed

+49
-0
lines changed

docs/process/release.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,52 @@ Releases should be done in "reverse semver order", meaning they should follow:
108108
Oldest LTS -> Newest LTS -> Patch -> RC -> Next
109109

110110
This can skip any versions which don't need releases, so most weeks are just "Patch -> Next".
111+
112+
## Releasing a new package
113+
114+
Wombat has some special access requirements which need to be configured to publish a new NPM package.
115+
116+
See [this Wombat doc](http://g3doc/company/teams/cloud-client-libraries/team/automation/docs/npm-publish-service#existing-package)
117+
and [this postmortem](http://docs/document/d/1emx2mhvF5xMzNUlDrVRYKI_u4iUOnVrg3rV6c5jk2is?resourcekey=0-qpsFbBfwioYT4f6kyUm8ZA&tab=t.0)
118+
for more info.
119+
120+
Angular is _not_ an organization on NPM, therefore each package is published
121+
independently and Wombat access needs to be managed individually. This also means
122+
we can't rely on Wombat already having access to a new package.
123+
124+
In order to configure a brand new NPM package, it first needs to be published
125+
manually so we can add Wombat access to it. Note that this step can and should be
126+
done prior to weekly releases. The sooner this can be done, the less likely it
127+
will block the next weekly release.
128+
129+
1. Check out the `main` branch, which should always have a `-next` version.
130+
- This avoids having the initial publish actually be used in production.
131+
1. Trigger a release build locally.
132+
```shell
133+
nvm install
134+
yarn --frozen-lockfile
135+
yarn -s ng-dev release build
136+
```
137+
1. Log in to NPM as `angular`.
138+
```shell
139+
npm login
140+
```
141+
- See these two Valentine entries for authentication details:
142+
- https://valentine.corp.google.com/#/show/1460636514618735
143+
- https://valentine.corp.google.com/#/show/1531867371192103
144+
1. Publish the release.
145+
```shell
146+
(cd dist/releases/my-scope/my-pkg/ && npm publish --access public)
147+
```
148+
1. Add Wombat to the package.
149+
```shell
150+
npm owner add google-wombot @my-scope/my-pkg
151+
```
152+
1. Don't forget to logout.
153+
```shell
154+
npm logout
155+
```
156+
1. File a bug like [b/336626936](http://b/336626936) to ask Wombat maintainers to
157+
accept the invite for the new package.
158+
159+
Once Wombat accepts the invite, regular automated releases should work as expected.

0 commit comments

Comments
 (0)