Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
242 commits
Select commit Hold shift + click to select a range
2dddf6b
Bumping pxt-core minor version to 12.3.0
abchatra Feb 9, 2026
fc11e01
[pxt-cli] bump version to v12.3.1 (#11098)
abchatra Feb 9, 2026
3a52f5c
use stable dist tag when publishing (#11012) (#11099)
riknoll Feb 10, 2026
8e4569c
fix render of youtube links and images in docs pages (#11105)
riknoll Feb 12, 2026
7c016ca
don't lose description when opening thumbnail recorder (#11109)
riknoll Feb 12, 2026
796b181
Arcade Update 2026 blog post (#11104)
ganicke Feb 13, 2026
8678494
put imported tiles into a custom tilemap gallery (#11112)
riknoll Feb 13, 2026
cb23e4b
allow users to delete project descriptions (#11113)
riknoll Feb 13, 2026
cd39847
fix font for animation icon in animation field editor (#11114)
riknoll Feb 14, 2026
4266f5e
copilot generated: add media queries for print view (#11110)
srietkerk Feb 14, 2026
a935cf7
fix tile gallery not showing up when editing tile (#11115)
riknoll Feb 17, 2026
86d8e6d
prevent debugger toolbox from scrolling horizontally (#11120)
riknoll Feb 17, 2026
d533ca8
Fix blockly dropdown scroll and media not being copied properly (#11119)
riknoll Feb 17, 2026
3a0b95b
keep the error list collapsed if collapsed by user (#11121)
riknoll Feb 17, 2026
ca4c449
add monkey patch workaround for blockly focus issue when deleting blo…
riknoll Feb 18, 2026
8593270
bring back the old mixer play instructions (#11123)
riknoll Feb 18, 2026
e3d0868
fix missing gallery, don't import gallery tiles into my tiles, fix nu…
riknoll Feb 18, 2026
2b8a88c
Fix some goofs in the latest Arcade blog post (#11128)
ganicke Feb 19, 2026
95420b1
fix is gallery asset check (#11130)
riknoll Feb 19, 2026
20ee1b4
prevent temp asset patch from duplicating assets (#11131)
riknoll Feb 23, 2026
0d40dfa
tweak focus on dispose logic to work for all blocks (#11140)
riknoll Feb 23, 2026
e039985
fix memory leak of audio sources (#11139)
riknoll Feb 23, 2026
3da4585
fix debugger icon background color (#11142)
riknoll Feb 24, 2026
4cf8433
remove file size filter for file drag/drop handler (#11141)
riknoll Feb 24, 2026
0f4e6e8
remove transparency from asset pack gallery and allow multiple catego…
riknoll Feb 24, 2026
42acc13
fix animation preview not stopping in non chromium browsers (#11143)
riknoll Feb 24, 2026
cd88750
Asset pack doc page (#11129)
ganicke Feb 27, 2026
45da5f7
fix bug when disposing animation block (#11159)
riknoll Mar 2, 2026
89f6db3
fix null pointer check again (#11162)
riknoll Mar 2, 2026
b8bfe15
handle starting and ending whitespace in song regex (#11158)
riknoll Mar 3, 2026
1307e52
Restore focus to menu button after connection / download actions (#11…
microbit-robert Mar 4, 2026
cbbd6d2
Fix repeated screen reader output for input label (#11133)
microbit-robert Mar 4, 2026
2d2a52b
Communicate slider range to screen reader users (#11150)
microbit-robert Mar 4, 2026
a86065b
Use paragraphs in connection dialog to improve screen reader output (…
microbit-robert Mar 4, 2026
50b567d
Improve screen reader behaviour for area overlay (#11152)
microbit-robert Mar 4, 2026
b014e4c
add 'lao' to localized names list (#11173)
ganicke Mar 9, 2026
499987c
[pxt-cli] bump version to v12.3.2 (#11176)
abchatra Mar 9, 2026
b934c7c
Fix report abuse in electron app (#11178)
jwunderl Mar 9, 2026
d59d9da
fix share homescreen content in electron (#11181)
jwunderl Mar 9, 2026
e823aa9
disable architecture detection for offline app page (#11183)
jwunderl Mar 10, 2026
d93b4e7
Select text input when activating text dropdown field (#11174)
microbit-robert Mar 11, 2026
36e26f8
Fix iframe reloadEditor no-op once fragment is on the URL (#11184)
microbit-matt-hillsdon Mar 11, 2026
594c1c8
Use an actual percentage for progress bar when flashing (#11186)
microbit-robert Mar 11, 2026
8e78d38
Improve screen reader experience for field_note (#11187)
microbit-robert Mar 11, 2026
1711b1a
Add keyboardcontrols=1 flag to enable testing "on by default" (#11185)
microbit-matt-hillsdon Mar 12, 2026
aca481d
[pxt-cli] bump version to v12.3.3 (#11193)
abchatra Mar 16, 2026
da2e30e
collapse error pane by default (#11199)
riknoll Mar 18, 2026
8c30cda
disable blockly orphan connection logic (#11201)
riknoll Mar 19, 2026
d9b24ca
Keyboard controls events: remove suffix now we added a dimension (#11…
microbit-matt-hillsdon Mar 19, 2026
50486a9
Fix race condition between simulator init and project loading (#11196)
microbit-matt-hillsdon Mar 19, 2026
f8e37e4
importing github project in offline app (#11208)
jwunderl Mar 23, 2026
6306613
[pxt-cli] bump version to v12.3.4 (#11228)
abchatra Mar 30, 2026
89561b0
Fixes for dropdown menu accessibility tree (#11232)
microbit-robert Apr 1, 2026
7fc26d4
Prevent "Enter" from immediately opening project when expanding carou…
microbit-robert Apr 1, 2026
4d4719b
Hide theme preview images from screen readers (#11234)
microbit-robert Apr 2, 2026
f9aceb3
Add ariaDisabled prop to button (#11236)
microbit-robert Apr 2, 2026
5c0d7d1
only use new spatial audio if new apis are available (#11235)
srietkerk Apr 2, 2026
400e42f
[pxt-cli] bump version to v12.3.5 (#11244)
riknoll Apr 2, 2026
9298c79
hide modal siblings from screen reader (#11247)
riknoll Apr 3, 2026
ee23f72
Summer PD blog post (#11248)
Jaqster Apr 3, 2026
51f62fd
modify isFocusable code to handle natively focusable elements, disabl…
riknoll Apr 6, 2026
6a98ff3
Minor edits from AlexK (#11249)
Jaqster Apr 6, 2026
2533472
add setting to use local typescript sdk (#11250)
riknoll Apr 6, 2026
69eb73b
fix escaping of xml code snippets (#11253)
riknoll Apr 7, 2026
3d2c9d1
port over melody parsing from pxt-microbit (#11252)
riknoll Apr 7, 2026
382c530
fix play tone sound (#11256)
riknoll Apr 7, 2026
b3c0053
only emit python annotated assigns when definition (#11257)
riknoll Apr 8, 2026
1c7b2c7
include special icons for the monaco flyout (#11251)
srietkerk Apr 9, 2026
66bf2eb
add codecard embellishments to table view in my projects (#11264)
riknoll Apr 13, 2026
c9e96f9
[pxt-cli] bump version to v12.3.6 (#11266)
abchatra Apr 15, 2026
e30224a
Fixing trademarks link (#11263)
abchatra Apr 15, 2026
4cc8833
indicate which provider last successfully signed in (#11274)
jwunderl Apr 17, 2026
1e470cf
update label for card action buttons (#11260)
srietkerk Apr 17, 2026
a07389b
increase immersive reader button margin on tutorials (#11259)
srietkerk Apr 17, 2026
7d7eae9
[pxt-cli] bump version to v12.3.7 (#11278)
abchatra Apr 20, 2026
35c66fb
remove ancient patch floating blocks code (#11281)
riknoll Apr 23, 2026
bf996de
alternate piano roll song editor (#11282)
riknoll Apr 23, 2026
e9a0a65
Rename type parameter in Generics example (#11283)
ganicke Apr 23, 2026
ed81728
[pxt-cli] bump version to v12.3.8 (#11287)
abchatra Apr 23, 2026
a158a24
Homescreen search (#11262)
jwunderl Apr 28, 2026
ce6f136
Upgrade home page settings dropdown (#11276)
microbit-robert Apr 29, 2026
a873e18
Slider keyboard controls for SoundEffect field editor (#11277)
microbit-robert Apr 29, 2026
4478d5f
Ensure that extension card button and links work with screen reader (…
microbit-robert Apr 29, 2026
73315c5
Fix snapshot/renderblocks for disabled blocks (#11272)
microbit-matt-hillsdon Apr 29, 2026
c6f7282
add velocity editor and asset controls to piano roll (#11288)
riknoll Apr 29, 2026
fee3836
[pxt-cli] bump version to v12.3.9 (#11289)
abchatra Apr 30, 2026
0d72814
Improve toolbox behaviour for keyboard and screen reader users (#11189)
microbit-robert Apr 30, 2026
0c5565a
Improve the simulator live region (#11275)
microbit-robert May 4, 2026
26cf9d3
add a pxt.json flag for disabling version history (#11291)
riknoll May 6, 2026
2f66eec
fix localization of toolbox subcategories and groups for static packa…
riknoll May 6, 2026
f76f5fc
Update docs.md (#11295)
May 6, 2026
11c03ac
add a new color picker block (#11292)
riknoll May 7, 2026
043c06e
extend matrix field to support editing sprites (#11296)
riknoll May 7, 2026
0af27f1
[pxt-cli] bump version to v12.3.10 (#11298)
abchatra May 8, 2026
89186c9
propagate a query parameter for ai server changes (#11070)
jwunderl May 12, 2026
0dd44a4
Add combobox role to field_textdropdown (#11302)
microbit-robert May 12, 2026
e8d486a
Align GitHub project cards in Search results (#11304)
Copilot May 14, 2026
3bb63de
fix disabled blocks check for persisting disabled blocks after decomp…
riknoll May 14, 2026
36e2f00
give support for svg image files in blockly flyout (#11309)
srietkerk May 14, 2026
719e235
add high contrast override for ch-added class (#11306)
srietkerk May 14, 2026
47f6458
Monaco: fix IntelliSense contrast for dark theme (#11308)
srietkerk May 14, 2026
8baa504
hide gridpicker tooltip when there are no image items present (#11312)
riknoll May 14, 2026
e5bc56a
focus expand button on item click in menudropdown (#11313)
riknoll May 14, 2026
22c6dc4
[pxt-cli] bump version to v12.3.11 (#11314)
abchatra May 15, 2026
98f4dfa
fixes for example: hash, share button (#11195)
jwunderl May 15, 2026
29b6f5e
homescreen style and keyboard nav fixes (#11311)
jwunderl May 15, 2026
4814e30
add apptarget flag for blockly keyboard controls default (#11316)
riknoll May 15, 2026
1aa8c6c
[pxt-cli] bump version to v12.3.12 (#11319)
abchatra May 17, 2026
55a2aa1
Potpourri home screen fixes (#11322)
jwunderl May 19, 2026
c390886
decompile shims for primitive types correctly and include minmax labe…
riknoll May 20, 2026
327a403
Add screen reader support for the melody field editor (#11301)
microbit-robert May 20, 2026
662c175
Do not normalize reponame for github pages link (#11317)
srietkerk May 20, 2026
9987e25
Show Share button border in high contrast detail views (#11324)
Copilot May 21, 2026
4267579
few more mobile fixes for homescreen (#11327)
jwunderl May 21, 2026
6663559
Upgrade Blockly to v13.0.0-beta.5 (#11321)
microbit-matt-hillsdon May 21, 2026
0c185c8
[pxt-cli] bump version to v12.3.13 (#11328)
abchatra May 22, 2026
d6ab476
detailview action cards mobile/ipad responsiveness (#11326)
jwunderl May 22, 2026
36760f3
remove arm and ie special cases (#11329)
jwunderl May 26, 2026
097efdc
[pxt-cli] bump version to v12.3.14 (#11338)
abchatra May 29, 2026
a2eabbe
Fix interface table hash-multiplier selection, and grow the multiplie…
humanapp May 29, 2026
b261a03
Add thumb fast paths for switch equality and array length (#11337)
humanapp May 29, 2026
3c3dea3
Hide my assets in editors that don't have them enabled and one other …
riknoll Jun 2, 2026
899331e
fix field slider text color in dark theme and high contrast (#11345)
riknoll Jun 3, 2026
0b97fca
Fix the black leds in the led matrix field (#11344)
riknoll Jun 3, 2026
e4068ee
add more options to piano roll (#11343)
riknoll Jun 3, 2026
d1cfe00
[pxt-cli] bump version to v12.3.15 (#11350)
abchatra Jun 4, 2026
bbaea21
Ipad toolbox bug fixes (#11333)
srietkerk Jun 4, 2026
4bd77ba
prevent infinite loop when rendering very short gate lengths (#11352)
riknoll Jun 5, 2026
12643b6
Blockly v13 beta 8 upgrade (#11347)
microbit-matt-hillsdon Jun 5, 2026
38d016a
Fix to return focus properly if the dropdown menu is used (#11353)
microbit-robert Jun 5, 2026
75bb30c
[pxt-cli] bump version to v12.3.16 (#11354)
abchatra Jun 5, 2026
7f6e632
parse out param screen reader labels from block def for translation (…
jwunderl Jun 5, 2026
3c34baf
make sure icon images work in monaco too (#11348)
srietkerk Jun 5, 2026
1eab8d5
Add single letter shortcut to download program (#11357)
microbit-robert Jun 8, 2026
486cfe0
Ensure that capslock does not prevent area menu from opening (#11358)
microbit-robert Jun 8, 2026
2d0e665
Use FlyoutButton API to tidy code (#11359)
microbit-robert Jun 8, 2026
ed197c8
Fix iPad toolbox flyout toggling on category re-tap (#11374)
microbit-matt-hillsdon Jun 8, 2026
aa86cf6
Select extensions in toolbox when returning from extensions page (#11…
microbit-robert Jun 8, 2026
5759c37
Populate Blockly toolbox with category information (#11361)
microbit-robert Jun 8, 2026
f22cd9e
Ensure all mutator buttons have alt text (#11363)
microbit-robert Jun 8, 2026
81b3d68
Use blockly live region to announce `if` block mutations (#11364)
microbit-robert Jun 8, 2026
0fc6299
Change skip links from menubars to nav elements (#11365)
microbit-robert Jun 8, 2026
c6b98bd
Grid rows must have ids to work with VoiceOver (#11366)
microbit-robert Jun 8, 2026
4d3dd6b
Use Blockly menu separator instead of custom mixin (#11367)
microbit-robert Jun 8, 2026
3380ea0
Update field_note to work with Blockly screen reader (#11369)
microbit-robert Jun 8, 2026
4930dec
Improve screen reader output for field_sound_effect (#11370)
microbit-robert Jun 8, 2026
ba3841b
Update field_melody to work with Blockly screen reader (#11371)
microbit-robert Jun 8, 2026
a9df313
Ensure that grid pop-ups have the correct semantics (#11372)
microbit-robert Jun 8, 2026
53745d3
Fix screen reader output for grid images (#11373)
microbit-robert Jun 8, 2026
816dfaf
Focus newly created function block after Make a Function (#11375)
microbit-matt-hillsdon Jun 8, 2026
62d8d98
Hide chaff when a toolbox category is selected (#11376)
microbit-matt-hillsdon Jun 8, 2026
2d942d0
Improve focus position after interaction with mutator buttons (keyboa…
microbit-robert Jun 8, 2026
6f5af95
Use dynamic aria-label for flyout list based on toolbox category (#11…
microbit-robert Jun 8, 2026
f65f882
Add single letter shortcut to toggle simulator start / stop (#11356)
microbit-robert Jun 8, 2026
73396f3
various piano roll fixes (#11377)
riknoll Jun 9, 2026
0ee84f1
Only show paste hint toast when copy/cut triggered via keyboard (#11380)
microbit-matt-hillsdon Jun 9, 2026
b1d6d51
Account for duplicate on drag and shadows in keyboard disconnect (#11…
microbit-matt-hillsdon Jun 9, 2026
2be8101
offline app webusb start (#11349)
jwunderl Jun 9, 2026
54330cd
Improve screen reader and keyboard navigation experience for sound ef…
microbit-robert Jun 9, 2026
7515dbe
[pxt-cli] bump version to v12.3.17 (#11387)
abchatra Jun 10, 2026
a281bf5
make sure config is up to date before calculating extinfo (#11385)
riknoll Jun 10, 2026
250e937
Scope toolboxes to editor to ensure unique ids (#11382)
microbit-robert Jun 10, 2026
bce3d27
fix asset editor to save undo/redo even if asset didn't change (#11383)
riknoll Jun 10, 2026
adaea6a
Expose Blockly's screen reader mode as a setting (#11389)
microbit-matt-hillsdon Jun 10, 2026
70a988a
Remove use on menubar and place with group (#11390)
microbit-robert Jun 10, 2026
1510494
Workaround for "melody dadadum" full field block screen reader output…
microbit-matt-hillsdon Jun 10, 2026
322d6d8
Set Blockly keyboard focus styles when using area menu (#11393)
microbit-robert Jun 10, 2026
08a923d
[pxt-cli] bump version to v12.3.18 (#11395)
riknoll Jun 10, 2026
0b53099
darker outline border on tab for sign in modal (#11378)
srietkerk Jun 10, 2026
df308f1
Improve screen reader output for show leds block (#11391)
microbit-robert Jun 10, 2026
5fed8a5
fix --multi hash decoding and add saner options (#11396)
riknoll Jun 12, 2026
cc3e784
Update keyboard controls help (#11394)
microbit-matt-hillsdon Jun 12, 2026
a2981f9
Blockly v13.0.0-beta.9 (#11398)
microbit-matt-hillsdon Jun 12, 2026
6108f1b
Show keyboard controls hint on initial keyboard focus of the workspac…
microbit-matt-hillsdon Jun 12, 2026
4904d93
Workaround for codegen issue on older Safari (#11401)
microbit-matt-hillsdon Jun 12, 2026
88d0d50
[pxt-cli] bump version to v12.3.19 (#11403)
riknoll Jun 12, 2026
8904b83
Show Download as File in WebUSB failed connection dialog (#11325)
Copilot Jun 12, 2026
2345189
allow tutorials and examples to remove dependencies from blocksprj (#…
riknoll Jun 15, 2026
8393c1b
unify extensions dialog filters into one tablist (#11411)
riknoll Jun 15, 2026
13f8add
Fix iPad toolbox interactions; unify Monaco toolbox on the click path…
microbit-matt-hillsdon Jun 16, 2026
c2e3bb8
Ensure existing SVG overflows are respected for widget and dropdown d…
microbit-robert Jun 16, 2026
7c737c6
Comment screen reader tweaks (#11409)
microbit-matt-hillsdon Jun 16, 2026
c78c856
make the variable validator wording closer to the function validator …
srietkerk Jun 16, 2026
5fe7022
Blockly v13.0.0 (#11412)
microbit-matt-hillsdon Jun 18, 2026
b086fab
[pxt-cli] bump version to v12.3.20 (#11414)
abchatra Jun 18, 2026
c3f247b
guard note picker htmlinput (#11407)
jwunderl Jun 19, 2026
e9cdb39
start on extracting locales for default values (#11406)
jwunderl Jun 19, 2026
b93ee60
a few accessibility fixes (#11410)
riknoll Jun 22, 2026
99c5833
Keyboard help tweaks (#11413)
microbit-matt-hillsdon Jun 23, 2026
550a47d
Fixes for local github cache expiration, projects loading while offli…
jwunderl Jun 23, 2026
c7059ce
[pxt-cli] bump version to v12.3.21 (#11418)
jwunderl Jun 23, 2026
388784b
warn on function ref without invokation as statement (#11386)
jwunderl Jun 23, 2026
ea51008
Detach recycled flyout blocks from the canvas (#11421)
microbit-matt-hillsdon Jun 24, 2026
e205e60
add translatable ariaLabel to block dropdown items (#11416)
riknoll Jun 24, 2026
fddfea2
remove hex info packaging (#11425)
jwunderl Jun 24, 2026
a3a1396
[pxt-cli] bump version to v12.3.22 (#11426)
jwunderl Jun 24, 2026
ddbb8d4
fix file list focus order and clean things up (#11423)
riknoll Jun 25, 2026
e85d455
[pxt-cli] bump version to v12.3.23 (#11428)
abchatra Jun 25, 2026
292a609
fix focus indicator for codecardview and close icon in ui modal (#11424)
riknoll Jun 25, 2026
7238eb0
version history and reflow zoom accessibility fixes (#11427)
riknoll Jun 25, 2026
7ac0835
fix color contrast in several input fields (#11430)
riknoll Jun 25, 2026
07687a9
make the sign up link have the same styling as the learn more link in…
srietkerk Jun 26, 2026
13c5776
fix blocks rendering for code eval tool (#11420)
srietkerk Jun 26, 2026
2d5e315
Fix field editor focus loss in embedded browsers (#11023)
kmcnaught Jun 26, 2026
2ddab6a
[pxt-cli] bump version to v12.3.24 (#11433)
riknoll Jun 26, 2026
d1784a3
Add Code Eval Tools to the makecode.com tools page (#11388)
ganicke Jun 26, 2026
1854d24
more github editor accessibility fixes (#11431)
riknoll Jun 26, 2026
247c74f
scroll long descriptions instead of pushing buttons out (#11429)
jwunderl Jun 26, 2026
cadd87c
add dupe of logo for offline app (#11435)
jwunderl Jun 26, 2026
36c268a
enable merge queue (#11436)
jwunderl Jun 26, 2026
5a0e62c
Fix broken Twitter follow link in documentation footer (#11273)
Copilot Jun 26, 2026
720e464
Improve toggle field editor for screen reader users (#11417)
microbit-robert Jun 26, 2026
be99289
Restore hover tooltips on image grid dropdown items (#11434)
microbit-matt-hillsdon Jun 26, 2026
c8574de
Hide string quotes from screen readers (#11432)
microbit-robert Jun 26, 2026
6388e6a
Remove empty-state helper copy from Home search and keep result-state…
Copilot Jun 29, 2026
c4ec4ec
Fix missing tutorial progress badges in My Projects grid view (#11439)
Copilot Jun 29, 2026
ef5919a
Update MakeCode workshop details and add new tutorial session (#11440)
Jaqster Jun 29, 2026
49f4a5c
Upgrade to Blockly v13.1.0 (#11441)
microbit-robert Jun 30, 2026
f37106c
[pxt-cli] bump version to v12.3.25 (#11444)
abchatra Jun 30, 2026
8c5a768
remove time machine headings and fix keyboard controls (#11443)
riknoll Jun 30, 2026
3aaeddb
Add parameter labels for input names (#11422)
microbit-robert Jul 1, 2026
c8a4071
persist piano roll track ids more cleanly (#11445)
riknoll Jul 1, 2026
292e1c8
[pxt-cli] bump version to v12.3.26 (#11451)
abchatra Jul 2, 2026
8692672
installed ribbons on enabled extensions (#11442)
jwunderl Jul 2, 2026
272fb0d
add validation to piano roll text inputs (#11447)
riknoll Jul 6, 2026
806d88c
Update to Blockly 13.1.1 (#11454)
microbit-matt-hillsdon Jul 6, 2026
b521ba1
Remove menu attribute from field slider content div (#11453)
microbit-robert Jul 6, 2026
0c624bc
Set keyboard navigation to active when using the keyboard help shortc…
microbit-robert Jul 6, 2026
6e91eba
[pxt-cli] bump version to v12.3.27 (#11460)
abchatra Jul 9, 2026
b6a887e
[WIP] Fix failing GitHub Actions job 'buildvtag' (#11461)
Copilot Jul 9, 2026
2819e05
Fix tutorial progress highlight in My Projects grid view (#11455)
Copilot Jul 9, 2026
73946c9
[pxt-cli] bump version to v12.3.28 (#11462)
abchatra Jul 9, 2026
219a1dd
use npm v11 in workflow (#11464)
riknoll Jul 9, 2026
7ed1625
[pxt-cli] bump version to v12.3.29 (#11465)
riknoll Jul 9, 2026
dffbbd5
Bumping major version to 13.0.0
abchatra Jul 9, 2026
af4bcc8
[pxt-cli] bump version to v13.0.1 (#11466)
abchatra Jul 9, 2026
1885722
Bumping minor version 13.1.0
abchatra Jul 9, 2026
08449f8
[pxt-cli] bump version to v13.1.1 (#11467)
abchatra Jul 9, 2026
05ddf6d
remove eval.json
abchatra Jul 9, 2026
3c8dbc5
[pxt-cli] bump version to v13.1.2 (#11469)
abchatra Jul 9, 2026
fcdd752
Merge tag 'v13.1.2' into upgrade-to-v13.1.2
jeperkins4 Jul 11, 2026
6b3ff22
Remove dead round-matrix editor code
jeperkins4 Jul 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
11 changes: 8 additions & 3 deletions .github/workflows/pxt-buildpush.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,11 @@ on:
pull_request:
branches:
- '**' # Run workflow for pull requests targeting any branch
merge_group:
branches:
- '**' # Run workflow for merge queue checks targeting any branch
types:
- checks_requested

permissions:
contents: write
Expand Down Expand Up @@ -38,9 +43,9 @@ jobs:
uses: actions/setup-node@main
with:
node-version: 20.x

- name: Update npm
run: npm install -g npm@latest
run: npm install -g npm@11

- name: npm install
run: |
Expand Down Expand Up @@ -75,7 +80,7 @@ jobs:
node-version: 20.x

- name: Update npm
run: npm install -g npm@latest
run: npm install -g npm@11

- name: npm install
run: |
Expand Down
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,6 @@
"*.variables": "less",
"*.jres": "json"
},
"git.ignoreLimitWarning": true
"git.ignoreLimitWarning": true,
"js/ts.tsdk.path": "node_modules/typescript/lib"
}
32 changes: 30 additions & 2 deletions ThirdPartyNotice
Original file line number Diff line number Diff line change
Expand Up @@ -882,6 +882,7 @@ General Public License.
864. @fortawesome/fontawesome-free 5.15.4 (https://www.npmjs.com/package/@fortawesome/fontawesome-free/v/5.15.4)
865. @blockly/plugin-workspace-search 4.0.10 (https://www.npmjs.com/package/@blockly/plugin-workspace-search/v/4.0.10)
866. @blockly/keyboard-navigation 1.0.0-beta.0 (https://www.npmjs.com/package/@blockly/keyboard-navigation/v/1.0.0-beta.0)
867. Qix-/color-convert 5c106a633b5cd2de554d9c287ad31f9eeca7a271 (https://github.com/Qix-/color-convert)



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

**Copyright (c) 2015, Dash Industry Forum.
**All rights reserved.**

* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
* 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.
* 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.

**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.**

=========================================
END OF dashjs 4.4.0 NOTICES AND INFORMATION

Expand Down Expand Up @@ -28955,3 +28956,30 @@ END OF @blockly/plugin-workspace-search 4.0.10 NOTICES AND INFORMATION
limitations under the License.
=========================================
END OF @blockly/keyboard-navigation 1.0.0-beta.0 NOTICES AND INFORMATION


%% Qix-/color-convert 5c106a633b5cd2de554d9c287ad31f9eeca7a271 NOTICES AND INFORMATION BEGIN HERE
=========================================
Copyright (c) 2011-2016 Heather Arthur <fayearthur@gmail.com>.
Copyright (c) 2016-2021 Josh Junon <josh@junon.me>.

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
=========================================
END OF Qix-/color-convert 5c106a633b5cd2de554d9c287ad31f9eeca7a271 NOTICES AND INFORMATION
64 changes: 39 additions & 25 deletions cli/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -276,8 +276,8 @@ class FileGithubDb implements pxt.github.IGithubDb {
return this.loadAsync(repopath, tag, "pxt", (r, t) => this.db.loadConfigAsync(r, t));
}

loadPackageAsync(repopath: string, tag: string): Promise<pxt.github.CachedPackage> {
return this.loadAsync(repopath, tag, "pkg", (r, t) => this.db.loadPackageAsync(r, t));
loadPackageAsync(repopath: string, tag: string, fallbackPackageFiles?: pxt.Map<string>): Promise<pxt.github.CachedPackage> {
return this.loadAsync(repopath, tag, "pkg", (r, t) => this.db.loadPackageAsync(r, t, fallbackPackageFiles));
}

loadTutorialMarkdown(repopath: string, tag?: string): Promise<pxt.github.CachedPackage> {
Expand Down Expand Up @@ -5839,7 +5839,9 @@ export async function buildCoreDeclarationFiles(parsed: commandParser.ParsedComm
nodeutil.mkdirP(builtFolder);
process.chdir(cwd);

const host = shareId ? new Host() : new SnippetHost("decl-build", { "main.ts" : "" }, { "blocksprj": "*" });
const blocksprjConfig = readBlocksprjConfig();

const host = shareId ? new Host() : new SnippetHost("decl-build", { "main.ts" : "" }, { ...blocksprjConfig.dependencies });
const mainPkg = new pxt.MainPackage(host);

if (shareId) {
Expand Down Expand Up @@ -6223,6 +6225,16 @@ function checkDocsAsync(parsed?: commandParser.ParsedCommand): Promise<void> {
)
}

function readBlocksprjConfig(): pxt.PackageConfig {
const configPath = path.join("libs", pxt.BLOCKS_PROJECT_NAME, "pxt.json");

if (!nodeutil.fileExistsSync(configPath)) {
return undefined;
}
const config = nodeutil.readJson(configPath) as pxt.PackageConfig;
return config;
}

function checkFileSize(files: string[]): number {
if (!pxt.appTarget.cloud)
return 0;
Expand Down Expand Up @@ -6262,6 +6274,8 @@ function internalCheckDocsAsync(compileSnippets?: boolean, re?: string, fix?: bo
const existingSnippets: pxt.Map<boolean> = {};
let snippets: CodeSnippet[] = [];

const blocksprjConfig = readBlocksprjConfig();

const maxFileSize = checkFileSize(nodeutil.allFiles("docs", { maxDepth: 10, allowMissing: true, includeDirs: true, ignoredFileMarker: ".ignorelargefiles" }));
if (!pxt.appTarget.ignoreDocsErrors
&& maxFileSize > (pxt.appTarget.cloud.maxFileSize || (30000000)))
Expand Down Expand Up @@ -6434,7 +6448,7 @@ function internalCheckDocsAsync(compileSnippets?: boolean, re?: string, fix?: bo
}

// look for snippets
getCodeSnippets(entrypath, md).forEach((snippet, snipIndex) => addSnippet(snippet, entrypath, snipIndex, entrypath));
getCodeSnippets(entrypath, md, blocksprjConfig).forEach((snippet, snipIndex) => addSnippet(snippet, entrypath, snipIndex, entrypath));
}

nodeutil.mkdirP("temp");
Expand Down Expand Up @@ -6479,8 +6493,7 @@ function internalCheckDocsAsync(compileSnippets?: boolean, re?: string, fix?: bo
continue;
}
const tutorial = pxt.tutorial.parseTutorial(tutorialMd);
const pkgs: pxt.Map<string> = { "blocksprj": "*" };
pxt.Util.jsonMergeFrom(pkgs, pxt.gallery.parsePackagesFromMarkdown(tutorialMd) || {});
const pkgs = pxt.tutorial.mergeTutorialDependencies(blocksprjConfig.dependencies, pxt.gallery.parsePackagesFromMarkdown(tutorialMd) || {});

let extraFiles: Map<string> = null;

Expand All @@ -6497,7 +6510,7 @@ function internalCheckDocsAsync(compileSnippets?: boolean, re?: string, fix?: bo
|| (tutorial.language == "python")) {
tutorial.steps
.filter(step => !!step.contentMd)
.forEach((step, stepIndex) => getCodeSnippets(`${card.name}-step${stepIndex}`, step.contentMd)
.forEach((step, stepIndex) => getCodeSnippets(`${card.name}-step${stepIndex}`, step.contentMd, blocksprjConfig)
.forEach((snippet, snippetIndex) => {
snippet.packages = pkgs;
snippet.extraFiles = extraFiles;
Expand Down Expand Up @@ -6539,8 +6552,7 @@ function internalCheckDocsAsync(compileSnippets?: boolean, re?: string, fix?: bo
continue;
}
const prj = pxt.gallery.parseExampleMarkdown(card.name, exMd);
const pkgs: pxt.Map<string> = { "blocksprj": "*" };
pxt.U.jsonMergeFrom(pkgs, prj.dependencies);
const pkgs = pxt.tutorial.mergeTutorialDependencies(blocksprjConfig.dependencies, prj.dependencies);

let extraFiles: Map<string> = undefined;

Expand Down Expand Up @@ -6616,6 +6628,8 @@ function internalCacheUsedBlocksAsync(): Promise<Map<pxt.BuiltTutorialInfo>> {
const mdRegex = /\.md$/;
const targetDirs = pxt.appTarget.cacheusedblocksdirs;
const builtTututorialInfo: Map<pxt.BuiltTutorialInfo> = {};
const blocksprjConfig = readBlocksprjConfig();

if (targetDirs) {
targetDirs.forEach(dir => {
pxt.log(`looking for tutorial markdown in ${dir}`);
Expand All @@ -6633,8 +6647,9 @@ function internalCacheUsedBlocksAsync(): Promise<Map<pxt.BuiltTutorialInfo>> {
pxt.log(`error resolving tutorial markdown at ${path}`);
}
const tutorial = pxt.tutorial.parseTutorial(md) as TutorialInfo;
const pkgs: pxt.Map<string> = { "blocksprj": "*" };
pxt.Util.jsonMergeFrom(pkgs, pxt.gallery.parsePackagesFromMarkdown(md) || {});
const tutorialDeps = pxt.gallery.parsePackagesFromMarkdown(md) || {};
const pkgs: pxt.Map<string> = pxt.tutorial.mergeTutorialDependencies(blocksprjConfig.dependencies, tutorialDeps);

tutorial.pkgs = pkgs;
tutorial.path = path;

Expand Down Expand Up @@ -6752,7 +6767,7 @@ export interface CodeSnippet {
src?: string;
}

export function getCodeSnippets(fileName: string, md: string): CodeSnippet[] {
export function getCodeSnippets(fileName: string, md: string, baseConfig: pxt.PackageConfig): CodeSnippet[] {
const supported: pxt.Map<string> = {
"blocks": "ts",
"block": "ts",
Expand All @@ -6778,21 +6793,20 @@ export function getCodeSnippets(fileName: string, md: string): CodeSnippet[] {
};
}


const pkgs: pxt.Map<string> = {
"blocksprj": "*"
}
snippets.filter(snip => snip.type == "package")
const tutorialDeps = snippets.filter(snip => snip.type == "package")
.map(snip => snip.code.split('\n'))
.forEach(lines => lines
.map(l => l.replace(/\s*$/, ''))
.filter(line => !!line)
.forEach(line => {
.reduce((acc, lines) => {
for (let line of lines) {
line = line.replace(/\s*$/, '');
if (!line) continue;
const i = line.indexOf('=');
if (i < 0) pkgs[line] = "*";
else pkgs[line.substring(0, i)] = line.substring(i + 1);
})
);
if (i < 0) acc[line] = "*";
else acc[line.substring(0, i).trim()] = line.substring(i + 1);
}
return acc;
}, {} as pxt.Map<string>);

const pkgs = pxt.tutorial.mergeTutorialDependencies(baseConfig.dependencies, tutorialDeps);

const pkgName = fileName.replace(/\\/g, '-').replace(/.md$/i, '');
return codeSnippets.map((snip, i) => {
Expand Down
2 changes: 1 addition & 1 deletion common-docs/javascript/generics.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ function identity<T>(arg: T): T {
return arg;
}

let myIdentity: <U>(arg: U) => U = identity;
let myIdentity: <V>(arg: V) => V = identity;
```

We can also write the generic type as a call signature of an object literal type:
Expand Down
10 changes: 10 additions & 0 deletions common-docs/share.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,16 @@ By default, all shared projects in MakeCode can be copied and edited. There is n

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

## Asset Packs #asset-packs

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.

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:

https://youtu.be/CjLYl5KJiSk

See the [Asset Packs](https://makecode.com/extensions/asset-packs) page to learn more.

## Report Abuse

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.
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion common-docs/teachertool/catalog-shared.json
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,7 @@
"use": "variable_usage",
"template": "Uses at least ${count} variable(s)",
"docPath": "/teachertool",
"description": "The program creates and uses at least this many user-defined variables.",
"description": "At least this many user-defined variables are both set and read — auto-generated variables like loop indices do not count.",
"maxCount": 1,
"tags": ["Code Elements"],
"params": [
Expand Down
4 changes: 2 additions & 2 deletions docfiles/footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
<div class="ui horizontal link list">
<a
class="item"
href="https://twitter.com/intent/follow?screen_name=MsMakeCode"
title="Follow us on Twitter"
href="https://x.com/MsMakeCode"
title="Follow us on X"
target="_blank"
rel="noopener">
<i class="huge icon twitter"></i>
Expand Down
16 changes: 16 additions & 0 deletions docs/blog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
# Microsoft MakeCode Blog

## [Summer 2026 – MakeCode Professional Development](/blog/csp/summer-pd-2026)

April 6th, 2026 by [Jaqster](https://github.com/jaqster)

Planning your summer schedule? Make sure to register for some of these FREE MakeCode Professional Development opportunities.

**[Continue reading this blog post](/blog/csp/summer-pd-2026)**

## [MakeCode Arcade 2026 Update](/blog/arcade/update-feb-2026)

February 13th, 2026 by [Jaqster](https://github.com/jaqster)

Today we are pleased to release our 2026 MakeCode Arcade updates!

**[Continue reading this blog post](/blog/arcade/update-feb-2026)**

## [Interview with MakeCode Arcade Game Maker](/blog/arcade/code-ninjas)

December 19, 2025 by [Jaqster](https://github.com/jaqster)
Expand Down
2 changes: 2 additions & 0 deletions docs/blog/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Microsoft MakeCode Blog

* [Blog](/blog)
* [Summer 2026 – MakeCode Professional Development](/blog/csp/summer-pd-2026)
* [MakeCode Arcade 2026 Update](/blog/arcade/update-feb-2026)
* [Interview with MakeCode Arcade Game Maker](/blog/arcade/code-ninjas)
* [Computer Science Education Week 2025](/blog/csed-week/csed-week-2025)
* [MakeCode Minecraft 2025 Update](/blog/minecraft/2025-release)
Expand Down
Loading
Loading