Skip to content

Releases: canonical/workshop

v0.9.0

26 May 19:22
v0.9.0
69ab7c1

Choose a tag to compare

v0.1.30

29 Apr 02:04
v0.1.30
4c5708e

Choose a tag to compare

Workshop v0.1.29 release notes

19 Dec 07:24
e3bd420

Choose a tag to compare

19 December 2025

These release notes cover new features and changes in Workshop v0.1.29.

Requirements and compatibility

Workshop relies on Snap and LXD:

What's new in Workshop v0.1.29

This release introduces internal improvements to SDK management,
test infrastructure enhancements, and better error handling across the board.

SDK storage refactoring

SDK installations are now stored in LXD devices rather than instance
configuration, simplifying the backend architecture. SDK snapshots have been
decoupled from configuration and devices, and snapshot creation now happens in
separate tasks for better control and observability. The terminology has also
been updated: "layers" are now consistently referred to as "snapshots"
throughout the codebase.

Workshop exec and run improvements

The workshop exec and workshop run commands now handle ambiguous arguments
more intelligently, supporting optional -- separators only before the command
to align with common command-line conventions and simplify interactive use.

Enhanced test infrastructure

The spread test binary is built once and cached across test runs,
significantly improving CI performance. Network resilience in tests has been
improved with better retry logic around apt operations and Go proxy
workarounds. A new workflow now checks for LXD candidate channel updates to
catch breaking changes early.

Better timezone handling

Workshops now automatically inherit the host's timezone on launch and refresh,
making time-sensitive operations more intuitive.

Documentation improvements

A documentation style guide and a Copilot review framework was added; the
additions include foundational instructions and workflows for automated code and
documentation review and JSON schema updates. The in-project starter pack SDK
was decommissioned from the dev workshop in favor of a simpler approach that
now includes a dedicated GitHub action. Auto-generated CLI reference
documentation for sdkcraft was added. Navigation structure on landing pages
was simplifed.


Full Changelog:
v0.1.28...v0.1.29

v0.1.28

08 Nov 09:44
a93f175

Choose a tag to compare

What's Changed

Full Changelog: v0.1.27...v0.1.28

v0.1.27

22 Oct 06:55
b0b0cc6

Choose a tag to compare

What's Changed

Full Changelog: v0.1.26...v0.1.27

v0.1.26

17 Oct 06:15
5620ddd

Choose a tag to compare

17 October 2025

These release notes cover new features and changes in Workshop v0.1.26.

Requirements and compatibility

Workshop relies on Snap and LXD:

What's new in Workshop v0.1.26

This release improves stash efficiency for large workshops, introduces a new SDK
browsing utility aptly named sdk, and enhances workshop metadata preservation
during refresh operations.

Improved stash efficiency with instance cloning

Workshop now uses cloned instances in addition to snapshots for stashing and
unstashing operations. This enables instance-only copies, significantly
speeding up refresh operations for large workshops.

To maintain DHCP stability, stashed instances are assigned different MAC
addresses from the main instances. Most volatile.* configuration options are
no longer copied to or from the stash for consistency.

Also, Workshop now preserves workshop state when refresh operations fail.

Note: Workshop and SDK names are limited to 40 characters with this update,
following the SDKcraft naming convention.

New sdk browsing utility with sdk info and sdk list

The new sdk info command provides detailed information about installed SDK
volumes:

$ sdk info openvino
name:     openvino
summary:  Intel OpenVINO development environment
description: |
  Longer description, can be multi-line.
installed:
  ~/work/nav2:    ci   latest/stable  2024-11-25 (85) 109MB
  ~/work/lerobot: dev  latest/edge    2024-11-20 (82) 102MB

The sdk list command enumerates all local SDK volumes, displaying the SDK
revisions currently stored on the system. Only volumes are reported, not the
workshops that use them.


Full Changelog:
v0.1.25...v0.1.26

v0.1.25

05 Oct 23:28
91ffede

Choose a tag to compare

Workshop v0.1.25 release notes

03 October 2025

These release notes cover new features and changes in Workshop v0.1.25.

Requirements and compatibility

Workshop relies on Snap and LXD:

What's new in Workshop v0.1.25

This release enhances the refresh workflow by incorporating base image updates
and automatically rebuilding workshops when the base image is outdated.

Incorporate base image in refresh plan

