2020-04-24 08:55:29 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Releasing is a 3-step process.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# 1. Create a release branch
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								1.  On your local machine, create a new branch `release-X.Y`  based off the "cutting" commit and land a `chore: mark vX.Y.Z`  in the local branch: 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `git checkout master` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `git checkout -b release-X.Y` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `./utils/update_version.js vX.Y` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `npm run doc` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `git commit -am 'chore: mark vX.Y.Z'` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								1.  Push branch to the upstream 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `git push upstream release-X.Y` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Once release branch is pushed, it's last commit will be picked up by our CI/CD:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  make sure commit passes all the bots. If there are any failures, carefully inspect failures to see if these are flakes. 
						 
					
						
							
								
									
										
										
										
											2020-07-13 17:23:58 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  the [`publish_canary` ](../../.github/workflows/publish_canary_npm.yml ) workflow will publish a `@next`  version for the commit - this will be our **release candidate** . Go manually to it's page on NPM   to see what it looks like. Try installing locally. 
						 
					
						
							
								
									
										
										
										
											2020-04-24 08:55:29 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# 2. Prepare release notes
  
						 
					
						
							
								
									
										
										
										
											2020-02-28 14:40:50 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								1.  Use ["draft new release tag" ](https://github.com/microsoft/playwright/releases/new ). 
						 
					
						
							
								
									
										
										
										
											2020-03-24 10:53:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								1.  Version starts with "v", e.g. "vX.Y.Z". 
						 
					
						
							
								
									
										
										
										
											2020-05-04 22:28:09 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								1.  Run `./utils/draft_release_notes.sh`  and fill in the "TODO" in generated text. 
						 
					
						
							
								
									
										
										
										
											2020-02-28 14:40:50 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								1.  When making links to the API, copy actual links from [GitHub ](https://github.com/microsoft/playwright/blob/master/docs/api.md ), and not from `api.md`  source - these might be incorrect. 
						 
					
						
							
								
									
										
										
										
											2020-03-24 10:53:36 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    -  Before publishing, replace `blob/master/docs`  with `blob/vX.Y.Z/docs`  in all the links.
							 
						 
					
						
							
								
									
										
										
										
											2020-02-28 14:40:50 -08:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								1.  Use "Save Draft", not "Publish". 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-04-24 08:55:29 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# 3. Publish Release
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								1.  Hit "publish release" 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Once release is published, the [`publish_release` ](../../.github/workflows/publish_release.yml ) will kick in and publish package version on NPM.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-10-29 17:46:07 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# 4. Bump version on trunk to next
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								1.  Bump a version to the new `-next`  version and land a `chore: cut vX.Y.Z-post version`  commit on trunk 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  `./utils/update_version.js vX.Y.Z-next`