-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Closed
Labels
releaseRelease checklistRelease checklist
Description
Checklist
Build
-
Bump MockBot to latest Bot Framework SDK release(not needed for patch release) -
Bumpbotframework-directlinejsto0.15.5in PR #XXX - Update README.md with feature notes
- Bump to
4.17.0- Update
CHANGELOG.mdto mark specific changes in4.17.0 - Run
npm version --no-git-tag-version 4.17.0 - Merged into
main, the PR number is Bump to 4.17.0 #5171 - Commit is
f03d1f0 - Do not merge any other unrelated changes after this PR. Any other PR merged, will need to be re-tested
- Update
- Run official build pipeline manually, set "Generate_Prod_Version_Number" to
true- (This will not push to NPM or CDN)
- Pipeline name is
BotFramework-WebChat-Official - The build number is
388824and commit isf03d1f0
- Run
WebChat-release-testingpipeline and wait for complete- Release pipeline name is
Push-Release-Testing-to-GitHub-Pages - The release ID is
524
- Release pipeline name is
- 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
- There could be some for projects under
- Add manual tests to
WebChat-release-testingas needed
Test
The test should run against the build artifacts from Azure Pipelines.
- Manual testing on major browsers using
webchat-release-testing- Before starting testing, update all the browser version to latest
- Chrome 124.0.6367.119
- Edge 126.0.2566.0
- Firefox 125.0.3
-
IE11 (Windows 11 22H2 23531.1001) - macOS Safari 16.5 (18615.2.9.11.4)
- iOS Safari 17.4.1 (21E236)
- iPadOS Safari 17.4.1 (21E236)
- Android Chrome 124.0.6367.113
- Test specific fixes related to
4.17.0and previous releases- Citation
- Experimental Fluent UI
Note: when the bot is sending a long message (say,
markdown) via Direct Line Speech, the service may kill the connection. This is an issue on Direct Line Speech service and is not an issue about Web Chat.
Release
- Make sure you are on
mainorbranch, runqfegit statusto check -
git pull - Verify
/package.json,/package-lock.json, andCHANGELOG.mdhas a version of4.17.0 -
git log- Verify the latest commit is
f03d1f0
- Verify the latest commit is
-
git tag v4.17.0 -
git push -u upstream v4.17.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 - Subresource Integrity can be generated by
- From local:
for file in $(ls *.js); do echo $file $(cat $file | openssl dgst -sha384 -binary | openssl base64 -A); done - From CDN:
curl -H 'Accept-Encoding: gzip' https://cdn.botframework.com/botframework-webchat/4.17.0/webchat.js | gunzip - | openssl dgst -sha384 -binary | openssl base64 -A
- From local:
- Attach assets including 3 JS files,
stats.jsonand 5 tarballs- You can copy the artifacts from
webchat-release-testing/drops - Tarballs download from npmjs
curl -LO https://registry.npmjs.org/botframework-directlinespeech-sdk/-/botframework-directlinespeech-sdk-4.17.0.tgz curl -LO https://registry.npmjs.org/botframework-webchat/-/botframework-webchat-4.17.0.tgz curl -LO https://registry.npmjs.org/botframework-webchat-core/-/botframework-webchat-core-4.17.0.tgz curl -LO https://registry.npmjs.org/botframework-webchat-api/-/botframework-webchat-api-4.17.0.tgz curl -LO https://registry.npmjs.org/botframework-webchat-component/-/botframework-webchat-component-4.17.0.tgz
- You can copy the artifacts from
- Copy entries from
- Kick off release to NPM
- Release name is
[[PROD]]Push-WebChat-Official-to-npmjs - The build number is 388824 release number is
2and commit isf03d1f05 - Verify package content then click Resume
- Retain the release indefinitely
- Release name is
- Kick off release to CDN (cutoff at 10 PM PST, Sun-Wed only)
- Prepare the message for approval
-
If there are any breaking changes, explain in the email if it will affect any customers - Release name is
[[PROD]]Push-WebChat-Official-to-Prod-CDN-with-approval - The build number is
388824, release number is4and commit isf03d1f05 - Script build number is
320590(this is fixed)
-
- Send message to approvers
- Retain the build indefinitely
- Prepare the message for approval
Post-release verification - complete within 30 minutes after release to NPM
- Test using
webchat-release-testing- Clone https://github.com/corinagum/WebChat-release-testing/
-
01.create-react-app- Nuke
01.create-react-app/node_modules -
npm install -
npm install botframework-webchat@4.17.0(just install the bundle package) -
npm run build
- Nuke
- Others
- Using script tags from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.17.0, with subresource integrity
<script crossorigin="anonymous" integrity="sha384-" src="https://cdn.botframework.com/botframework-webchat/4.17.0/webchat.js" ></script> <script crossorigin="anonymous" integrity="sha384-" src="https://cdn.botframework.com/botframework-webchat/4.17.0/webchat-es5.js" ></script> <script crossorigin="anonymous" integrity="sha384-" src="https://cdn.botframework.com/botframework-webchat/4.17.0/webchat-minimal.js" ></script>
- Using script tags from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.17.0, with subresource integrity
-
npx serve(at repo root) - Go to http://localhost:5000/ to test
Notification to interested parties
- Update partner page on Adaptive Cards doc
- Notify related parties for the following fixes
- Azure Bot Services
- Omnichannel
- Copilot Studio
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_modulesfrom all foldergit clean -fdx
- Never delete
package-lock.json - If you mess it up, tableflip and redo
- In
component/package.json- Remove reference to
botframework-webchat-coreby hand-modifyingpackage.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
- Remove reference to
Applies to all releases
This list should be copied to versions in the future.
-
If on QFE branch, make sureCHANGELOG.mdand version number bump is cherry-picked tomain-
git checkout main -
git cherry-pick XXX(the commitish for bumping version number andCHANGELOG.md)
-
-
If needed, correct the date for 4.17.0 inCHANGELOG.mdin PR #XXXThere could be last minute fixes that could push the planned date later than the one inCHANGELOG.md
- Bump
package.jsonto4.17.1-0in PR Bump to 4.17.1-0 #5174- Run
npm version prepatch --no-git-tag-version
- Run
- Update
servicingPlan.jsonin PR Bump to 4.17.1-0 #5174- Add deprecation notes for previous versions
- Subresource integrity hash from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.17.0
-
Update all samples to use4.17.0in PR #XXXX- Some samples are pointing to GitHub Releases because the sample need new features from daily build
- Search "https://github.com/microsoft/BotFramework-WebChat/releases/download/"
- And replace with "https://cdn.botframework.com/botframework-webchat/latest/"
-
Clean up unnecessary branch on official repo -
Understand production-hitting vulnerabilities(We will be releasing4.17.1very soon)- Create a new folder
- Run
npm initwith default values - Run
npm install botframework-webchat@4.17.0 - Look at the result and see if there are any production-hitting vulnerabilities, investigate if needed
- No vulnerabilities found
- Bump in Copilot Studio
-
Update accessibility conformance report- For any accessibility bugs resolved, remove them from external notes
- Update version number and publish date
Applies to major/minor releases
Bump all dependencies to latest version
In PR #5174, 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/pinDependenciesto prevent bumping deliberately
- Pinning dependencies incur unpredictable technical debts, say, security issue found in the unsupported version, causing us slow to react
- Every time we bump, we need to go through the whole
pinDependencieslist
- Run
npm run bump - Run
npm audit fixto make sure everything is fixed -
List steps to verify bumpingmicrosoft-cognitiveservices-speech-sdk
Bump Docker image
The Docker image can be found at root
docker-compose.ymlandDockerfile*.
-
Docker container for headless Chrome in PR #XXXX
Metadata
Metadata
Assignees
Labels
releaseRelease checklistRelease checklist