The workshop refresh command now queries the image server at the same time as
the Store. If the base image is outdated, the workshop is rebuilt from scratch
based on the new image. This is the same behaviour as switching to a different
base. If the current base is up to date, the workshop will likely be restored
from a snapshot.

There's no cleanup logic for images at present. They will start to pile up over
time, but the snap's remove hook should keep this under control for now.

Changelog

Full Changelog: v0.1.24...v0.1.25

v0.1.24

12 Sep 11:33
362e3e7

Choose a tag to compare

Workshop v0.1.24 release notes

12 September 2025

These release notes cover new features and changes in Workshop v0.1.24.

Requirements and compatibility

Workshop relies on Snap and LXD:

What's new in Workshop v0.1.24

This release improves error reporting consistency, adds compatibility checks for
LXD, and introduces a shift from "scripts" to "actions" in Workshop definitions.

Unified error reporting for launch, refresh, and sketch-sdk

Error handling is now consistent across commands when changes are aborted.
Previously, if a change became Undone after a Ctrl+C, the result could
either appear as an aborted change or silently finish. This discrepancy has been
reconciled. In addition, error reporting has been fixed for the sketch-sdk
command when a sketch refresh is interrupted.

LXD version check before use

Workshop now verifies the LXD version before using it as a backend, preventing
compatibility issues with unsupported versions.

Scripts renamed to actions

Workshop scripts are now referred to as actions. Existing workshop
definitions that use scripts: remain supported for now, but the internal
representation has changed, and old clients may not be fully compatible with new
daemons.

In the new model, each action is defined with a script field:

$ workshop actions dev
all:
  script: npm run all -- "$@"
format:
  script: npm run format:write -- "$@"
inspect:
  script: npm run inspect -- "$@"
install:
  script: npm ci -- "$@"
lint:
  script: npm run lint -- "$@"
test:
  script: npm run test -- "$@"

Currently, script is the only available field, but additional fields (such as
uid and gid) may be added later. The migration also completes a switch to
the standard library maps and slices, resolving related issues.

Changelog


Full Changelog:
v0.1.23...v0.1.24

v0.1.23

29 Aug 10:20
69254a3

Choose a tag to compare

Workshop v0.1.23 release notes

29 August 2025

These release notes cover new features and changes in Workshop v0.1.23.

Requirements and compatibility

Workshop relies on Snap and LXD:

What’s new in Workshop v0.1.23

This release introduces smarter handling of SDK volumes, new options for mount
interfaces, a significantly expanded tutorial, and improvements to workshop refresh.

Automatic cleanup of unused SDK volumes

Workshopd now automatically tracks and removes unused SDK volumes. A cleanup
handler runs after install-sdk or unregister-sdk tasks to detect when a
volume is no longer needed (for example, after a workshop is removed, a refresh
detaches an SDK, or a launch fails).

Volumes are only deleted if they remain unused for more than one hour, reducing
the chance of removing volumes that might be immediately reused.

Mount interface plugs with uid, gid, and mode options

Mount interface plugs now support specifying uid, gid, and mode options,
allowing finer control over mounted resources.

Smarter workshop refresh and new restore option

The workshop refresh command will now skip execution if no changes to SDKs,
interfaces, or the base are detected.

A new --restore flag restores a workshop from the most recent snapshot taken
after the last successful setup-base run, simplifying recovery workflows.

Docs and coverage

The Tutorial has been restructured into a four-part series. Instead of simpler hello-world examples,
it now uses more practical configurations based on the Ollama and Jupyter SDKs that we provide.
The guide also covers interfaces, sketching, and in-project SDKs in more detail, forming a complete end-to-end scenario.

Changelog

Full Changelog: v0.1.22...v0.1.23

v0.1.22

15 Aug 06:42
ec5a1c6

Choose a tag to compare

15 August 2025

These release notes cover new features and changes in Workshop v0.1.22.

Requirements and compatibility

Workshop relies on Snap and LXD:

See the Tutorial for setup instructions.

Refer to the Contribution Guide for development prerequisites.

What’s new in Workshop v0.1.22

Support sdkcraft try

After running sdkcraft try in an SDKcraft project, the local user can use the SDK(s) it built by adding - name: try- to a workshop definition.

Changelog

Full Changelog: v0.1.21...v0.1.22