Skip to content

Commit e7f5daf

Browse files
authored
Merge branch 'master' into dev/jwunderl/copilot-server-request
2 parents 4e827d1 + 0af27f1 commit e7f5daf

224 files changed

Lines changed: 9933 additions & 1748 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.vscode/launch.json

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,29 @@
219219
"sourceMaps": false,
220220
"outFiles": []
221221
},
222+
{
223+
"name": "pxt serve (core)",
224+
"type": "node",
225+
"request": "launch",
226+
"program": "${workspaceRoot}/built/pxt.js",
227+
"stopOnEntry": false,
228+
"args": [
229+
"serve",
230+
"--rebundle",
231+
"--noauth"
232+
],
233+
"cwd": "${workspaceRoot}",
234+
"runtimeExecutable": null,
235+
"runtimeArgs": [
236+
"--nolazy"
237+
],
238+
"env": {
239+
"NODE_ENV": "development"
240+
},
241+
"console": "integratedTerminal",
242+
"sourceMaps": false,
243+
"outFiles": []
244+
},
222245
{
223246
"name": "pxt serve (bedrock)",
224247
"type": "node",

.vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,6 @@
2727
"*.variables": "less",
2828
"*.jres": "json"
2929
},
30-
"git.ignoreLimitWarning": true
30+
"git.ignoreLimitWarning": true,
31+
"js/ts.tsdk.path": "node_modules/typescript/lib"
3132
}

