@@ -108,3 +108,52 @@ Releases should be done in "reverse semver order", meaning they should follow:
108108Oldest LTS -> Newest LTS -> Patch -> RC -> Next
109109
110110This 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