From f3d522b6f1102f36702351c924786fdf0188e7b2 Mon Sep 17 00:00:00 2001 From: Rad Date: Thu, 12 Mar 2026 03:55:11 +0100 Subject: [PATCH] Prepare 0.9.4 changelog and release pipeline --- .github/workflows/build_all.yml | 20 ++++++++++++---- CHANGELOG_v0.9.4.md | 41 +++++++++++++++++++++++++++++++++ version.inc | 2 +- 3 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 CHANGELOG_v0.9.4.md diff --git a/.github/workflows/build_all.yml b/.github/workflows/build_all.yml index 3f4d788606..dc280fb666 100644 --- a/.github/workflows/build_all.yml +++ b/.github/workflows/build_all.yml @@ -11,6 +11,8 @@ on: - 'src/**' - '**/CMakeLists.txt' - 'version.inc' + - 'CHANGELOG*.md' + - 'RELEASE_NOTES*.md' - 'localization/**' - 'resources/**' - ".github/workflows/build_*.yml" @@ -26,6 +28,8 @@ on: - 'src/**' - '**/CMakeLists.txt' - 'version.inc' + - 'CHANGELOG*.md' + - 'RELEASE_NOTES*.md' - ".github/workflows/build_*.yml" - 'build_linux.sh' - 'build_release_vs2022.bat' @@ -93,11 +97,17 @@ jobs: tag="v${version}" title="Snapmaker Orca Full Spectrum v${version}" - # Look for a release notes file matching the version - notes_file="RELEASE_NOTES_v${version}.md" - if [ -f "$notes_file" ]; then - notes_content=$(cat "$notes_file") - else + notes_content="" + for notes_file in \ + "CHANGELOG_v${version}.md" \ + "RELEASE_NOTES_v${version}.md"; do + if [ -f "$notes_file" ]; then + notes_content=$(cat "$notes_file") + break + fi + done + + if [ -z "$notes_content" ]; then printf -v notes_content '%s\n\n%s\n%s\n%s\n\n%s' \ "Automated build for ${GITHUB_REPOSITORY}." \ "- Ref: ${GITHUB_REF_NAME}" \ diff --git a/CHANGELOG_v0.9.4.md b/CHANGELOG_v0.9.4.md new file mode 100644 index 0000000000..421028cb5d --- /dev/null +++ b/CHANGELOG_v0.9.4.md @@ -0,0 +1,41 @@ +# Snapmaker Orca Full Spectrum v0.9.4 + +Mixed-filament workflow expansion, Local-Z ordering fixes, and release hardening. +Based on Snapmaker Orca v2.2.4. + +## Highlights + +### Multi-Perimeter Mixed Filament Support +- Added support for multi-perimeter patterns so mixed-filament layouts can preserve more complex perimeter assignments. +- Extended the mixed-filament planning path to carry those patterns through slicing and G-code generation. + +### Object Color Mapping And Filament Assignment +- Improved object-color matching with a more predictable `Keep color` path when new colors are appended. +- Simplified appended-color handling so imported object colors map to the intended filament entries more reliably. +- Increased the color picker capacity beyond 16 colors for larger multi-color projects. + +### Mixed Filament Workflow Improvements +- Improved mixed-filament UI performance in the object-color workflow. +- Added mixed-filament reordering support so custom entries can be reorganized without recreating them. +- Updated project/config handling so reordered entries stay consistent across the slicing pipeline. + +### Local-Z And Tool Ordering +- Added Local-Z wipe tower reserve planning and pass ordering updates to keep tool sequencing aligned with Local-Z execution. +- Introduced `LocalZOrderOptimizer` coverage and integration points to improve pass ordering determinism. + +### Stability And Build Reliability +- Added GUI startup profiling hooks to help diagnose initialization cost. +- Hardened Bonjour socket cleanup by dropping unusable sockets more aggressively. +- Added `/FS` to MSVC parallel compile options to reduce Windows build contention. + +## Tests + +- Added `test_local_z_order_optimizer.cpp`. +- Expanded mixed-filament regression coverage in `test_mixed_filament.cpp`. +- Added triangle selector coverage in `test_triangle_selector.cpp`. + +## Important Notes + +- Experimental release with limited printer validation. +- macOS builds from this fork are unsigned and not notarized. +- Use at your own risk. diff --git a/version.inc b/version.inc index d4ee9aad26..384693fbe4 100644 --- a/version.inc +++ b/version.inc @@ -10,7 +10,7 @@ endif() if(NOT DEFINED BBL_INTERNAL_TESTING) set(BBL_INTERNAL_TESTING "0") endif() -set(Snapmaker_VERSION "0.9.3") +set(Snapmaker_VERSION "0.9.4") set(MIN_FIRM_VER "1.0.0") string(REGEX MATCH "^([0-9]+)\\.([0-9]+)\\.([0-9]+)" Snapmaker_VERSION_MATCH ${Snapmaker_VERSION})