Skip to content

chore: Moved the dev-tools plugin over to the monorepo#10155

Merged
lizschwab merged 15 commits into
RaspberryPiFoundation:mainfrom
lizschwab:7763
Jul 21, 2026
Merged

chore: Moved the dev-tools plugin over to the monorepo#10155
lizschwab merged 15 commits into
RaspberryPiFoundation:mainfrom
lizschwab:7763

Conversation

@lizschwab

@lizschwab lizschwab commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

The basics

The details

Resolves

Fixes #7763

Proposed Changes

  • Moved the dev-tools plugin over to the monorepo
  • Updated the ordering of the packages in the monorepo package.json for build dependencies
  • Updated the linting and formatting rules
  • Updated blockly package dependency versions

Reason for Changes

This is part of the monorepo project.

Test Coverage

No new tests were added. I tested locally by doing the following:

  • Cleaning out all node_modules, dist, build, and package-lock.json directories/files
  • Running npm install from the monorepo root
  • Running npm run build from the monorepo root
  • Running npm run lint from the monorepo root
  • Running npm run test from the monorepo root
  • Running npm run format:check from the monorepo root
  • Running npm run start from each package root
  • Made a change in dev-tools, ran the playground, and ensured the change appeared, ensuring the packages are linked during local development

Screenshot of change to dev-tools showing up in blockly advanced playground (changed name of Logic to LogicA)
Screenshot 2026-07-17 at 2 30 13 PM

Documentation

Documentation will be handled as part of a future task.

TODO

@lizschwab lizschwab changed the title 7763 chore: Moved the dev-tools plugin over to the monorepo Jul 17, 2026
@github-actions github-actions Bot added the PR: chore General chores (dependencies, typos, etc) label Jul 17, 2026
@github-actions github-actions Bot added PR: chore General chores (dependencies, typos, etc) and removed PR: chore General chores (dependencies, typos, etc) labels Jul 21, 2026
@lizschwab
lizschwab marked this pull request as ready for review July 21, 2026 15:56
@lizschwab
lizschwab requested a review from a team as a code owner July 21, 2026 15:56
@lizschwab
lizschwab requested a review from gonfunko July 21, 2026 15:56
reportFailure(error) {
const message =
error instanceof Error ? error.message : String(error);
error instanceof Error ? error.message : JSON.stringify(error);

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I made this change while debugging but left it in because printing [Object object] doesn't help anyone


test('are shown for the designated duration', function () {
const clock = sinon.useFakeTimers();

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This test started giving this error:

Can't install fake timers twice on the same global object.

I'm guessing a dependency somewhere got updated and this started accurately displaying this error, because the setup function already sets this.clock.

Comment thread package.json
"packages/plugins/theme-modern",
"packages/plugins/theme-tritanopia",
"packages/dev-tools",
"packages/docs"

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I'm exploring using Nx to automatically handle build order for us. In the meantime, I'm using the workspaces order to determine the build order.

Comment thread package.json Outdated
"lint:fix": "npm run lint:fix --ws --if-present",
"build": "npm run package --workspace=blockly && npm run build --ws --if-present",
"lint:fix": "npm run lint:fix --ws --if-present",
"build": "npm run package --workspace=blockly && npm run build --ws --if-present",

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Running package on blockly makes the themes happy when we go to build them.

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.

These appear to be present twice?

@github-actions github-actions Bot added PR: chore General chores (dependencies, typos, etc) and removed PR: chore General chores (dependencies, typos, etc) labels Jul 21, 2026
Comment thread eslint.config.mjs Outdated
'packages/blockly/typings/*',
'packages/blockly/docs/*',
// Core Tests other than mocha unit tests
// Core Tests other than mocha unit tests

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.

This and the next comment are duplicated

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Auto-merge decided to duplicate some things, looks like I missed these. Thanks for catching that!

Comment thread package.json Outdated
"lint:fix": "npm run lint:fix --ws --if-present",
"build": "npm run package --workspace=blockly && npm run build --ws --if-present",
"lint:fix": "npm run lint:fix --ws --if-present",
"build": "npm run package --workspace=blockly && npm run build --ws --if-present",

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.

These appear to be present twice?

@lizschwab
lizschwab merged commit ac5d6a6 into RaspberryPiFoundation:main Jul 21, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

PR: chore General chores (dependencies, typos, etc)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Pull in dev-tools and make sure it works with core and themes plugins

2 participants