Skip to content

Commit df2e632

Browse files
authored
fix(vsc): consolidate WHATISNEW and CHANGELOG (#9275)
* fix: remove whatisnew in release page * fix: consolidate whatisnew and changelog files * refactor: remove unused codes * fix: ut coverage * fix: add ut coverage
1 parent 3dc95ab commit df2e632

File tree

9 files changed

+36
-525
lines changed

9 files changed

+36
-525
lines changed

CHANGELOG.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
## Changelogs
22
|Product|Docuements|README|
33
|----|----|----|
4-
|[ms-teams-vscode-extension](https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension)|[WHATISNEW](https://github.com/OfficeDev/TeamsFx/blob/main/packages/vscode-extension/WHATISNEW.md) [CHANGELOG](https://github.com/OfficeDev/TeamsFx/blob/main/packages/vscode-extension/CHANGELOG.md) |[README](https://github.com/OfficeDev/TeamsFx/blob/main/packages/vscode-extension/README.md)|
4+
|[ms-teams-vscode-extension](https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension)|[CHANGELOG](https://github.com/OfficeDev/TeamsFx/blob/main/packages/vscode-extension/CHANGELOG.md) |[README](https://github.com/OfficeDev/TeamsFx/blob/main/packages/vscode-extension/README.md)|
55
|[@microsoft/teamsfx](https://www.npmjs.com/package/@microsoft/teamsfx)| [CHANGELOG](https://github.com/OfficeDev/TeamsFx/blob/main/packages/sdk/CHANGELOG.md)|[README](https://github.com/OfficeDev/TeamsFx/blob/main/packages/sdk/README.md)|
66
|[@microsoft/teamsfx-react](https://www.npmjs.com/package/@microsoft/teamsfx-react)|[CHANGELOG](https://github.com/OfficeDev/TeamsFx/blob/main/packages/sdk-react/CHANGELOG.md)|[README](https://github.com/OfficeDev/TeamsFx/blob/main/packages/sdk-react/README.md)|
77
|[Microsoft.TeamsFx](https://www.nuget.org/packages/Microsoft.TeamsFx)|[CHANGELOG](https://github.com/OfficeDev/TeamsFx/blob/main/packages/dotnet-sdk/CHANGELOG.md)|[README](https://github.com/OfficeDev/TeamsFx/blob/main/packages/dotnet-sdk/README.md)|

packages/vscode-extension/WHATISNEW.md

-430
This file was deleted.

packages/vscode-extension/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1174,7 +1174,7 @@
11741174
"lint:staged": "lint-staged",
11751175
"vscode:prepublish": "rimraf out && npm run package",
11761176
"copy-files": "copyfiles -u 1 src/**/*.html src/**/*.css out/src/",
1177-
"copy-md-files": "copyfiles WHATISNEW.md out/resource",
1177+
"copy-md-files": "copyfiles CHANGELOG.md out/resource",
11781178
"compile": "tsc -p ./ && npm run copy-files && npm run copy-md-files",
11791179
"build": "rimraf out && webpack --mode development --config ./webpack.config.js && npm run compile",
11801180
"build-failpoint": "rimraf out && npx ttsc -p ./",

packages/vscode-extension/package.nls.json

+2-6
Original file line numberDiff line numberDiff line change
@@ -331,15 +331,11 @@
331331
"teamstoolkit.guides.dashboardApp.label": "Embed a Dashboard Canvas in Teams",
332332
"teamstoolkit.guides.sendNotification.detail": "Send notifications to Teams from your web services with Bot or incoming webhook.",
333333
"teamstoolkit.guides.sendNotification.label": "Send Notifications to Teams",
334-
"teamstoolkit.upgrade.banner": "Teams Toolkit has been updated to v%s — check out what's new!",
334+
"teamstoolkit.upgrade.banner": "Teams Toolkit has been updated to v%s — check out changelog!",
335335
"teamstoolkit.publishInDevPortal.selectFile.title": "Select Your Teams App Package",
336336
"teamstoolkit.publishInDevPortal.selectFile.placeholder": "Select your Teams app package or you could build one from \"Zip Teams app package\"",
337337
"teamstoolkit.publishInDevPortal.confirmFile.placeholder": "Confirm zip file is correctly selected",
338-
"teamstoolkit.upgrade.whatIsNewTitle": "What's New",
339-
"teamstoolkit.upgradeToMultiEnvAndBicep.learnMoreLink": "https://aka.ms/teamsfx-existing-aad-doc",
340-
"teamstoolkit.upgradeToMultiEnvAndBicep.learnMoreText": "Learn More",
341-
"teamstoolkit.upgradeToMultiEnvAndBicep.outputMsg": "Please set \"AAD_APP_CLIENT_SECRET\" = \"%s\" in your system environment variable. Read this wiki(%s) to for more details.",
342-
"teamstoolkit.upgradeToMultiEnvAndBicep.showMsg": "Please set \"AAD_APP_CLIENT_SECRET\" = \"%s\" in your system environment variable.\\nYou can also click Learn More for more details.",
338+
"teamstoolkit.upgrade.changelog": "Changelog",
343339
"teamstoolkit.webview.samplePageTitle": "Samples",
344340
"teamstoolkit.webview.surveyPageTitle": "Teams Toolkit Survey",
345341
"teamstoolkit.webview.accountHelp": "Account Help",

packages/vscode-extension/src/extension.ts

-1
Original file line numberDiff line numberDiff line change
@@ -841,7 +841,6 @@ async function runBackgroundAsyncTasks(
841841
ExtTelemetry.settingsVersion = await handlers.getSettingsVersion();
842842

843843
await ExtTelemetry.sendCachedTelemetryEventsAsync();
844-
await handlers.postUpgrade();
845844
const upgrade = new ExtensionUpgrade(context);
846845
upgrade.showChangeLog();
847846

packages/vscode-extension/src/handlers.ts

-68
Original file line numberDiff line numberDiff line change
@@ -1294,74 +1294,6 @@ export async function openReadMeHandler(args: any[]) {
12941294
}
12951295
}
12961296

1297-
export async function postUpgrade(): Promise<void> {
1298-
await openUpgradeChangeLogsHandler();
1299-
await popupAfterUpgrade();
1300-
}
1301-
1302-
async function popupAfterUpgrade(): Promise<void> {
1303-
const aadClientSecretFlag = "NeedToSetAADClientSecretEnv";
1304-
const aadClientSecret = await globalStateGet(aadClientSecretFlag, "");
1305-
if (
1306-
aadClientSecret !== "" &&
1307-
workspace.workspaceFolders &&
1308-
workspace.workspaceFolders.length > 0
1309-
) {
1310-
try {
1311-
const learnMoreLink = localize("teamstoolkit.upgradeToMultiEnvAndBicep.learnMoreLink");
1312-
const learnMoreText = localize("teamstoolkit.upgradeToMultiEnvAndBicep.learnMoreText");
1313-
const option = { modal: false };
1314-
const outputMsg = util.format(
1315-
localize("teamstoolkit.upgradeToMultiEnvAndBicep.outputMsg"),
1316-
aadClientSecret,
1317-
learnMoreLink
1318-
);
1319-
const showMsg = util.format(
1320-
localize("teamstoolkit.upgradeToMultiEnvAndBicep.showMsg"),
1321-
aadClientSecret
1322-
);
1323-
VsCodeLogInstance.warning(outputMsg);
1324-
window.showWarningMessage(showMsg, option, learnMoreText).then((result) => {
1325-
if (result === learnMoreText) {
1326-
return env.openExternal(Uri.parse(learnMoreLink));
1327-
}
1328-
});
1329-
} finally {
1330-
await globalStateUpdate(aadClientSecretFlag, "");
1331-
}
1332-
}
1333-
}
1334-
1335-
async function openUpgradeChangeLogsHandler() {
1336-
const openUpgradeChangelogsFlag = "openUpgradeChangelogs";
1337-
if (
1338-
(await globalStateGet(openUpgradeChangelogsFlag, false)) &&
1339-
workspace.workspaceFolders &&
1340-
workspace.workspaceFolders.length > 0
1341-
) {
1342-
try {
1343-
await globalStateUpdate(openUpgradeChangelogsFlag, false);
1344-
1345-
const workspacePath: string = workspace.workspaceFolders[0].uri.fsPath;
1346-
const backupName = ".backup";
1347-
const changeLogsName = "upgrade-change-logs.md";
1348-
const changeLogsPath: string = (await fs.pathExists(
1349-
path.join(workspacePath, backupName, changeLogsName)
1350-
))
1351-
? path.join(workspacePath, backupName, changeLogsName)
1352-
: path.join(workspacePath, `.teamsfx${backupName}`, changeLogsName);
1353-
const uri = Uri.file(changeLogsPath);
1354-
1355-
workspace.openTextDocument(uri).then(() => {
1356-
const PreviewMarkdownCommand = "markdown.showPreview";
1357-
commands.executeCommand(PreviewMarkdownCommand, uri);
1358-
});
1359-
} catch (err) {
1360-
// do nothing
1361-
}
1362-
}
1363-
}
1364-
13651297
async function openSampleReadmeHandler(args?: any) {
13661298
if (workspace.workspaceFolders && workspace.workspaceFolders.length > 0) {
13671299
const workspaceFolder = workspace.workspaceFolders[0];

packages/vscode-extension/src/utils/upgrade.ts

+5-5
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ export class ExtensionUpgrade {
3535
ExtTelemetry.sendTelemetryEvent(TelemetryEvent.ShowWhatIsNewNotification);
3636
this.context.globalState.update(SyncedState.Version, teamsToolkitVersion);
3737

38-
const whatIsNew = {
39-
title: localize("teamstoolkit.upgrade.whatIsNewTitle"),
38+
const changelog = {
39+
title: localize("teamstoolkit.upgrade.changelog"),
4040
run: async (): Promise<void> => {
41-
const uri = vscode.Uri.file(`${folder.getResourceFolder()}/WHATISNEW.md`);
41+
const uri = vscode.Uri.file(`${folder.getResourceFolder()}/CHANGELOG.md`);
4242
vscode.workspace.openTextDocument(uri).then(() => {
4343
const PreviewMarkdownCommand = "markdown.showPreview";
4444
vscode.commands.executeCommand(PreviewMarkdownCommand, uri);
@@ -49,10 +49,10 @@ export class ExtensionUpgrade {
4949
vscode.window
5050
.showInformationMessage(
5151
util.format(localize("teamstoolkit.upgrade.banner"), teamsToolkitVersion),
52-
whatIsNew
52+
changelog
5353
)
5454
.then((selection) => {
55-
if (selection?.title === localize("teamstoolkit.upgrade.whatIsNewTitle")) {
55+
if (selection?.title === localize("teamstoolkit.upgrade.changelog")) {
5656
ExtTelemetry.sendTelemetryEvent(TelemetryEvent.ShowWhatIsNewContext);
5757
selection.run();
5858
}

packages/vscode-extension/test/extension/utils/upgrade.test.ts

+25-11
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,21 @@ const reporterSpy = spy.interface({
2424
measurements?: { [p: string]: number }
2525
): void {},
2626
});
27-
describe("upgrade show what's new log", () => {
27+
describe("upgrade show changelog", () => {
2828
const sandbox = sinon.createSandbox();
2929
let context: vscode.ExtensionContext;
30+
let telemetryStub: sinon.SinonStub;
3031
const mockGlobalState: vscode.Memento = {
3132
keys: gloablStateKeys,
3233
get: globalStateGet,
3334
update: globalStateUpdate,
3435
};
35-
before(() => {
36-
chai.util.addProperty(ExtTelemetry, "reporter", () => reporterSpy);
37-
});
3836
beforeEach(() => {
3937
context = {
4038
subscriptions: [],
4139
globalState: mockGlobalState,
4240
} as unknown as vscode.ExtensionContext;
4341
sandbox.stub(versionUtil, "getExtensionId").returns("");
44-
sandbox.stub(vscode.window, "showInformationMessage").resolves();
4542
sandbox.stub(vscode.extensions, "getExtension").returns({
4643
packageJSON: { version: "5.0.0" },
4744
id: "",
@@ -54,26 +51,43 @@ describe("upgrade show what's new log", () => {
5451
return Promise.resolve();
5552
},
5653
});
54+
telemetryStub = sandbox.stub(ExtTelemetry, "sendTelemetryEvent");
5755
});
5856
afterEach(() => {
5957
sandbox.restore();
6058
});
61-
it("show what's new notification happy path", async () => {
59+
it("show changelog notification happy path", async () => {
6260
const contextSpy = sandbox.spy(context.globalState, "update");
6361
sandbox.stub(context.globalState, "get").returns("4.99.0");
62+
let title = "";
63+
sandbox
64+
.stub(vscode.window, "showInformationMessage")
65+
.callsFake((_message: string, option: any, ...items: vscode.MessageItem[]) => {
66+
title = option.title;
67+
return Promise.resolve(option);
68+
});
6469
const instance = new ExtensionUpgrade(context);
6570
await instance.showChangeLog();
71+
chai.assert(title === "Changelog");
6672
chai.assert(contextSpy.callCount == 2);
67-
chai
68-
.expect(reporterSpy.sendTelemetryEvent)
69-
.to.have.been.called.with("show-what-is-new-notification");
73+
chai.assert(telemetryStub.calledWith("show-what-is-new-notification"));
7074
});
71-
it("should not show whate's new log when version is not changed", async () => {
75+
it("should not show changelog if button is not clicked", async () => {
76+
const contextSpy = sandbox.spy(context.globalState, "update");
77+
sandbox.stub(context.globalState, "get").returns("4.99.0");
78+
sandbox.stub(vscode.window, "showInformationMessage").resolves(undefined);
79+
const instance = new ExtensionUpgrade(context);
80+
await instance.showChangeLog();
81+
chai.assert(contextSpy.callCount == 2);
82+
chai.assert(telemetryStub.calledOnce);
83+
});
84+
it("should not show changelog when version is not changed", async () => {
7285
const contextSpy = sandbox.spy(context.globalState, "update");
7386
sandbox.stub(context.globalState, "get").returns("5.0.0");
87+
sandbox.stub(vscode.window, "showInformationMessage").resolves();
7488
const instance = new ExtensionUpgrade(context);
7589
await instance.showChangeLog();
7690
sinon.assert.notCalled(contextSpy);
77-
chai.expect(reporterSpy.sendTelemetryEvent).to.not.have.been.called;
91+
chai.assert(telemetryStub.notCalled);
7892
});
7993
});

packages/vscode-extension/webpack.config.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ const config = {
101101
to: "../templates/",
102102
},
103103
{
104-
from: "./WHATISNEW.md",
105-
to: "../resource/WHATISNEW.md",
104+
from: "./CHANGELOG.md",
105+
to: "../resource/CHANGELOG.md",
106106
},
107107
{
108108
from: "./node_modules/@vscode/codicons/dist/codicon.css",

0 commit comments

Comments
 (0)