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