Skip to content

update / remove extensions from extension browser - #11506

Open
Joey Wunderlich (jwunderl) wants to merge 4 commits into
masterfrom
dev/jwunderl/removable-extensions
Open

update / remove extensions from extension browser#11506
Joey Wunderlich (jwunderl) wants to merge 4 commits into
masterfrom
dev/jwunderl/removable-extensions

Conversation

@jwunderl

Copy link
Copy Markdown
Member

build here https://arcade.makecode.com/app/cfbe43cf1162ea2c3341e884ef7d377e8f18bf2e-03832de737#pub:_TkXARXiMpHKU

add dialog for updating or removing dependency when you click it in extension browser, and add events surrounding extension changes to timeline

image

one other unrelated think i did include while I was poking around:
image
felt like obvious place to include a 'open shared page that was made' button; can cut that if we don't like it or prefer it to come in separately

@jwunderl
Joey Wunderlich (jwunderl) requested review from a team and a lite review from Copilot August 5, 2026 17:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@jwunderl
Joey Wunderlich (jwunderl) requested a balanced review from Copilot August 6, 2026 18:09

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.

Suppressed comments (3)

webapp/src/extensionsBrowser.tsx:424

  • The usage guard only checks the currently loaded Blockly workspace plus Package.isPackageInUse(dependency.name), which defaults to main.ts (pxtlib/package.ts:366). References in other project files (for example custom.ts, test files, or a secondary blocks file) are therefore missed, so Remove can be enabled and then leave the project uncompilable. Check every configured source/blocks file, or query compiler references for the dependency before enabling removal.
        if (hasExtensionBlocks || pkg.mainPkg.isPackageInUse(dependency.name)) {

webapp/src/extensionsBrowser.tsx:441

  • The absence of latestVersion does not necessarily mean “up to date”: this helper also returns undefined for non-GitHub dependencies, unparsable tags, and caught network failures. Those cases are currently presented to users as a successful freshness check. Return a distinct lookup status (or propagate failures) and reserve “Up to date” for a successful GitHub version comparison.
        const updateLabel = latestVersion ? lf("Update extension") : lf("Up to date");
        const updateUnavailableReason = restrictionReason || !latestVersion && lf("This extension is up to date.");

react-common/components/controls/Tree.tsx:212

  • selectedId is the tree's roving-focus state: arrow-key navigation updates it without activating an item. Exposing it as aria-selected therefore tells assistive technology that the focused timeline row is the restored/previewed version even though the preview remains on the previous row (and initially marks the day group rather than “Now”). Bind aria-selected to an explicit semantic-selection prop from TimeMachine instead of the focus state.
            aria-selected={isSelected}

Comment thread pxteditor/history.ts
Comment thread webapp/src/extensionsBrowser.tsx
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants