From e8e3ea24645bb2054ea50ba2e22ededd7dc59281 Mon Sep 17 00:00:00 2001 From: abhishekmadan30 Date: Thu, 5 Feb 2026 15:57:44 -0500 Subject: [PATCH] chore: bump version to 19.0.0 --- CHANGELOG.md | 17 +++++++++++++++++ docs/reference/migrations.rst | 31 +++++++++++++++++++++++++++++++ pyproject.toml | 2 +- uv.lock | 2 +- 4 files changed, 50 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fae09ee21..d931536b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,22 @@ # Change Log +## [19.0.0] - 2026-02-06 + +### Added + +- BREAKING CHANGE: Support for msgspec schemas; voluptuous schemas renamed to `LegacySchema` + +### Changed + +- Updated taskcluster dependency to v92; artifact functions now handle redirects manually +- Updated workerType in template `.taskcluster.yml` +- Disabled unnecessary `taskcluster-proxy` for Windows tests + +### Fixed + +- Race condition in `docker_image` transforms when creating docker-contexts directory +- Wrong location for `extra` in `.taskcluster.yml` template + ## [18.1.0] - 2026-01-13 ### Added diff --git a/docs/reference/migrations.rst b/docs/reference/migrations.rst index 285ea941f..1cb078cef 100644 --- a/docs/reference/migrations.rst +++ b/docs/reference/migrations.rst @@ -3,6 +3,37 @@ Migration Guide This page can help when migrating Taskgraph across major versions. +18.x -> 19.x +------------ + +* The ``Schema`` class in ``taskgraph.util.schema`` is now based on msgspec + instead of voluptuous. The old voluptuous-based class has been renamed to + ``LegacySchema``. Both will continue to be supported. + + If you have custom schemas using ``Schema``, you have two options: + + **Option 1**: Switch to ``LegacySchema`` to keep using voluptuous: + + .. code-block:: python + + from taskgraph.util.schema import LegacySchema + + **Option 2**: Migrate to the new msgspec-based ``Schema``: + + .. code-block:: python + + from taskgraph.util.schema import Schema + + class MySchema(Schema): + foo: str + bar: int = 10 + + The new ``Schema`` class uses kebab-case renaming and forbids + unknown fields by default. See the msgspec documentation for more details. + +* ``validate_schema`` now supports both voluptuous and msgspec schemas, and + ``optionally_keyed_by`` accepts a ``use_msgspec=True`` flag for msgspec output. + 17.x -> 18.x ------------ diff --git a/pyproject.toml b/pyproject.toml index 31cfa1067..497416b80 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,7 +1,7 @@ ### Project [project] name = "taskcluster-taskgraph" -version = "18.1.0" +version = "19.0.0" description = "Build taskcluster taskgraphs" readme = "README.rst" authors = [ diff --git a/uv.lock b/uv.lock index 2eaee814c..b0af0f228 100644 --- a/uv.lock +++ b/uv.lock @@ -2084,7 +2084,7 @@ wheels = [ [[package]] name = "taskcluster-taskgraph" -version = "18.1.0" +version = "19.0.0" source = { editable = "." } dependencies = [ { name = "appdirs" },