Skip to content

Version Packages - #1206

Merged
mikebarkmin merged 1 commit into
mainfrom
changeset-release/main
Oct 15, 2026
Merged

mikebarkmin merged 1 commit into
mainfrom
changeset-release/main

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

hyperbook@0.114.0

Minor Changes

  • cd80cb9 Thanks @mikebarkmin! - Rework the turtle of the pyide element: import turtle is now Python's own turtle module (from Python 3.14), drawing on the canvas of the page. Turtle programs behave as they do with Python installed on a computer.

    This fixes several bugs of the previous implementation:

    • Lines drawn after a large dot() (for example with goto() and forward()) showed up while the turtle moved and then disappeared behind the dot.
    • clear() did not work reliably: depending on the animation, it removed lines drawn after it, or text and dots drawn before it came back.
    • Functions registered with onkey(), onkeypress(), onscreenclick() and ontimer() were never called. Keys can now also be given with their Python names ("Up", "space"), and errors inside these functions are shown in the output.
    • circle(radius, extent=...) and other keyword arguments were ignored, and pos() == (0, 0) or abs(pos()) did not work.
    • Lines with a pen size of 1 were drawn blurry.

    New: undo(), clone(), teleport(), onclick(), ondrag() and onrelease() on turtles, begin_poly()/get_poly(), setworldcoordinates(), image shapes, Tk colour names such as "SpringGreen2", and the fill() and no_animation() context managers. In browsers that can pause Python (for example Chrome and Edge), a program now runs in step with its drawing, so print() and input() happen at the right moment. The Stop button stops the drawing and the event functions, and a turtle program stops even when the page cannot interrupt Python.

    Changed to match Python: onclick() reacts to clicks on the turtle (use onscreenclick() for clicks on the canvas), fills follow the even-odd rule, an unknown colour raises an error, and pen changes take a short animation step.

  • 2515c5c Thanks @mikebarkmin! - Stop a running pyide program without reloading the page. Stop now cancels the program where it waits — in a game loop, at input(), or while the turtle draws — so learners keep their place on the page, and pages no longer need the Cross-Origin-Embedder-Policy and Cross-Origin-Opener-Policy headers for it. The button is always labelled "Stop". Only a program that ignores the stop is ended by reloading the page; the page then scrolls back to the same IDE and shows "Execution stopped." in its output.

Patch Changes

  • 16bf390 Thanks @mikebarkmin! - Show indentation guides in the pyide editor. Thin vertical lines mark where each indented block begins and ends, so learners can see which if, loop or function a line belongs to. The guide of the block around the cursor is drawn stronger; on a line that opens a block (e.g. for i in range(3):), it is the block that line opens. The guides follow the indentation the code actually uses, so two spaces, four spaces and tabs all line up.

@hyperbook/markdown@0.87.0

Minor Changes

  • cd80cb9 Thanks @mikebarkmin! - Rework the turtle of the pyide element: import turtle is now Python's own turtle module (from Python 3.14), drawing on the canvas of the page. Turtle programs behave as they do with Python installed on a computer.

    This fixes several bugs of the previous implementation:

    • Lines drawn after a large dot() (for example with goto() and forward()) showed up while the turtle moved and then disappeared behind the dot.
    • clear() did not work reliably: depending on the animation, it removed lines drawn after it, or text and dots drawn before it came back.
    • Functions registered with onkey(), onkeypress(), onscreenclick() and ontimer() were never called. Keys can now also be given with their Python names ("Up", "space"), and errors inside these functions are shown in the output.
    • circle(radius, extent=...) and other keyword arguments were ignored, and pos() == (0, 0) or abs(pos()) did not work.
    • Lines with a pen size of 1 were drawn blurry.

    New: undo(), clone(), teleport(), onclick(), ondrag() and onrelease() on turtles, begin_poly()/get_poly(), setworldcoordinates(), image shapes, Tk colour names such as "SpringGreen2", and the fill() and no_animation() context managers. In browsers that can pause Python (for example Chrome and Edge), a program now runs in step with its drawing, so print() and input() happen at the right moment. The Stop button stops the drawing and the event functions, and a turtle program stops even when the page cannot interrupt Python.

    Changed to match Python: onclick() reacts to clicks on the turtle (use onscreenclick() for clicks on the canvas), fills follow the even-odd rule, an unknown colour raises an error, and pen changes take a short animation step.

  • 2515c5c Thanks @mikebarkmin! - Stop a running pyide program without reloading the page. Stop now cancels the program where it waits — in a game loop, at input(), or while the turtle draws — so learners keep their place on the page, and pages no longer need the Cross-Origin-Embedder-Policy and Cross-Origin-Opener-Policy headers for it. The button is always labelled "Stop". Only a program that ignores the stop is ended by reloading the page; the page then scrolls back to the same IDE and shows "Execution stopped." in its output.