ThirdPartyNotice

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -882,6 +882,7 @@ General Public License.
882882
864. @fortawesome/fontawesome-free 5.15.4 (https://www.npmjs.com/package/@fortawesome/fontawesome-free/v/5.15.4)
883883
865. @blockly/plugin-workspace-search 4.0.10 (https://www.npmjs.com/package/@blockly/plugin-workspace-search/v/4.0.10)
884884
866. @blockly/keyboard-navigation 1.0.0-beta.0 (https://www.npmjs.com/package/@blockly/keyboard-navigation/v/1.0.0-beta.0)
885+
867. Qix-/color-convert 5c106a633b5cd2de554d9c287ad31f9eeca7a271 (https://github.com/Qix-/color-convert)
885886

886887

887888

@@ -28361,14 +28362,14 @@ The copyright in this software is being made available under the BSD License, in
2836128362

2836228363
**Copyright (c) 2015, Dash Industry Forum.
2836328364
**All rights reserved.**
28364-
28365+
2836528366
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
2836628367
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2836728368
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
2836828369
* Neither the name of the Dash Industry Forum nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
2836928370

2837028371
**THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.**
28371-
28372+
2837228373
=========================================
2837328374
END OF dashjs 4.4.0 NOTICES AND INFORMATION
2837428375

@@ -28955,3 +28956,30 @@ END OF @blockly/plugin-workspace-search 4.0.10 NOTICES AND INFORMATION
2895528956
limitations under the License.
2895628957
=========================================
2895728958
END OF @blockly/keyboard-navigation 1.0.0-beta.0 NOTICES AND INFORMATION
28959+
28960+
28961+
%% Qix-/color-convert 5c106a633b5cd2de554d9c287ad31f9eeca7a271 NOTICES AND INFORMATION BEGIN HERE
28962+
=========================================
28963+
Copyright (c) 2011-2016 Heather Arthur <fayearthur@gmail.com>.
28964+
Copyright (c) 2016-2021 Josh Junon <josh@junon.me>.
28965+
28966+
Permission is hereby granted, free of charge, to any person obtaining
28967+
a copy of this software and associated documentation files (the
28968+
"Software"), to deal in the Software without restriction, including
28969+
without limitation the rights to use, copy, modify, merge, publish,
28970+
distribute, sublicense, and/or sell copies of the Software, and to
28971+
permit persons to whom the Software is furnished to do so, subject to
28972+
the following conditions:
28973+
28974+
The above copyright notice and this permission notice shall be
28975+
included in all copies or substantial portions of the Software.
28976+
28977+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
28978+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
28979+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
28980+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
28981+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28982+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28983+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28984+
=========================================
28985+
END OF Qix-/color-convert 5c106a633b5cd2de554d9c287ad31f9eeca7a271 NOTICES AND INFORMATION

cli/cli.ts

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ pxt.docs.requireDOMSanitizer = () => {
4141
const sanitizeHtml = require("sanitize-html");
4242
const defaults = sanitizeHtml.defaults || {};
4343
const baseAllowedAttrs = defaults.allowedAttributes || {};
44+
const allowedTags = defaults.allowedTags || [];
4445

4546
const mergeClassAttribute = (tag: string, ...otherAttributes: string[]) => {
4647
const existing: string[] = baseAllowedAttrs[tag] || [];
@@ -49,6 +50,7 @@ pxt.docs.requireDOMSanitizer = () => {
4950

5051
const options = {
5152
...defaults,
53+
allowedTags: [...allowedTags, "img"],
5254
allowedAttributes: {
5355
...baseAllowedAttrs,
5456
code: mergeClassAttribute("code"),
@@ -467,13 +469,38 @@ async function ciAsync(parsed?: commandParser.ParsedCommand) {
467469

468470
lintJSONInDirectory(path.resolve("."));
469471
lintJSONInDirectory(path.resolve("docs"));
472+
let pkg = readJson("package.json")
470473

471-
function npmPublishAsync() {
474+
async function npmPublishAsync() {
472475
if (!npmPublish) return Promise.resolve();
476+
477+
let latest: pxt.semver.Version;
478+
479+
try {
480+
const version = await nodeutil.npmLatestVersionAsync(pkg["name"]);
481+
latest = pxt.semver.parse(version);
482+
}
483+
catch (e) {
484+
// no latest tag
485+
}
486+
487+
let distTag: string;
488+
489+
if (latest) {
490+
const current = pxt.semver.parse(pkg["version"]);
491+
492+
if (pxt.semver.cmp(current, latest) < 0) {
493+
distTag = `stable${current.major}.${current.minor}`;
494+
}
495+
}
496+
497+
if (distTag) {
498+
return nodeutil.runNpmAsync("publish", "--tag", distTag);
499+
}
500+
473501
return nodeutil.runNpmAsync("publish");
474502
}
475503

476-
let pkg = readJson("package.json")
477504
if (pkg["name"] == "pxt-core") {
478505
pxt.log("pxt-core build");
479506

cli/nodeutil.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,16 @@ export function runNpmAsync(...args: string[]) {
114114
return runNpmAsyncWithCwd(".", ...args);
115115
}
116116

117+
export async function npmLatestVersionAsync(packageName: string) {
118+
const output = await spawnWithPipeAsync({
119+
cmd: addCmd("npm"),
120+
args: ["view", packageName, "dist-tags.latest"],
121+
cwd: ".",
122+
});
123+
124+
return output.toString("utf8").trim()
125+
}
126+
117127
export interface NpmRegistry {
118128
_id: string;
119129
_name: string;

common-docs/javascript/generics.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ function identity<T>(arg: T): T {
131131
return arg;
132132
}
133133

134-
let myIdentity: <U>(arg: U) => U = identity;
134+
let myIdentity: <V>(arg: V) => V = identity;
135135
```
136136

137137
We can also write the generic type as a call signature of an object literal type:

common-docs/share.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,16 @@ By default, all shared projects in MakeCode can be copied and edited. There is n
5656

5757
![Edit shared project button](/static/share/edit-shared-project.png)
5858

59+
## Asset Packs #asset-packs
60+
61+
Certain editors (such as [MakeCode Arcade](https://arcade.makecode.com)) can include resource files inside of projects. The resources, or _assets_, might contain byte respresentations of images, animations, sounds, tilemaps, etc. An **Asset Pack** is a resource only project where just the assets are shared and no code is loaded from the shared project.
62+
63+
If this feature is supported by your editor, you can set a project as an asset pack by going to the **Settings** (⚙️) menu and selecting 'Project Settings'. Enable the 'Import as asset pack' setting. Watch this video to see how it's done:
64+
65+
https://youtu.be/CjLYl5KJiSk
66+
67+
See the [Asset Packs](https://makecode.com/extensions/asset-packs) page to learn more.
68+
5969
## Report Abuse
6070

6171
All MakeCode shared projects pass through Microsoft standard scanning for security and safety compliance. In addition, the "Report Abuse" option is available on any shared project if you deem the contents of the project not appropriate (contains unsafe content or includes personally identifiable information). For these types of projects, the MakeCode Team will remove the project from our databases.

docfiles/offline-app-head.html

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -530,17 +530,15 @@
530530
let recommendedButton = null;
531531

532532
if (isMac) {
533-
if (isAppleSilicon) {
534-
recommendedButton = $("#download-macarm64");
535-
} else {
536-
recommendedButton = $("#download-mac64");
537-
}
533+
// Do not recommend a Mac binary because architecture detection is unreliable across browsers
534+
recommendedButton = null;
538535
} else if (isWindows) {
539-
if (false && isWindowsARM) {
540-
recommendedButton = $("#download-winarm64");
541-
} else {
542-
recommendedButton = $("#download-win64");
543-
}
536+
// if (false && isWindowsARM) {
537+
// recommendedButton = $("#download-winarm64");
538+
// } else {
539+
// recommendedButton = $("#download-win64");
540+
// }
541+
recommendedButton = null;
544542
}
545543

546544
// Mark the recommended download

docs/blog.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,21 @@
11
# Microsoft MakeCode Blog
22

3+
## [Summer 2026 – MakeCode Professional Development](/blog/csp/summer-pd-2026)
4+
5+
April 6th, 2026 by [Jaqster](https://github.com/jaqster)
6+
7+
Planning your summer schedule? Make sure to register for some of these FREE MakeCode Professional Development opportunities.
8+
9+
**[Continue reading this blog post](/blog/csp/summer-pd-2026)**
10+
11+
## [MakeCode Arcade 2026 Update](/blog/arcade/update-feb-2026)
12+
13+
February 13th, 2026 by [Jaqster](https://github.com/jaqster)
14+
15+
Today we are pleased to release our 2026 MakeCode Arcade updates!
16+
17+
**[Continue reading this blog post](/blog/arcade/update-feb-2026)**
18+
319
## [Interview with MakeCode Arcade Game Maker](/blog/arcade/code-ninjas)
420

521
December 19, 2025 by [Jaqster](https://github.com/jaqster)

docs/blog/SUMMARY.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Microsoft MakeCode Blog
22

33
* [Blog](/blog)
4+
* [Summer 2026 – MakeCode Professional Development](/blog/csp/summer-pd-2026)
5+
* [MakeCode Arcade 2026 Update](/blog/arcade/update-feb-2026)
46
* [Interview with MakeCode Arcade Game Maker](/blog/arcade/code-ninjas)
57
* [Computer Science Education Week 2025](/blog/csed-week/csed-week-2025)
68
* [MakeCode Minecraft 2025 Update](/blog/minecraft/2025-release)

0 commit comments

Comments
 (0)