mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-07-28 21:32:11 +00:00
# Description This PR expands profile validation so we can catch backward compatibility issues with custom presets generated by older OrcaSlicer releases. It also adds missing `renamed_from` metadata for presets that were renamed or moved, so older user presets can resolve their original parent names against the current system profiles. ## Background Many users have reported missing preset issues after upgrading past 2.4.1. Investigation showed two common causes: - preset lookup and compatibility checks did not always account for `renamed_from` - some renamed base presets were missing the old preset name in their `renamed_from` metadata The existing profile workflow validates the current system profile tree and a single nightly-generated custom preset bundle. That is useful for catching current profile errors, but it does not validate user presets generated by older OrcaSlicer versions against the current system profiles. As a result, older missing-parent compatibility gaps can slip through. ## Changes - Update `check_profiles.yml` to validate historical custom preset fixtures from `OrcaSlicer/OrcaSlicer-profile-validator`. - Download the fixture manifest from the public `fixture-archive` release. - Validate each `orca_custom_presets_<version>.zip` fixture independently against the current PR's `resources/profiles`. - Generate per-version validation logs and upload them as workflow artifacts. - Fail profile validation if any historical fixture version fails. - Add missing `renamed_from` aliases for renamed/moved presets found by the historical fixture validation. ## Profile Compatibility Fixes This PR adds aliases for older parent names including: - `0.20mm Bambu Support W @BBL X1C` -> `0.20mm Standard @BBL X1C` - `Bambu PLA Impact @BBL X1C` -> `Bambu PLA Impact @System` - `Ginger Generic rPLA` -> `Ginger Generic PLA` - `Ginger Generic rPETG` -> `Ginger Generic PETG` - legacy `Panchroma PLA Stain` BBL filament names -> current `Panchroma PLA Satin` names - legacy Elegoo casing/name variants such as `Elegoo RAPID PLA+`, `Elegoo RAPID PETG`, `Elegoo RAPID PETG+`, and `Elegoo PETG Pro @System` ## Validation Flow The custom preset validation step now: 1. Downloads `manifest.json` from the `fixture-archive` release. 2. Iterates over every fixture listed in the manifest. 3. Copies the current branch's `resources/profiles` into a temporary profile tree. 4. Removes any existing `user` directory from that temporary tree. 5. Unzips exactly one historical fixture into the temporary tree. 6. Runs `OrcaSlicer_profile_validator -p <temp profile tree> -l 2`. 7. Writes a version-specific log and a consolidated summary. This keeps validation scoped per fixture version and avoids mixing generated user presets from different OrcaSlicer releases. ## Fixture Source Historical fixtures are stored as public release assets in: `OrcaSlicer/OrcaSlicer-profile-validator`, release tag `fixture-archive` Each release asset is expected to be named like: ```text orca_custom_presets_v2.4.1.zip ``` ## Testing Validated locally with: - current system profile validation - BBL filament subtype validation - historical custom preset fixture validation - extra profile JSON check in a clean profile tree The affected historical fixture set passed after adding the missing `renamed_from` aliases. The release manifest controls which fixture versions are validated. [How to Download Pull Requests Artifacts for Testing](https://www.orcaslicer.com/wiki/how_to_download_pr_artifacts)
119 lines
3.6 KiB
JSON
119 lines
3.6 KiB
JSON
{
|
|
"type": "process",
|
|
"name": "0.48mm Draft @Creality K1C",
|
|
"renamed_from": "0.48mm Draft @Creality K1C (0.8 nozzle)",
|
|
"inherits": "fdm_process_common_klipper",
|
|
"from": "system",
|
|
"setting_id": "qaiff3f8gSQ1GVj1",
|
|
"instantiation": "true",
|
|
"adaptive_layer_height": "0",
|
|
"reduce_crossing_wall": "0",
|
|
"max_travel_detour_distance": "0",
|
|
"bottom_surface_pattern": "monotonic",
|
|
"bottom_shell_layers": "3",
|
|
"bottom_shell_thickness": "0",
|
|
"bridge_flow": "1",
|
|
"bridge_speed": "30",
|
|
"brim_width": "5",
|
|
"brim_object_gap": "0.1",
|
|
"compatible_printers_condition": "",
|
|
"print_sequence": "by layer",
|
|
"default_acceleration": "12000",
|
|
"bridge_no_support": "0",
|
|
"draft_shield": "disabled",
|
|
"elefant_foot_compensation": "0.15",
|
|
"outer_wall_line_width": "0.82",
|
|
"outer_wall_speed": "120",
|
|
"outer_wall_acceleration": "5000",
|
|
"inner_wall_acceleration": "5000",
|
|
"wall_infill_order": "inner wall/outer wall/infill",
|
|
"line_width": "0.82",
|
|
"infill_direction": "45",
|
|
"sparse_infill_density": "15%",
|
|
"sparse_infill_pattern": "crosshatch",
|
|
"internal_bridge_support_thickness": "0.8",
|
|
"initial_layer_acceleration": "500",
|
|
"initial_layer_line_width": "0.7",
|
|
"initial_layer_print_height": "0.48",
|
|
"initial_layer_speed": "35",
|
|
"gap_infill_speed": "50",
|
|
"infill_combination": "0",
|
|
"sparse_infill_line_width": "0.85",
|
|
"infill_wall_overlap": "15%",
|
|
"sparse_infill_speed": "150",
|
|
"interface_shells": "0",
|
|
"ironing_flow": "10%",
|
|
"ironing_spacing": "0.15",
|
|
"ironing_speed": "30",
|
|
"ironing_type": "no ironing",
|
|
"layer_height": "0.48",
|
|
"reduce_infill_retraction": "1",
|
|
"filename_format": "{input_filename_base}_{filament_type[initial_tool]}_{print_time}.gcode",
|
|
"detect_overhang_wall": "1",
|
|
"overhang_1_4_speed": "0",
|
|
"overhang_2_4_speed": "50",
|
|
"overhang_3_4_speed": "25",
|
|
"overhang_4_4_speed": "5",
|
|
"only_one_wall_top": "1",
|
|
"inner_wall_line_width": "0.85",
|
|
"inner_wall_speed": "150",
|
|
"wall_loops": "3",
|
|
"print_settings_id": "",
|
|
"raft_layers": "0",
|
|
"seam_position": "aligned",
|
|
"seam_slope_conditional": "1",
|
|
"seam_slope_inner_walls": "1",
|
|
"seam_slope_entire_loop": "1",
|
|
"skirt_distance": "2",
|
|
"skirt_height": "1",
|
|
"skirt_loops": "0",
|
|
"minimum_sparse_infill_area": "15",
|
|
"internal_solid_infill_line_width": "0.82",
|
|
"internal_solid_infill_speed": "150",
|
|
"spiral_mode": "0",
|
|
"initial_layer_infill_speed": "55",
|
|
"standby_temperature_delta": "-5",
|
|
"enable_support": "0",
|
|
"resolution": "0.012",
|
|
"support_type": "normal(auto)",
|
|
"support_style": "default",
|
|
"support_on_build_plate_only": "0",
|
|
"support_top_z_distance": "0.2",
|
|
"support_bottom_z_distance": "0.2",
|
|
"support_filament": "0",
|
|
"support_line_width": "0.82",
|
|
"support_interface_loop_pattern": "0",
|
|
"support_interface_filament": "0",
|
|
"support_interface_top_layers": "2",
|
|
"support_interface_bottom_layers": "2",
|
|
"support_interface_spacing": "0.5",
|
|
"support_expansion": "0",
|
|
"support_interface_speed": "80",
|
|
"support_base_pattern": "default",
|
|
"support_base_pattern_spacing": "2.5",
|
|
"support_speed": "150",
|
|
"support_threshold_angle": "30",
|
|
"support_object_xy_distance": "0.35",
|
|
"tree_support_branch_diameter": "2",
|
|
"tree_support_branch_angle": "45",
|
|
"tree_support_wall_count": "1",
|
|
"detect_thin_wall": "0",
|
|
"top_surface_pattern": "monotonicline",
|
|
"top_surface_line_width": "0.82",
|
|
"top_surface_acceleration": "5000",
|
|
"top_surface_speed": "150",
|
|
"top_shell_layers": "3",
|
|
"top_shell_thickness": "0.6",
|
|
"travel_acceleration": "12000",
|
|
"travel_speed": "500",
|
|
"enable_prime_tower": "1",
|
|
"wipe_tower_no_sparse_layers": "0",
|
|
"prime_tower_width": "60",
|
|
"xy_hole_compensation": "0",
|
|
"xy_contour_compensation": "0",
|
|
"gcode_label_objects": "0",
|
|
"compatible_printers": [
|
|
"Creality K1C 0.8 nozzle"
|
|
]
|
|
}
|