From 5157adde6572f1e2fae0a8cab01691edd46709f4 Mon Sep 17 00:00:00 2001 From: SoftFever Date: Thu, 2 Jul 2026 02:08:20 +0800 Subject: [PATCH] always run check_preset_references --- .github/workflows/check_profiles.yml | 29 ++----------------- .../OrcaSlicer_profile_validator.cpp | 4 +-- src/libslic3r/PresetBundle.cpp | 4 +-- src/libslic3r/PresetBundle.hpp | 5 ++-- 4 files changed, 8 insertions(+), 34 deletions(-) diff --git a/.github/workflows/check_profiles.yml b/.github/workflows/check_profiles.yml index 15d6c6ba54..7fb7dcece5 100644 --- a/.github/workflows/check_profiles.yml +++ b/.github/workflows/check_profiles.yml @@ -41,7 +41,7 @@ jobs: curl -L -o OrcaSlicer_profile_validator https://github.com/OrcaSlicer/OrcaSlicer/releases/download/nightly-builds/OrcaSlicer_profile_validator_Linux_Ubuntu2404_nightly chmod +x ./OrcaSlicer_profile_validator - # validate profiles + # Validate all system profiles. - name: validate system profiles id: validate_system continue-on-error: true @@ -57,20 +57,6 @@ jobs: set +e ./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 -v BBL -f 2>&1 | tee ${{ runner.temp }}/validate_filament_subtypes.log exit ${PIPESTATUS[0]} - # Flag inherits/compatible_printers/compatible_prints references that point at a deleted or - # renamed preset. Opt-in per vendor for now (via -r); enabled for BBL and Qidi until other - # vendors' profiles are cleaned up. Runs before the custom-preset injection below. - - name: validate preset references for BBL and Qidi profiles - id: validate_preset_references - continue-on-error: true - run: | - set +e - rc=0 - for v in BBL Qidi; do - ./OrcaSlicer_profile_validator -p ${{ github.workspace }}/resources/profiles -l 2 -v "$v" -r 2>&1 | tee -a ${{ runner.temp }}/validate_preset_references.log - [ ${PIPESTATUS[0]} -ne 0 ] && rc=1 - done - exit $rc - name: validate custom presets id: validate_custom @@ -90,7 +76,7 @@ jobs: echo "${{ github.event.pull_request.number }}" > ${{ runner.temp }}/profile-check-results/pr_number.txt - name: Prepare comment artifact - if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_filament_subtypes.outcome == 'failure' || steps.validate_preset_references.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }} + if: ${{ always() && github.event_name == 'pull_request' && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_filament_subtypes.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }} run: | { # Marker matched by check_profiles_comment.yml to delete prior comments. @@ -125,15 +111,6 @@ jobs: echo "" fi - if [ "${{ steps.validate_preset_references.outcome }}" = "failure" ]; then - echo "### BBL/Qidi Preset Reference Validation Failed" - echo "" - echo '```' - head -c 30000 ${{ runner.temp }}/validate_preset_references.log || echo "No output captured" - echo '```' - echo "" - fi - if [ "${{ steps.validate_custom.outcome }}" = "failure" ]; then echo "### Custom Preset Validation Failed" echo "" @@ -156,7 +133,7 @@ jobs: retention-days: 1 - name: Fail if any check failed - if: ${{ always() && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_filament_subtypes.outcome == 'failure' || steps.validate_preset_references.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }} + if: ${{ always() && (steps.extra_json_check.outcome == 'failure' || steps.validate_system.outcome == 'failure' || steps.validate_filament_subtypes.outcome == 'failure' || steps.validate_custom.outcome == 'failure') }} run: | echo "One or more profile checks failed. See above for details." exit 1 diff --git a/src/dev-utils/OrcaSlicer_profile_validator.cpp b/src/dev-utils/OrcaSlicer_profile_validator.cpp index baee58258c..3208f55452 100644 --- a/src/dev-utils/OrcaSlicer_profile_validator.cpp +++ b/src/dev-utils/OrcaSlicer_profile_validator.cpp @@ -96,7 +96,6 @@ int main(int argc, char* argv[]) ("vendor,v", po::value()->default_value(""), "Vendor name. Optional, all profiles present in the folder will be validated if not specified") ("generate_presets,g", po::value()->default_value(false), "Generate user presets for mock test") ("check_filament_subtypes,f", po::bool_switch()->default_value(false), "Also flag printers with duplicate (ambiguous) filament subtypes. Off unless this flag is present.") - ("check_preset_references,r", po::bool_switch()->default_value(false), "Also flag presets whose inherits/compatible_printers/compatible_prints reference a deleted or renamed preset. Off unless this flag is present.") ("log_level,l", po::value()->default_value(2), "Log level. Optional, default is 2 (warning). Higher values produce more detailed logs."); // clang-format on @@ -121,7 +120,6 @@ int main(int argc, char* argv[]) int log_level = vm["log_level"].as(); bool generate_user_preset = vm["generate_presets"].as(); bool check_filament_subtypes = vm["check_filament_subtypes"].as(); - bool check_preset_references = vm["check_preset_references"].as(); // check if path is valid, and return error if not if (!fs::exists(path) || !fs::is_directory(path)) { @@ -168,7 +166,7 @@ int main(int argc, char* argv[]) return 0; } - if (preset_bundle->has_errors(check_filament_subtypes, check_preset_references)) { + if (preset_bundle->has_errors(check_filament_subtypes)) { std::cout << "Validation failed" << std::endl; return 1; } diff --git a/src/libslic3r/PresetBundle.cpp b/src/libslic3r/PresetBundle.cpp index ee32e8d036..fccbd13b98 100644 --- a/src/libslic3r/PresetBundle.cpp +++ b/src/libslic3r/PresetBundle.cpp @@ -5528,7 +5528,7 @@ void PresetBundle::set_default_suppressed(bool default_suppressed) printers.set_default_suppressed(default_suppressed); } -bool PresetBundle::has_errors(bool check_duplicate_filament_subtypes, bool check_references) const +bool PresetBundle::has_errors(bool check_duplicate_filament_subtypes) const { if (m_errors != 0 || printers.m_errors != 0 || filaments.m_errors != 0 || prints.m_errors != 0) return true; @@ -5551,7 +5551,7 @@ bool PresetBundle::has_errors(bool check_duplicate_filament_subtypes, bool check if (check_duplicate_filament_subtypes && this->check_duplicate_filament_subtypes()) has_errors = true; - if (check_references && this->check_preset_references()) + if (this->check_preset_references()) has_errors = true; return has_errors; diff --git a/src/libslic3r/PresetBundle.hpp b/src/libslic3r/PresetBundle.hpp index 59f6bee309..fc03ff8d3b 100644 --- a/src/libslic3r/PresetBundle.hpp +++ b/src/libslic3r/PresetBundle.hpp @@ -485,9 +485,8 @@ public: return { Preset::TYPE_PRINTER, Preset::TYPE_SLA_PRINT, Preset::TYPE_SLA_MATERIAL }; } - // Orca: for validation only. The duplicate filament subtype and preset-reference checks are - // opt-in for now (enabled per-vendor by the profile-check CI as vendors are cleaned up). - bool has_errors(bool check_duplicate_filament_subtypes = false, bool check_preset_references = false) const; + // Orca: for validation only. + bool has_errors(bool check_duplicate_filament_subtypes = false) const; // Orca: for validation only. Flag any system preset whose inherits / compatible_printers / // compatible_prints references a deleted (unknown) or renamed (old) preset name.