From c409ce62fa289cb34095908d2d1201f0492e7ab3 Mon Sep 17 00:00:00 2001 From: Vollkornaffe Date: Thu, 26 Feb 2026 01:32:10 +0100 Subject: [PATCH 1/7] chore: bump version to v0.1.6 --- packages/tree_clipper/pyproject.toml | 2 +- packages/tree_clipper/src/tree_clipper/common.py | 2 +- .../src/tree_clipper_addon/blender_manifest.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/tree_clipper/pyproject.toml b/packages/tree_clipper/pyproject.toml index 28f087d..1a2c7e9 100644 --- a/packages/tree_clipper/pyproject.toml +++ b/packages/tree_clipper/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "tree-clipper" -version = "0.1.5" +version = "0.1.6" dependencies = [] maintainers = [ { name="Algebraic", email="tree.clipper@algebraic.games" }, diff --git a/packages/tree_clipper/src/tree_clipper/common.py b/packages/tree_clipper/src/tree_clipper/common.py index b8f0ea5..34bc622 100644 --- a/packages/tree_clipper/src/tree_clipper/common.py +++ b/packages/tree_clipper/src/tree_clipper/common.py @@ -13,7 +13,7 @@ # these fields are in the top level JSON object BLENDER_VERSION = "blender_version" TREE_CLIPPER_VERSION = "tree_clipper_version" -CURRENT_TREE_CLIPPER_VERSION = "0.1.5" # tested to match pyproject.toml +CURRENT_TREE_CLIPPER_VERSION = "0.1.6" # tested to match pyproject.toml MATERIAL_NAME = "name" TREES = "node_trees" EXTERNAL = "external" diff --git a/packages/tree_clipper_addon/src/tree_clipper_addon/blender_manifest.toml b/packages/tree_clipper_addon/src/tree_clipper_addon/blender_manifest.toml index 87e291f..95e5f79 100644 --- a/packages/tree_clipper_addon/src/tree_clipper_addon/blender_manifest.toml +++ b/packages/tree_clipper_addon/src/tree_clipper_addon/blender_manifest.toml @@ -3,7 +3,7 @@ schema_version = "1.0.0" # Example of manifest file for a Blender extension # Change the values according to your extension id = "tree_clipper" -version = "0.1.5" # should match tree_clipper (core logic) +version = "0.1.6" # should match tree_clipper (core logic) name = "Tree Clipper" tagline = "Export and import Blender node trees as JSON" maintainer = "Algebraic " From 4a8cd86f9f8ea19b7c754c38026aa73d7ddb9c6d Mon Sep 17 00:00:00 2001 From: Vollkornaffe Date: Thu, 26 Feb 2026 01:55:51 +0100 Subject: [PATCH 2/7] chore: update changelog --- CHANGELOG.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 31736f5..713168e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,28 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). +## [0.1.6] - 2026-02-26 + +This release is a Banger. + +Tree Clipper already accepted exports from an earlier version of *Tree Clipper*, but the Blender version had to match *exactly*. +That was very limiting and we're now attempting to be backwards compatible. + +Also worth highlighting: the progress related to third-party defined properties. + +### Added + +- Support for Blender 5.1. +- Backwards compatibility. + +### Changed + +### Fixed + +- Issues with properties registered by third-party addons. +- Min/Max issue for certain subtypes in interface sockets. +- Crytomatte nodes issues. + ## [0.1.5] - 2026-01-23 This version might be the first to be in the extension store. From a8feac688af86c76a9409327b24bbd7a7abf4b43 Mon Sep 17 00:00:00 2001 From: Vollkornaffe Date: Thu, 26 Feb 2026 02:01:23 +0100 Subject: [PATCH 3/7] fix: overwrite expected export with current versions --- packages/tree_clipper/tests/util.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/tree_clipper/tests/util.py b/packages/tree_clipper/tests/util.py index bad43ce..e086938 100644 --- a/packages/tree_clipper/tests/util.py +++ b/packages/tree_clipper/tests/util.py @@ -13,6 +13,9 @@ TREES, NAME, DEFAULT_HINT, + TREE_CLIPPER_VERSION, + CURRENT_TREE_CLIPPER_VERSION, + BLENDER_VERSION, ) from tree_clipper.id_data_getter import get_data_block_from_id_name from tree_clipper.export_nodes import ExportIntermediate, ExportParameters @@ -261,9 +264,10 @@ def import_and_check_export( with open(export_file, "r") as f: expected_string = f.read() - diff = deepdiff.DeepDiff( - json.loads(expected_string), json.loads(string), math_epsilon=0.01 - ) + expected = json.loads(expected_string) + expected[TREE_CLIPPER_VERSION] = CURRENT_TREE_CLIPPER_VERSION + expected[BLENDER_VERSION] = bpy.app.version_string + diff = deepdiff.DeepDiff(expected, json.loads(string), math_epsilon=0.01) print(diff.pretty()) assert diff == {} From 64875499d6dba1f73d63e45068f6ed18309cf0e3 Mon Sep 17 00:00:00 2001 From: Vollkornaffe Date: Thu, 26 Feb 2026 02:04:25 +0100 Subject: [PATCH 4/7] tidy: ruff --- packages/tree_clipper/tests/test_third_party_attributes.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tree_clipper/tests/test_third_party_attributes.py b/packages/tree_clipper/tests/test_third_party_attributes.py index 82d76be..ad4c68f 100644 --- a/packages/tree_clipper/tests/test_third_party_attributes.py +++ b/packages/tree_clipper/tests/test_third_party_attributes.py @@ -94,7 +94,7 @@ def test_third_party_only_exporter_has_it(): try: diff_exports(before=before, import_report=import_report, after=after) assert False, "diff should be the properties" - except: + except AssertionError: pass register_third_party_properties() @@ -125,7 +125,7 @@ def test_third_party_only_impoter_has_it(): try: diff_exports(before=before, import_report=import_report, after=after) assert False, "diff should be the properties" - except: + except AssertionError: pass finally: From f2546595c8a9aefdf9cf9713827cafdded4127cb Mon Sep 17 00:00:00 2001 From: Vollkornaffe Date: Thu, 26 Feb 2026 02:04:42 +0100 Subject: [PATCH 5/7] chore: update lock --- uv.lock | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/uv.lock b/uv.lock index 6cc8dfe..dcc41e8 100644 --- a/uv.lock +++ b/uv.lock @@ -2,9 +2,6 @@ version = 1 revision = 3 requires-python = "==3.13.*" -[options] -prerelease-mode = "allow" - [manifest] members = [ "tree-clipper", @@ -24,9 +21,9 @@ dependencies = [ { name = "zstandard" }, ] wheels = [ - { url = "https://github.com/BradyAJohnston/dailybpy/releases/download/daily-2026-02-23/bpy-5.1.0b0-cp313-cp313-macosx_11_0_arm64.whl" }, - { url = "https://github.com/BradyAJohnston/dailybpy/releases/download/daily-2026-02-23/bpy-5.1.0b0-cp313-cp313-manylinux_2_39_x86_64.whl" }, - { url = "https://github.com/BradyAJohnston/dailybpy/releases/download/daily-2026-02-23/bpy-5.1.0b0-cp313-cp313-win_amd64.whl" }, + { url = "https://github.com/BradyAJohnston/dailybpy/releases/download/daily-2026-02-25/bpy-5.1.0b0-cp313-cp313-macosx_11_0_arm64.whl" }, + { url = "https://github.com/BradyAJohnston/dailybpy/releases/download/daily-2026-02-25/bpy-5.1.0b0-cp313-cp313-manylinux_2_39_x86_64.whl" }, + { url = "https://github.com/BradyAJohnston/dailybpy/releases/download/daily-2026-02-25/bpy-5.1.0b0-cp313-cp313-win_amd64.whl" }, ] [[package]] @@ -242,7 +239,7 @@ wheels = [ [[package]] name = "tree-clipper" -version = "0.1.5" +version = "0.1.6" source = { editable = "packages/tree_clipper" } [package.optional-dependencies] From 6f678148d934db3a7e4a5577368df57199a57e28 Mon Sep 17 00:00:00 2001 From: Vollkornaffe Date: Thu, 26 Feb 2026 02:48:42 +0100 Subject: [PATCH 6/7] fix: skip deps that aren't needed for CD --- .github/workflows/bundle-extension.yml | 6 +++--- pyproject.toml | 4 ++++ uv.lock | 11 +++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.github/workflows/bundle-extension.yml b/.github/workflows/bundle-extension.yml index 22b3aff..79ab102 100644 --- a/.github/workflows/bundle-extension.yml +++ b/.github/workflows/bundle-extension.yml @@ -16,7 +16,7 @@ jobs: - uses: astral-sh/setup-uv@v6 - name: Vendorize Core Logic - run: uv run python-vendorize + run: uv run --only-group "build" python-vendorize - name: Get build script working-directory: packages/tree_clipper_addon/src @@ -24,11 +24,11 @@ jobs: - name: Build Blender extension bundles working-directory: packages/tree_clipper_addon/src/tree_clipper_addon - run: uv run --python 3.11 ../blender_ext.py build + run: uv run --no-project --python 3.11 ../blender_ext.py build - name: Generate index.json for easy updates working-directory: packages/tree_clipper_addon/src/tree_clipper_addon - run: uv run --python 3.11 ../blender_ext.py server-generate --repo-dir=./ + run: uv run --no-project --python 3.11 ../blender_ext.py server-generate --repo-dir=./ - uses: actions/upload-artifact@v4 with: diff --git a/pyproject.toml b/pyproject.toml index d44e4c1..a4745e9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -28,6 +28,10 @@ members = [ ] [dependency-groups] +build = [ + "vendorize", + "pip>=25.3", +] dev = [ "fake-bpy-module>=20251003", "pytest>=9.0.1", diff --git a/uv.lock b/uv.lock index dcc41e8..59c236b 100644 --- a/uv.lock +++ b/uv.lock @@ -2,6 +2,9 @@ version = 1 revision = 3 requires-python = "==3.13.*" +[options] +prerelease-mode = "allow" + [manifest] members = [ "tree-clipper", @@ -283,6 +286,10 @@ dependencies = [ ] [package.dev-dependencies] +build = [ + { name = "pip" }, + { name = "vendorize" }, +] dev = [ { name = "deepdiff" }, { name = "fake-bpy-module" }, @@ -300,6 +307,10 @@ requires-dist = [ ] [package.metadata.requires-dev] +build = [ + { name = "pip", specifier = ">=25.3" }, + { name = "vendorize", git = "https://github.com/Vollkornaffe/python-vendorize.git?rev=f284834c558483542ba0886f992ae2b918c22ab3" }, +] dev = [ { name = "deepdiff", specifier = ">=8.6.1" }, { name = "fake-bpy-module", specifier = ">=20251003" }, From 90d1195f79039a3d11a4b5fe9b26686319f1039b Mon Sep 17 00:00:00 2001 From: Vollkornaffe Date: Thu, 26 Feb 2026 02:58:11 +0100 Subject: [PATCH 7/7] chore: improve wording on changelog --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 713168e..a2467f1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,10 +9,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/). This release is a Banger. -Tree Clipper already accepted exports from an earlier version of *Tree Clipper*, but the Blender version had to match *exactly*. -That was very limiting and we're now attempting to be backwards compatible. +Tree Clipper already accepted exports from an earlier version of Tree Clipper, but the Blender version had to match exactly. +That was very limiting, and we're now trying to be backward-compatible. -Also worth highlighting: the progress related to third-party defined properties. +Also worth highlighting: progress on third-party-defined properties. ### Added