Checklist
Build
Bump MockBot to Bot Framework SDK release 4.15.4 (not needed for patch release)
Bump botframework-directlinejs to x.y.z (no newer version)
Bump to 4.15.4
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 322037 and commit is 2348572
Wait for WebChat-release-testing pipeline to complete
Pipeline name is Push-Release-Testing-to-GitHub-Pages
The release ID is 425
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.4 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.4
git log
Verify the latest commit is 2348572
git tag v4.15.4
git push -u upstream v4.15.4
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
In PR #4423 , we are bumping most dependencies to latest version.
After bumping, if a package broke compatibility, we should investigate:
Upgrade our code to use the latest package if possible, otherwise;
Add it to package.json/skipBump to prevent bumping deliberately:
Skipping bump incur unpredictable technical debts, say, security issue found in the unsupported version, causing us slow to react
Plausible reasons (non-exhaustive):
Package is not ES5;
Package is ESM and requires the whole dependency chain to be upgraded, however, it is technically impossible (unrelated to cost).
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.
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.4(not needed for patch release)Bump(no newer version)botframework-directlinejstox.y.z4.15.4CHANGELOG.mdto mark specific changes in4.15.4npm version --no-git-tag-version 4.15.4main, the PR number is Bump to 4.15.4 #44162348572trueBotFramework-WebChat-daily322037and commit is2348572WebChat-release-testingpipeline to completePush-Release-Testing-to-GitHub-Pages425/packages/folder/samples/folder, as they are pointing to previous version of Web ChatWebChat-release-testingas neededTest
webchat-release-testing4.15.4and previous releasesRelease
mainorbranch, runqfegit statusto checkgit pull/package.json,/package-lock.json, andCHANGELOG.mdhas a version of4.15.4git log2348572git tag v4.15.4git push -u upstream v4.15.4CHANGELOG.mdcat webchat.js | openssl dgst -sha384 -binary | openssl base64 -Acurl -H 'Accept-Encoding: gzip' https://cdn.botframework.com/botframework-webchat/4.15.4/webchat.js | gunzip - | openssl dgst -sha384 -binary | openssl base64 -Astats.jsonand 5 tarballswebchat-release-testing/drops[[PROD]]Push-WebChat-to-npmjs42and commit is2348572If there are any breaking changes, explain in the email if it will affect any customers[[PROD]]Push-WebChat-to-Prod-CDN-with-approval322037, release number is46and commit is2348572320590(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 botframework-webchat@4.15.4(just install the bundle package)npm run buildnpx serve(at repo root)Notification to interested parties
Update root README.md with feature notes -- Note: PR will be combined with post-release checklist PRPost-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)If needed, correct the date for 4.15.4 inCHANGELOG.mdin PR #XXXThere could be last minute fixes that could push the planned date later than the one inCHANGELOG.mdpackage.jsonto4.15.5-0in PR [HIGH] Bump to 4.15.5-0 with most latest deps #4423npm version prepatch --no-git-tag-versionservicingPlan.jsonin PR Add 4.15.4 to servicing plan #4437Update all samples to use4.15.4in PR #XXXXnpm initwith default valuesnpm install botframework-webchat@4.15.4Applies to major/minor releases
Bump all dependencies to latest version
In PR #4423, we are bumping most dependencies to latest version.
npm run bumpnpm audit fixto make sure everything is fixedmicrosoft-cognitiveservices-speech-sdkUpdate 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-latestBump Docker image
Docker container for headless Chrome (#XXX)3.14.159-xxxtag scheme to a more sensible87.0tag scheme