Checklist
Build
Bump MockBot to Bot Framework SDK release 4.15.0
Bump botframework-directlinejs to 0.15.1
Bump to 4.15.0
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 294404 and commit is 49cfdc12
Wait for WebChat-release-testing pipeline to complete
Pipeline name is Push-Release-Testing-to-GitHub-Pages
The release ID is 321
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.0 and previous releases
New transcript navigation
New keyboard help screen
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.0
git log
Verify the latest commit is 49cfdc12
git tag v4.15.0
git push -u upstream v4.15.0
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
Release name is [[PROD]]Push-WebChat-to-Prod-CDN-with-approval
The build number is 294404 , release number is 41 and commit is 49cfdc12
Script build number is 131156 (this is fixed)
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.
The PR is https://github.com/microsoft/BotFramework-WebChat/pull/XXX
Applies to major/minor releases
Bump all dependencies to latest version
On each package.json under root and /packages/:
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 .
Bump Docker image
The Docker image can be found at root docker-compose.yml and Dockerfile*.
Checklist
Build
botframework-directlinejsto0.15.14.15.0CHANGELOG.mdto mark specific changes in4.15.04.15.0, add breaking changes:import 'core-js/features/map'to their polyfill list if they support IE11 with NPM installnpm version --no-git-tag-version 4.15.0master, the PR number is Bump to production version 4.15.0 #419349cfdc1trueBotFramework-WebChat-daily294404and commit is49cfdc12WebChat-release-testingpipeline to completePush-Release-Testing-to-GitHub-Pages321/packages/folder/samples/folder, as they are pointing to previous version of Web ChatWebChat-release-testingas neededTest
webchat-release-testing4.15.0and previous releasesRelease
mainorbranch, runqfegit statusto checkgit pull/package.json,/package-lock.json, andCHANGELOG.mdhas a version of4.15.0git log49cfdc12git tag v4.15.0git push -u upstream v4.15.0CHANGELOG.mdcat webchat.js | openssl dgst -sha384 -binary | openssl base64 -Acurl -H 'Accept-Encoding: gzip' https://cdn.botframework.com/botframework-webchat/4.15.0/webchat.js | gunzip - | openssl dgst -sha384 -binary | openssl base64 -Astats.jsonand 5 tarballswebchat-release-testing/drops[[PROD]]Push-WebChat-to-npmjs37and commit is49cfdc12[[PROD]]Push-WebChat-to-Prod-CDN-with-approval294404, release number is41and commit is49cfdc12131156(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 tomastergit checkout mastergit cherry-pick XXX(the commitish for bumping version number andCHANGELOG.md)Correct the date for 4.15.0 inCHANGELOG.mdin PR #XXXCHANGELOG.mdpackage.jsonto4.15.1-0in PR #XXXnpm version prepatch --no-git-tag-versionservicingPlan.jsonin PR #XXX4.15.0in PR #XXXnpm initwith default valuesnpm install [email protected]The PR is https://github.com/microsoft/BotFramework-WebChat/pull/XXX
Applies to major/minor releases
Bump all dependencies to latest version
On each
package.jsonunder root and/packages/:All NPM packages (@babel/*,jest,lerna,typescript,webpack, etc) in PR #XXXreact,react-dom,redux,redux-saga,@types/reactrxjs@5onplaygroundmicrosoft-cognitiveservices-speech-sdkadaptivecardsexpect@25undertest/harnessgraceful-fs)Runnpm audit fixto make sure everything is fixedTest under IE11 to make sure all dependencies are workingList steps to verify bumpingmicrosoft-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.Bump Docker image
Docker container for headless Chrome (#XXX)3.14.159-xxxtag scheme to a more sensible87.0tag scheme