Checklist
Build
Bump MockBot to Bot Framework SDK release 4.15.2 (not needed for patch release)
Bump botframework-directlinejs to x.y.z (no newer version)
Bump to 4.15.2
Run daily pipeline manually, set "generate release version number" to true
(This will not push to NPM or CDN)
Pipeline name is BotFramework-WebChat-daily
The build number is 303697 and commit is cf054a8
Wait for WebChat-release-testing pipeline to complete
Pipeline name is Push-Release-Testing-to-GitHub-Pages
The release ID is 374
Check component governance and make sure there are no high/critical related to code under /packages/ folder
There could be some for projects under /samples/ folder, as they are pointing to previous version of Web Chat
Add manual tests to WebChat-release-testing as needed
Test
The test should run against the build artifacts from Azure Pipelines.
Manual testing on major browsers using webchat-release-testing
Test specific fixes related to 4.15.2 and previous releases
Release
Verify on WebChat-release-testing
Make sure you are on main or qfe branch, run git status to check
git pull
Verify /package.json, /package-lock.json, and CHANGELOG.md has a version of 4.15.2
git log
Verify the latest commit is cf054a8
git tag v4.15.2
git push -u upstream v4.15.2
You do not need to kick off a build again, use the previous build
Create a new GitHub release, copy entries from CHANGELOG.md
Kick off release to NPM
Kick off release to CDN (cutoff at 2PM PST, Mon-Thu only)
Prepare the email for approval
Send reminder email to approvers
Retain the build indefinitely
Post-release verification - complete within 30 minutes after release to NPM
Notification to interested parties
Post-release checklist
These are chores that we should do before starting the cycle to reduce ripple effects if we do it in mid-cycle.
Tips:
Clean your repo before start
Remove node_modules from all folder
Never delete package-lock.json
If you mess it up, tableflip and redo
In component/package.json
Remove reference to botframework-webchat-core by hand-modifying package.json
Then, npm install (symlinks will be broken afterward)
Then, add those references back by hand-modifying package.json
This also applies for other packages with similar dependencies/symlinks
To build afterward, do tableflip to rebuild those symlinks
Applies to all releases
This list should be copied to versions in the future.
Applies to major/minor releases
Bump all dependencies to latest version
Obstacles to bump npm
Check if the followings are still valid. We should bump to npm@latest ([email protected] ) as soon as possible.
As of writing, [email protected] (bundled by node@16) has issue on running postinstall script.
[email protected] is peer-depends on @angular/common, which npm@7 will automatically install missing peer dependencies. Track the issue here .
Update CI/CD pipeline to use latest images
Some pipelines are still using windows-2016 image which will be deprecated soon, we need to update them.
Update container images
Some Dockerfile in samples are using images from docker.io. We need to update them to use non-default container registry.
Bump Docker image
The Docker image can be found at root docker-compose.yml and Dockerfile*.
Checklist
Build
Bump MockBot to Bot Framework SDK release 4.15.2(not needed for patch release)Bump(no newer version)botframework-directlinejstox.y.z4.15.2CHANGELOG.mdto mark specific changes in4.15.2npm version --no-git-tag-version 4.15.2main, the PR number is Prepare to release 4.15.2 #4276cf054a8trueBotFramework-WebChat-daily303697and commit iscf054a8WebChat-release-testingpipeline to completePush-Release-Testing-to-GitHub-Pages374/packages/folder/samples/folder, as they are pointing to previous version of Web ChatWebChat-release-testingas neededTest
webchat-release-testing4.15.2and previous releasesRelease
mainorbranch, runqfegit statusto checkgit pull/package.json,/package-lock.json, andCHANGELOG.mdhas a version of4.15.2git logcf054a8git tag v4.15.2git push -u upstream v4.15.2CHANGELOG.mdcat webchat.js | openssl dgst -sha384 -binary | openssl base64 -Acurl -H 'Accept-Encoding: gzip' https://cdn.botframework.com/botframework-webchat/4.15.2/webchat.js | gunzip - | openssl dgst -sha384 -binary | openssl base64 -Astats.jsonand 5 tarballswebchat-release-testing/drops[[PROD]]Push-WebChat-to-npmjs39and commit iscf054a8[[PROD]]Push-WebChat-to-Prod-CDN-with-approval303697, release number is43and commit iscf054a8131156(this is fixed)Post-release verification - complete within 30 minutes after release to NPM
webchat-release-testing01.create-react-app01.create-react-app/node_modulesnpm installnpm install [email protected](just install the bundle package)npm run buildnpx serve(at repo root)Notification to interested parties
Post-release checklist
These are chores that we should do before starting the cycle to reduce ripple effects if we do it in mid-cycle.
Tips:
node_modulesfrom all foldergit clean -fdxpackage-lock.jsoncomponent/package.jsonbotframework-webchat-coreby hand-modifyingpackage.jsonnpm install(symlinks will be broken afterward)package.jsonApplies to all releases
If on QFE branch, make sureCHANGELOG.mdand version number bump is cherry-picked tomaingit checkout maingit cherry-pick XXX(the commitish for bumping version number andCHANGELOG.md)CHANGELOG.mdin PR #XXXCHANGELOG.mdpackage.jsonto4.15.3-0in PR Bump to 4.15.3-0 #4285npm version prepatch --no-git-tag-versionservicingPlan.jsonin PR Add 4.15.2 to servicing plan #42864.15.2in PR Add 4.15.2 to servicing plan #4286npm initwith default valuesnpm install [email protected]Applies to major/minor releases
Bump all dependencies to latest version
npm run bumpnpm audit fixto make sure everything is fixedmicrosoft-cognitiveservices-speech-sdkObstacles to bump
npmCheck if the followings are still valid. We should bump to
npm@latest([email protected]) as soon as possible.As of writing,
[email protected](bundled bynode@16) has issue on runningpostinstallscript.[email protected]is peer-depends on@angular/common, whichnpm@7will automatically install missing peer dependencies. Track the issue here.Update CI/CD pipeline to use latest images
Some pipelines are still using
windows-2016image which will be deprecated soon, we need to update them.windows-latestUpdate container images
Some
Dockerfilein samples are using images from docker.io. We need to update them to use non-default container registry.Dockerfileto use images from non-default container registry (Allow customers to opt-in to use non-default container registry #4301)Bump Docker image
Docker container for headless Chrome (#XXX)3.14.159-xxxtag scheme to a more sensible87.0tag scheme