-
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) - Bump
botframework-directlinejsto0.15.5in PR Bump to 4.15.10 #4955 - Bump to
4.16.0- Update
CHANGELOG.mdto mark specific changes in4.16.0 - Run
npm version --no-git-tag-version 4.16.0 - Merged into
main, the PR number is Bump to 4.15.10 #4955 and 4.16.0 and native chevron of accordion in citation should be hidden #4958 - Commit is
ab8ab69 - Do not merge any other unrelated changes after this PR. Any other PR merged, will need to be re-tested
- Update
- 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
377357and commit isab8ab69f
- Wait for
WebChat-release-testingpipeline to complete- Pipeline name is
Push-Release-Testing-to-GitHub-Pages - The release ID is
504
- 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 119.0.6045.160
- Edge 121.0.2228.0
- Firefox 119.0.1
-
IE11 (Windows 11 22H2 23531.1001) - macOS Safari 16.5 (18615.2.9.11.4)
- iOS Safari 17.1 (21B74)
- iPadOS Safari 16.6 (20G75)
- Android Chrome 119.0.6045.163
- Test specific fixes related to
4.16.0and previous releases- Citation
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.16.0 -
git log- Verify the latest commit is
ab8ab69
- Verify the latest commit is
-
git tag v4.16.0 -
git push -u upstream v4.16.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.16.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.16.0.tgz curl -LO https://registry.npmjs.org/botframework-webchat/-/botframework-webchat-4.16.0.tgz curl -LO https://registry.npmjs.org/botframework-webchat-core/-/botframework-webchat-core-4.16.0.tgz curl -LO https://registry.npmjs.org/botframework-webchat-api/-/botframework-webchat-api-4.16.0.tgz curl -LO https://registry.npmjs.org/botframework-webchat-component/-/botframework-webchat-component-4.16.0.tgz
- You can copy the artifacts from
- Copy entries from
- Kick off release to NPM
- Kick off release to CDN (cutoff at 10 PM PST, Sun-Wed only)
- Prepare the message for approval
- Send message to approvers
- Retain the build indefinitely
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.16.0(just install the bundle package) -
npm run build
- Nuke
- Others
- Using script tags from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.16.0, with subresource integrity
<script crossorigin="anonymous" integrity="sha384-4LcbsBbx9Pr+/7Hm0HxHOuhHMFlbf4ecmHUekoAnbBRiURTJx3HaaLuo7PrP1aBD" src="https://cdn.botframework.com/botframework-webchat/4.16.0/webchat.js" ></script> <script crossorigin="anonymous" integrity="sha384-fhdXAQj5PD+9CBeiZ3dGYjJ3mzH1DePD30cKtJKWzGxyioYiNYOaw5oRw7+AMg+e" src="https://cdn.botframework.com/botframework-webchat/4.16.0/webchat-es5.js" ></script> <script crossorigin="anonymous" integrity="sha384-7tv7NO7xJd/dCNFy3qBd+Nxqhbi2Zx+Voh6YuCr4BqwoIMRevb4O89giG8kshrCF" src="https://cdn.botframework.com/botframework-webchat/4.16.0/webchat-minimal.js" ></script>
- Using script tags from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.16.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
- Power Virtual Agents
-
Update root README.md with feature notes -- Note: PR will be combined with post-release checklist PR
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.16.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.16.1-0in PR Bump to 4.16.1-0 #4962- Run
npm version prepatch --no-git-tag-version
- Run
- Update
servicingPlan.jsonin PR Bump to 4.16.1-0 #4962- Add deprecation notes for previous versions
- Subresource integrity hash from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.16.0
-
Update all samples to use4.16.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
- Bump in Power Virtual Agents
- 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 #XXXX, 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/skipBumpto 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).
- Run
npm run bump - Run
npm audit fixto make sure everything is fixed - Test under IE11 to make sure all dependencies are working
- List steps to verify bumping
microsoft-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
- Bumped to Chrome 110 and Selenium Hub 4.8.1
Metadata
Metadata
Assignees
Labels
releaseRelease checklistRelease checklist