Patch Changes

  • 16bf390 Thanks @mikebarkmin! - Show indentation guides in the pyide editor. Thin vertical lines mark where each indented block begins and ends, so learners can see which if, loop or function a line belongs to. The guide of the block around the cursor is drawn stronger; on a line that opens a block (e.g. for i in range(3):), it is the block that line opens. The guides follow the indentation the code actually uses, so two spaces, four spaces and tabs all line up.

hyperbook-studio@0.58.0

Minor Changes

  • cd80cb9 Thanks @mikebarkmin! - Rework the turtle of the pyide element: import turtle is now Python's own turtle module (from Python 3.14), drawing on the canvas of the page. Turtle programs behave as they do with Python installed on a computer.

    This fixes several bugs of the previous implementation:

    • Lines drawn after a large dot() (for example with goto() and forward()) showed up while the turtle moved and then disappeared behind the dot.
    • clear() did not work reliably: depending on the animation, it removed lines drawn after it, or text and dots drawn before it came back.
    • Functions registered with onkey(), onkeypress(), onscreenclick() and ontimer() were never called. Keys can now also be given with their Python names ("Up", "space"), and errors inside these functions are shown in the output.
    • circle(radius, extent=...) and other keyword arguments were ignored, and pos() == (0, 0) or abs(pos()) did not work.
    • Lines with a pen size of 1 were drawn blurry.

    New: undo(), clone(), teleport(), onclick(), ondrag() and onrelease() on turtles, begin_poly()/get_poly(), setworldcoordinates(), image shapes, Tk colour names such as "SpringGreen2", and the fill() and no_animation() context managers. In browsers that can pause Python (for example Chrome and Edge), a program now runs in step with its drawing, so print() and input() happen at the right moment. The Stop button stops the drawing and the event functions, and a turtle program stops even when the page cannot interrupt Python.

    Changed to match Python: onclick() reacts to clicks on the turtle (use onscreenclick() for clicks on the canvas), fills follow the even-odd rule, an unknown colour raises an error, and pen changes take a short animation step.

  • 2515c5c Thanks @mikebarkmin! - Stop a running pyide program without reloading the page. Stop now cancels the program where it waits — in a game loop, at input(), or while the turtle draws — so learners keep their place on the page, and pages no longer need the Cross-Origin-Embedder-Policy and Cross-Origin-Opener-Policy headers for it. The button is always labelled "Stop". Only a program that ignores the stop is ended by reloading the page; the page then scrolls back to the same IDE and shows "Execution stopped." in its output.

Patch Changes

  • 16bf390 Thanks @mikebarkmin! - Show indentation guides in the pyide editor. Thin vertical lines mark where each indented block begins and ends, so learners can see which if, loop or function a line belongs to. The guide of the block around the cursor is drawn stronger; on a line that opens a block (e.g. for i in range(3):), it is the block that line opens. The guides follow the indentation the code actually uses, so two spaces, four spaces and tabs all line up.

  • Updated dependencies [cd80cb9, 16bf390, 2515c5c]:

    • @hyperbook/markdown@0.87.0

@vercel

vercel Bot commented Oct 15, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
hyperbook-4fwa Ready Ready Preview Oct 15, 2026 9:17pm UTC

@mikebarkmin
mikebarkmin merged commit 9bd2966 into main Oct 15, 2026
2 checks passed
@mikebarkmin
mikebarkmin deleted the changeset-release/main branch October 15, 2026 21:18

This branch was successfully deployed

1 active deployment
Preview — 3a0dca90 Deployed Oct 15, 2026 by vercel[bot]
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.

1 participant