Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/bundle-extension.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,19 @@ 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
run: curl https://raw.githubusercontent.com/blender/blender/refs/tags/v5.0.0/scripts/addons_core/bl_pkg/cli/blender_ext.py --output blender_ext.py

- 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:
Expand Down
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 trying to be backward-compatible.

Also worth highlighting: progress on 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.
Expand Down
2 changes: 1 addition & 1 deletion packages/tree_clipper/pyproject.toml
Original file line number Diff line number Diff line change
@@ -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" },
Expand Down
2 changes: 1 addition & 1 deletion packages/tree_clipper/src/tree_clipper/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
4 changes: 2 additions & 2 deletions packages/tree_clipper/tests/test_third_party_attributes.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down Expand Up @@ -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:
Expand Down
10 changes: 7 additions & 3 deletions packages/tree_clipper/tests/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 == {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 <tree.clipper@algebraic.games>"
Expand Down
4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@ members = [
]

[dependency-groups]
build = [
"vendorize",
"pip>=25.3",
]
dev = [
"fake-bpy-module>=20251003",
"pytest>=9.0.1",
Expand Down
16 changes: 12 additions & 4 deletions uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading