Fix filament compatibility by checking full parent printer inheritance chain #836

Closed
opened 2026-04-05 16:32:28 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @energypantry on 2/9/2026

Summary

  • Reverted the previous bulk migration that switched vendor base filaments to OrcaFilamentLibrary inheritance
  • Implemented a safer fix in compatibility logic: when matching compatible_printers, walk the full active printer inheritance chain (parent, grand-parent, etc.)
  • This keeps vendor/system defaults untouched while allowing inherited printer profiles to match existing compatible system printer entries

Why

  • Maintainer feedback highlighted that bulk inheritance migration can alter effective user settings and risk print quality regressions
  • This PR now targets the core compatibility gap from #12162 without changing vendor base profile data

Scope

  • PresetWithVendorProfile now carries optional PresetCollection context
  • is_compatible_with_parent_printer() uses that context to resolve parent chain via get_preset_parent()
  • Backward-compatible fallback remains when collection context is unavailable

Notes

  • No vendor base filament files are modified in this revision
*Originally created by @energypantry on 2/9/2026* ## Summary - Reverted the previous bulk migration that switched vendor base filaments to OrcaFilamentLibrary inheritance - Implemented a safer fix in compatibility logic: when matching compatible_printers, walk the full active printer inheritance chain (parent, grand-parent, etc.) - This keeps vendor/system defaults untouched while allowing inherited printer profiles to match existing compatible system printer entries ## Why - Maintainer feedback highlighted that bulk inheritance migration can alter effective user settings and risk print quality regressions - This PR now targets the core compatibility gap from #12162 without changing vendor base profile data ## Scope - PresetWithVendorProfile now carries optional PresetCollection context - is_compatible_with_parent_printer() uses that context to resolve parent chain via get_preset_parent() - Backward-compatible fallback remains when collection context is unavailable ## Notes - No vendor base filament files are modified in this revision
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#836