@@ -190,234 +190,7 @@ repository:
190
190
informational log messages with the ` --level warning ` option.
191
191
* Generated documentation may be found in the ` build/master/html ` directory.
192
192
193
- ## Creating a maintenance branch and updating master branch alias
194
-
195
- After releasing a new major or minor version (e.g. 1.9.0), a maintenance branch
196
- (e.g. v1.9) should be created. Any development towards a patch release (e.g.
197
- 1.9.1) would then be done within that branch and any development for the next
198
- major or minor release can continue in master.
199
-
200
- After creating a maintenance branch, the ` extra.branch-alias.dev-master ` field
201
- in the master branch's ` composer.json ` file should be updated. For example,
202
- after branching v1.9, ` composer.json ` in the master branch may still read:
203
-
204
- ```
205
- "branch-alias": {
206
- "dev-master": "1.9.x-dev"
207
- }
208
- ```
209
-
210
- The above would be changed to:
211
-
212
- ```
213
- "branch-alias": {
214
- "dev-master": "1.10.x-dev"
215
- }
216
- ```
217
-
218
- Commit this change:
219
-
220
- ```
221
- $ git commit -m "Master is now 1.10-dev" composer.json
222
- ```
223
-
224
193
## Releasing
225
194
226
- The following steps outline the release process for both new minor versions (e.g.
227
- releasing the ` master ` branch as X.Y.0) and patch versions (e.g. releasing the
228
- ` vX.Y ` branch as X.Y.Z).
229
-
230
- The command examples below assume that the canonical "mongodb" repository has
231
- the remote name "mongodb". You may need to adjust these commands if you've given
232
- the remote another name (e.g. "upstream"). The "origin" remote name was not used
233
- as it likely refers to your personal fork.
234
-
235
- It helps to keep your own fork in sync with the "mongodb" repository (i.e. any
236
- branches and tags on the main repository should also exist in your fork). This
237
- is left as an exercise to the reader.
238
-
239
- ### Ensure PHP version compatibility
240
-
241
- Ensure that the library test suite completes on supported versions of PHP.
242
-
243
- ### Transition JIRA issues and version
244
-
245
- All issues associated with the release version should be in the "Closed" state
246
- and have a resolution of "Fixed". Issues with other resolutions (e.g.
247
- "Duplicate", "Works as Designed") should be removed from the release version so
248
- that they do not appear in the release notes.
249
-
250
- Check the corresponding ".x" fix version to see if it contains any issues that
251
- are resolved as "Fixed" and should be included in this release version.
252
-
253
- Update the version's release date and status from the
254
- [ Manage Versions] ( https://jira.mongodb.org/plugins/servlet/project-config/PHPLIB/versions )
255
- page.
256
-
257
- ### Update version info
258
-
259
- The PHP library uses [ semantic versioning] ( https://semver.org/ ) . Do not break
260
- backwards compatibility in a non-major release or your users will kill you.
261
-
262
- Before proceeding, ensure that the ` master ` branch is up-to-date with all code
263
- changes in this maintenance branch. This is important because we will later
264
- merge the ensuing release commits up to master with ` --strategy=ours ` , which
265
- will ignore changes from the merged commits.
266
-
267
- ### Update composer.json and CI matrices
268
-
269
- This is especially important before releasing a new minor version.
270
-
271
- Ensure that the extension requirement and branch alias in ` composer.json ` are
272
- correct for the library version being released. For example, the 1.15.0 release
273
- of the library should depend on version ` ^1.15.0 ` of the extension and master
274
- branch alias should be ` 1.15.x-dev ` .
275
-
276
- If this is the first release of a minor version for the library, it is likely
277
- following an extension release. In that case, the ` driver-versions ` matrix in
278
- the Evergreen configuration should be updated:
279
-
280
- ``` diff
281
- - id: "oldest-supported"
282
- - display_name: "PHPC 1.15-dev"
283
- + display_name: "PHPC 1.15.0"
284
- variables:
285
- - EXTENSION_BRANCH: "master"
286
- + EXTENSION_VERSION: "1.15.0"
287
- - id: "latest-stable"
288
- - display_name: "PHPC 1.15-dev"
289
- + display_name: "PHPC 1.15.x"
290
- variables:
291
- - EXTENSION_BRANCH: "master"
292
- + EXTENSION_VERSION: "stable"
293
- - id: "latest-dev"
294
- - display_name: "PHPC 1.15-dev"
295
- + display_name: "PHPC 1.16-dev"
296
- variables:
297
- EXTENSION_BRANCH: "master"
298
- ```
299
-
300
- Commit and push any changes:
301
-
302
- ```
303
- $ git commit -m "Update composer.json and CI matrices for X.Y.Z" composer.json .evergreen/config.yml
304
- $ git push mongodb
305
- ```
306
-
307
- ### Tag the release
308
-
309
- Create a tag for the release and push:
310
-
311
- ```
312
- $ git tag -a -m "Release X.Y.Z" X.Y.Z
313
- $ git push mongodb --tags
314
- ```
315
-
316
- ### Branch management
317
-
318
- #### After releasing a new minor version
319
-
320
- After a new minor version is released (i.e. ` master ` was tagged), a maintenance
321
- branch should be created for future patch releases:
322
-
323
- ```
324
- $ git checkout -b vX.Y
325
- $ git push mongodb vX.Y
326
- ```
327
-
328
- Update the master branch alias in ` composer.json ` :
329
-
330
- ``` diff
331
- "extra": {
332
- "branch-alias": {
333
- - "dev-master": "1.15.x-dev"
334
- + "dev-master": "1.16.x-dev"
335
- }
336
- },
337
- ```
338
-
339
- Commit and push this change:
340
-
341
- ```
342
- $ git commit -m "Master is now X.Y-dev" composer.json
343
- $ git push mongodb
344
- ```
345
-
346
- #### After releasing a patch version
347
-
348
- If this was a patch release, the maintenance branch must be merged up to master:
349
-
350
- ```
351
- $ git checkout master
352
- $ git pull mongodb master
353
- $ git merge vX.Y --strategy=ours
354
- $ git push mongodb
355
- ```
356
-
357
- The ` --strategy=ours ` option ensures that all changes from the merged commits
358
- will be ignored. This is OK because we previously ensured that the ` master `
359
- branch was up-to-date with all code changes in this maintenance branch before
360
- tagging.
361
-
362
- ### Publish release notes
363
-
364
- The following template should be used for creating GitHub release notes via
365
- [ this form] ( https://github.com/mongodb/mongo-php-library/releases/new ) .
366
-
367
- ``` markdown
368
- The PHP team is happy to announce that version X.Y.Z of the MongoDB PHP library is now available.
369
-
370
- **Release Highlights**
371
-
372
- <one or more paragraphs describing important changes in this release>
373
-
374
- A complete list of resolved issues in this release may be found in [JIRA]($JIRA_URL).
375
-
376
- **Documentation**
377
-
378
- Documentation for this library may be found in the [PHP Library Manual](https://mongodb.com/docs/php-library/current/).
379
-
380
- **Installation**
381
-
382
- This library may be installed or upgraded with:
383
-
384
- composer require mongodb/mongodb:X.Y.Z
385
-
386
- Installation instructions for the `mongodb` extension may be found in the [PHP.net documentation](https://php.net/manual/en/mongodb.installation.php).
387
- ```
388
-
389
- The URL for the list of resolved JIRA issues will need to be updated with each
390
- release. You may obtain the list from
391
- [ this form] ( https://jira.mongodb.org/secure/ReleaseNote.jspa?projectId=12483 ) .
392
-
393
- If commits from community contributors were included in this release, append the
394
- following section:
395
-
396
- ``` markdown
397
- **Thanks**
398
-
399
- Thanks for our community contributors for this release:
400
-
401
- * [$CONTRIBUTOR_NAME](https://github.com/$GITHUB_USERNAME)
402
- ```
403
-
404
- Release announcements should also be posted in the [ MongoDB Product & Driver Announcements: Driver Releases] ( https://mongodb.com/community/forums/tags/c/announcements/driver-releases/110/php ) forum and shared on Twitter.
405
-
406
- ### Documentation Updates for New Major and Minor Versions
407
-
408
- New major and minor releases will also require documentation updates to other
409
- projects:
410
-
411
- * Create a DOCSP ticket to add the new version to PHP's server and language
412
- [ compatibility tables] ( https://mongodb.com/docs/drivers/php/#compatibility )
413
- in the driver docs portal. See
414
- [ mongodb/docs-ecosystem #642 ] ( https://github.com/mongodb/docs-ecosystem/pull/642 )
415
- for an example.
416
-
417
- * Create a DOCSP ticket to update the "current" and "upcoming" navigation links
418
- in the library's [ documentation] ( https://mongodb.com/docs/php-library/current ) . This
419
- will require updating
420
- [ mongodb/docs-php-library] ( https://github.com/mongodb/docs-php-library ) .
421
-
422
- These tasks can be initiated prior to tagging a new release to ensure that the
423
- updated content becomes accessible soon after the release is published.
195
+ The releases are created by the maintainers of the library. The process is documented in
196
+ the [ RELEASING.md] ( RELEASING.md ) file.
0 commit comments