-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Description
Checklist
Build
-
Bump MockBot to Bot Framework SDK release 4.15.3(not needed for patch release) -
Bump(no newer version)botframework-directlinejstox.y.z - Bump to
4.14.2- Update
CHANGELOG.mdto mark specific changes in4.14.2 - Run
npm version --no-git-tag-version 4.14.2 - Merged into
main, the PR number is Bump QFE to 4.14.2 and backporting some tests #4407 - Commit is
1200c38(Fixpackage-lock.jsonfor hardened CI pipeline #4408) - 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
320565and commit is1200c38
- Wait for
WebChat-release-testingpipeline to complete- Pipeline name is
Push-Release-Testing-to-GitHub-Pages - The release ID is
421
- 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 105.0.5195.102
- Edge 107.0.1375.0
- Firefox 104.0.1
- IE11 (Windows 11 22H2 22622.590)
- macOS Safari 15.5 (17613.2.7.1.8)
- iOS Safari 15.6.1
- Android Chrome 104.0.5112.97
- Test specific fixes related to
4.14.2and previous releases- Test uploading a file while in Polish
Release
- Verify on WebChat-release-testing
- Make sure you are on
qfe-4.14.1branch, rungit statusto check -
git pull - Verify
/package.json,/package-lock.json, andCHANGELOG.mdhas a version of4.14.2 -
git log- Verify the latest commit is
1200c38
- Verify the latest commit is
-
git tag v4.14.2 -
git push -u upstream v4.14.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- Subresource Integrity can be generated by
- From local:
cat webchat.js | openssl dgst -sha384 -binary | openssl base64 -A - From CDN:
curl -H 'Accept-Encoding: gzip' https://cdn.botframework.com/botframework-webchat/4.15.3/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.15.3.tgz curl -LO https://registry.npmjs.org/botframework-webchat/-/botframework-webchat-4.15.3.tgz curl -LO https://registry.npmjs.org/botframework-webchat-core/-/botframework-webchat-core-4.15.3.tgz curl -LO https://registry.npmjs.org/botframework-webchat-api/-/botframework-webchat-api-4.15.3.tgz curl -LO https://registry.npmjs.org/botframework-webchat-component/-/botframework-webchat-component-4.15.3.tgz
- You can copy the artifacts from
- Subresource Integrity can be generated by
- Kick off release to NPM
- Kick off release to CDN (cutoff at 2PM PST, Mon-Thu only)
- Prepare 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.14.2(just install the bundle package) -
npm run build
- Nuke
- Others
- Using script tags from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.14.2, with subresource integrity
<script crossorigin="anonymous" integrity="sha384-TX+6Xqq20HcCfn9vFBfivPrnGantvLj6bVoeZMiRt3TDf7QL0l3y0h5NfXPHeMYD" src="https://cdn.botframework.com/botframework-webchat/4.14.2/webchat.js" ></script> <script crossorigin="anonymous" integrity="sha384-rICoECir+m94sA3D9FN2nWP76JKfcGJA5uhCZ/nSM3JNYWtnqUk5mHCgVvgWE+if" src="https://cdn.botframework.com/botframework-webchat/4.14.2/webchat-es5.js" ></script> <script crossorigin="anonymous" integrity="sha384-FDtL64x1C0SfN3jynhpEExETYworgZHfADHx+04wRT4RGxeXQulwMv7u9s8gUkkZ" src="https://cdn.botframework.com/botframework-webchat/4.14.2/webchat-minimal.js" ></script>
- Using script tags from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.14.2, with subresource integrity
-
npx serve(at repo root) - Go to http://localhost:5000/ to test, including IE11
Notification to interested parties
-
Update partner page on Adaptive Cards doc - Notify related parties for the following fixes
- SDK team
- Omnichannel
- Pooja/Zhipeng
-
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 sure
CHANGELOG.mdand version number bump is cherry-picked tomain- We are backporting the fix, thus, we copied entries to
mainin PR Add changelog and servicing plan from QFE 4.14.2 #4410 -
git checkout main -
git cherry-pick XXX(the commitish for bumping version number andCHANGELOG.md)
- We are backporting the fix, thus, we copied entries to
-
If needed, correct the date for 4.15.3 inCHANGELOG.mdin PR #XXXThere could be last minute fixes that could push the planned date later than the one inCHANGELOG.md
-
Bumppackage.jsonto4.15.4-0in PR #XXXRunnpm version prepatch --no-git-tag-version
- Update
servicingPlan.jsonin PR Add changelog and servicing plan from QFE 4.14.2 #4410- Add deprecation notes for previous versions
- Subresource integrity hash from https://github.com/microsoft/BotFramework-WebChat/releases/tag/v4.15.3
-
Update all samples to use4.15.3in 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-
Create a new folder -
Runnpm initwith default values -
Runnpm install botframework-webchat@4.15.3`` -
Look at the result and see if there are any production-hitting vulnerabilities, investigate if needed- No vulnerabilities found
-
-
Bump in Power Virtual Agents
Applies to major/minor releases
Bump all dependencies to latest version
(Not needed for QFE)
In PR #4392, 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
Obstacles to bump npm
Check if the followings are still valid. We should bump to npm@latest (npm@8.15) as soon as possible.
As of writing, npm@7.19.1 (bundled by node@16) has issue on running postinstall script.
microsoft-cognitiveservices-speech-sdk@1.17.0 is peer-depends on @angular/common, which npm@7 will automatically install missing peer dependencies. Track the issue here.