fiberpath 0.5.4__tar.gz → 0.6.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- fiberpath-0.6.1/.github/dependabot.yml +122 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.github/workflows/backend-ci.yml +6 -23
- fiberpath-0.6.1/.github/workflows/ci-check.yml +152 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.github/workflows/dependency-audit.yml +0 -2
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.github/workflows/docs-ci.yml +5 -19
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.github/workflows/docs-deploy.yml +2 -2
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.github/workflows/gui-ci.yml +6 -16
- fiberpath-0.6.1/.github/workflows/gui-e2e-smoke.yml +199 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.github/workflows/gui-packaging.yml +6 -1
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.gitignore +8 -1
- fiberpath-0.6.1/CHANGELOG.md +145 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/PKG-INFO +4 -4
- {fiberpath-0.5.4 → fiberpath-0.6.1}/README.md +3 -3
- {fiberpath-0.5.4/planning → fiberpath-0.6.1}/TODO.md +8 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/architecture/axis-system.md +4 -9
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/development/ci-cd.md +2 -2
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/development/contributing.md +3 -3
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/development/dependency-policy.md +4 -4
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/development/packaging.md +2 -2
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/development/release-process.md +1 -1
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/development/tooling.md +12 -16
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/getting-started.md +0 -4
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/guides/axis-mapping.md +2 -5
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/guides/visualization.md +1 -4
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/guides/wind-format.md +20 -10
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/index.md +8 -8
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/reference/concepts.md +13 -4
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/troubleshooting.md +5 -10
- fiberpath-0.6.1/examples/rocketry/AvBay(470mm)single.wind +24 -0
- fiberpath-0.5.4/examples/rocketry/AvBay(470mm).wind → fiberpath-0.6.1/examples/rocketry/AvBay(470mm)triple.wind +4 -4
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/config/schemas.py +1 -1
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/planning/layer_strategies.py +1 -1
- fiberpath-0.6.1/fiberpath/planning/validators.py +149 -0
- fiberpath-0.6.1/fiberpath_api/path_policy.py +100 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/README.md +9 -7
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/docs/architecture/cli-integration.md +0 -29
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/docs/architecture/state-management.md +0 -33
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/docs/architecture/streaming-state.md +0 -15
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/docs/architecture/tech-stack.md +30 -56
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/docs/development.md +31 -52
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/docs/guides/performance.md +0 -33
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/docs/guides/schemas.md +0 -35
- fiberpath-0.6.1/fiberpath_gui/docs/guides/styling.md +192 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/docs/overview.md +6 -6
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/docs/reference/type-safety.md +0 -48
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/docs/testing.md +0 -30
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/package-lock.json +319 -1072
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/package.json +9 -12
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/schemas/wind-schema.json +5 -19
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/App.tsx +2 -2
- fiberpath-0.6.1/fiberpath_gui/src/components/ErrorBoundary.tsx +64 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/MenuBar.tsx +43 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/StatusBar.tsx +8 -11
- fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/ConnectionSection.css +71 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/ConnectionSection.tsx +32 -20
- fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/FileStreamingSection.css +124 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/FileStreamingSection.tsx +31 -27
- fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.css +99 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.tsx +28 -21
- fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/ManualControlSection.css +40 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/ManualControlSection.tsx +13 -18
- fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/StreamControls.css +8 -0
- fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/StreamLog.css +111 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/StreamLog.tsx +8 -6
- fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/StreamTab.css +74 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/StreamTab.tsx +4 -3
- fiberpath-0.6.1/fiberpath_gui/src/components/Toast/ToastContainer.css +73 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/Toast/ToastContainer.tsx +1 -1
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/dialogs/CliUnavailableDialog.tsx +5 -5
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/dialogs/DiagnosticsDialog.tsx +1 -2
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/layers/LayerStack.tsx +5 -4
- fiberpath-0.6.1/fiberpath_gui/src/hooks/useTheme.test.ts +115 -0
- fiberpath-0.6.1/fiberpath_gui/src/hooks/useTheme.ts +103 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/lib/validation.test.ts +1 -1
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/styles/buttons.css +102 -97
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/styles/canvas.css +20 -33
- fiberpath-0.6.1/fiberpath_gui/src/styles/dialogs.css +559 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/styles/forms.css +100 -133
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/styles/layout.css +153 -78
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/styles/notifications.css +29 -32
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/styles/panels.css +57 -26
- fiberpath-0.6.1/fiberpath_gui/src/styles/reset.css +29 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/styles/tokens.css +166 -111
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/styles/typography.css +1 -2
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/types/converters.test.ts +2 -2
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/types/converters.ts +1 -1
- fiberpath-0.6.1/fiberpath_gui/src/types/wind-schema.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/Cargo.lock +12 -9
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/Cargo.toml +3 -3
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/tauri.conf.json +1 -1
- {fiberpath-0.5.4 → fiberpath-0.6.1}/mkdocs.yml +2 -0
- fiberpath-0.6.1/planning/gui-framework-migration-evaluation-plan.md +159 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/planning/roadmap-backlog.md +0 -11
- {fiberpath-0.5.4 → fiberpath-0.6.1}/planning/roadmap-v7.md +13 -14
- {fiberpath-0.5.4 → fiberpath-0.6.1}/pyproject.toml +1 -1
- fiberpath-0.6.1/scripts/ci/e2e-check-artifacts.ps1 +55 -0
- fiberpath-0.6.1/scripts/ci/e2e-check-artifacts.sh +36 -0
- fiberpath-0.6.1/scripts/ci/e2e-cli-smoke.ps1 +52 -0
- fiberpath-0.6.1/scripts/ci/e2e-cli-smoke.sh +24 -0
- fiberpath-0.6.1/scripts/ci/extract-package-runtime.ps1 +61 -0
- fiberpath-0.6.1/scripts/ci/extract-package-runtime.sh +34 -0
- fiberpath-0.6.1/scripts/ci/find-bundled-cli.ps1 +60 -0
- fiberpath-0.6.1/scripts/ci/find-bundled-cli.sh +30 -0
- fiberpath-0.6.1/tests/planning/fixtures/helical_layer.gcode +4525 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/planning/test_layer_strategies.py +1 -1
- fiberpath-0.6.1/tests/planning/test_validators.py +98 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/uv.lock +7 -7
- fiberpath-0.5.4/.github/dependabot.yml +0 -40
- fiberpath-0.5.4/CHANGELOG.md +0 -87
- fiberpath-0.5.4/fiberpath/planning/validators.py +0 -66
- fiberpath-0.5.4/fiberpath_api/path_policy.py +0 -74
- fiberpath-0.5.4/fiberpath_gui/docs/guides/styling.md +0 -606
- fiberpath-0.5.4/fiberpath_gui/src/components/ErrorBoundary.tsx +0 -100
- fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/ConnectionSection.css +0 -138
- fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/FileStreamingSection.css +0 -271
- fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.css +0 -156
- fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/ManualControlSection.css +0 -128
- fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/StreamControls.css +0 -19
- fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/StreamLog.css +0 -184
- fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/StreamTab.css +0 -76
- fiberpath-0.5.4/fiberpath_gui/src/components/Toast/ToastContainer.css +0 -99
- fiberpath-0.5.4/fiberpath_gui/src/styles/dialogs.css +0 -551
- fiberpath-0.5.4/fiberpath_gui/src/styles/reset.css +0 -55
- fiberpath-0.5.4/fiberpath_gui/src/types/wind-schema.ts +0 -72
- fiberpath-0.5.4/planning/OUTSTANDING_VALIDATION.md +0 -83
- fiberpath-0.5.4/planning/RELEASE_HISTORY.md +0 -39
- fiberpath-0.5.4/planning/ROADMAP_STATUS.md +0 -53
- fiberpath-0.5.4/planning/roadmap-v5.1.md +0 -187
- fiberpath-0.5.4/planning/roadmap-v5.2.md +0 -32
- fiberpath-0.5.4/planning/roadmap-v5.3.md +0 -180
- fiberpath-0.5.4/planning/roadmap-v5.4.md +0 -277
- fiberpath-0.5.4/planning/roadmap-v6.md +0 -109
- fiberpath-0.5.4/tests/planning/fixtures/helical_layer.gcode +0 -4525
- fiberpath-0.5.4/tests/planning/test_validators.py +0 -47
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.gitattributes +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.github/actions/setup-node/action.yml +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.github/actions/setup-python/action.yml +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.github/actions/setup-rust/action.yml +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.github/workflows/release.yml +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.vscode/extensions.json +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/.vscode/settings.json +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/LICENSE +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/architecture/overview.md +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/guides/marlin-streaming.md +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/reference/api.md +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/reference/planner-math.md +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/docs/vm-testing.md +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/examples/README.md +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/examples/complex_surface/README.md +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/examples/multi_layer/README.md +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/examples/multi_layer/input.wind +0 -0
- /fiberpath-0.5.4/examples/rocketry/AvBay(470mm).gcode → /fiberpath-0.6.1/examples/rocketry/AvBay(470mm)triple.gcode +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/examples/rocketry/CarbonMotorTube(1295mm).gcode +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/examples/rocketry/CarbonMotorTube(1295mm).wind +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/examples/rocketry/MainChute(585mm).gcode +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/examples/rocketry/MainChute(585mm).wind +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/examples/simple_cylinder/README.md +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/examples/simple_cylinder/input.wind +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/examples/sized_simple_cylinder/README.md +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/examples/sized_simple_cylinder/input.wind +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/__init__.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/config/__init__.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/config/validator.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/execution/__init__.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/execution/marlin.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/gcode/__init__.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/gcode/dialects.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/gcode/generator.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/geometry/__init__.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/geometry/curves.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/geometry/intersections.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/geometry/surfaces.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/math_utils.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/planning/__init__.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/planning/calculations.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/planning/exceptions.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/planning/helpers.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/planning/machine.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/planning/planner.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/simulation/__init__.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/simulation/simulator.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/visualization/__init__.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/visualization/export_json.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath/visualization/plotter.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_api/__init__.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_api/main.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_api/package-lock.json +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_api/routes/__init__.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_api/routes/plan.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_api/routes/simulate.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_api/routes/stream.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_api/routes/validate.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_api/schemas.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_cli/__init__.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_cli/__main__.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_cli/interactive.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_cli/main.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_cli/output.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_cli/plan.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_cli/plot.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_cli/simulate.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_cli/stream.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_cli/validate.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/.gitignore +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/.nvmrc +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/.stylelintrc.json +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/bundled-cli/.gitkeep +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/generate-types.json +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/index.html +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/scripts/check-css-vars.mjs +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/CliHealthWarning.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/ErrorNotificationToast.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/FileField.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/ResultCard.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/StatusText.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/StreamControls.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/index.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/TabBar.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/canvas/CanvasControls.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/canvas/CenterCanvas.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/canvas/LayerScrubber.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/canvas/VisualizationCanvas.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/dialogs/AboutDialog.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/dialogs/ExportConfirmationDialog.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/editors/HelicalLayerEditor.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/editors/HoopLayerEditor.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/editors/SkipLayerEditor.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/forms/MachineSettingsForm.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/forms/MandrelForm.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/forms/TowForm.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/layers/LayerRow.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/panels/BottomPanel.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/panels/LeftPanel.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/panels/RightPanel.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/tabs/MainTab.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/components/tabs/StreamTab.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/contexts/CliHealthContext.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/contexts/ErrorNotificationContext.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/hooks/useCliHealth.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/hooks/useKeyboardShortcuts.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/hooks/useStreamEvents.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/layouts/MainLayout.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/lib/commands.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/lib/constants.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/lib/fileOperations.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/lib/marlin-api.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/lib/recentFiles.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/lib/retry.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/lib/schemas.test.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/lib/schemas.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/lib/tauri-types.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/lib/toastMessages.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/lib/validation.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/main.tsx +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/state/projectStore.test.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/state/projectStore.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/stores/streamStore.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/stores/toastStore.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/styles/index.css +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/styles/tabs.css +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/tests/integration/workflows.test.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/tests/setup.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/types/components.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src/types/project.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/build.rs +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/capabilities/default.json +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/128x128.png +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/256x256.png +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/32x32.png +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/512x512.png +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/icon.ico +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/src/cli_path.rs +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/src/cli_process.rs +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/src/main.rs +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/src/marlin.rs +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/tsconfig.json +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/tsconfig.node.json +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/vite.config.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/fiberpath_gui/vitest.config.ts +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/package-lock.json +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/scripts/export_schema.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/scripts/freeze_cli.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/scripts/generate_schema.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/scripts/sync_gui_docs.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/setup.cfg +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/api/test_plan_route.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/api/test_simulate_route.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/api/test_stream_route.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/api/test_stream_route_errors.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/cli/test_axis_format.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/cli/test_cli_json.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/cli/test_cli_smoke.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/cli/test_stream_command.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/config/__init__.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/config/test_validator.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/cyclone_reference_runs/inputs/helical-balanced.wind +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/cyclone_reference_runs/inputs/simple-hoop.wind +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/cyclone_reference_runs/inputs/skip-bias.wind +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/helical-balanced/output.gcode +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/helical-balanced/preview.png +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/simple-hoop/output.gcode +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/simple-hoop/preview.png +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/skip-bias/output.gcode +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/skip-bias/preview.png +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/execution/test_marlin_streamer.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/gcode/test_dialects.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/gcode/test_generator.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/geometry/test_surfaces.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/planning/_generate_fixtures.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/planning/fixtures/hoop_layer.gcode +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/planning/fixtures/hoop_only_program.gcode +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/planning/fixtures/skip_layer.gcode +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/planning/test_axis_mapping.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/planning/test_helpers_machine.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/planning/test_planner_smoke.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/simulation/test_simulator.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/simulation/test_simulator_axis_detection.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/tauri/test_marlin_integration.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/tauri/test_port_discovery.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/visualization/test_export_json.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/visualization/test_plotter.py +0 -0
- {fiberpath-0.5.4 → fiberpath-0.6.1}/tests/visualization/test_plotter_axis_detection.py +0 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
- package-ecosystem: "pip"
|
|
4
|
+
directory: "/"
|
|
5
|
+
target-branch: "main"
|
|
6
|
+
schedule:
|
|
7
|
+
interval: "weekly"
|
|
8
|
+
day: "monday"
|
|
9
|
+
time: "06:00"
|
|
10
|
+
timezone: "UTC"
|
|
11
|
+
open-pull-requests-limit: 8
|
|
12
|
+
labels:
|
|
13
|
+
- "dependencies"
|
|
14
|
+
- "python"
|
|
15
|
+
commit-message:
|
|
16
|
+
prefix: "chore(deps)"
|
|
17
|
+
groups:
|
|
18
|
+
python-minor-patch:
|
|
19
|
+
patterns:
|
|
20
|
+
- "*"
|
|
21
|
+
update-types:
|
|
22
|
+
- "minor"
|
|
23
|
+
- "patch"
|
|
24
|
+
python-major:
|
|
25
|
+
patterns:
|
|
26
|
+
- "*"
|
|
27
|
+
update-types:
|
|
28
|
+
- "major"
|
|
29
|
+
|
|
30
|
+
- package-ecosystem: "npm"
|
|
31
|
+
directory: "/fiberpath_gui"
|
|
32
|
+
target-branch: "main"
|
|
33
|
+
schedule:
|
|
34
|
+
interval: "weekly"
|
|
35
|
+
day: "monday"
|
|
36
|
+
time: "06:15"
|
|
37
|
+
timezone: "UTC"
|
|
38
|
+
open-pull-requests-limit: 8
|
|
39
|
+
labels:
|
|
40
|
+
- "dependencies"
|
|
41
|
+
- "gui"
|
|
42
|
+
- "node"
|
|
43
|
+
commit-message:
|
|
44
|
+
prefix: "chore(deps)"
|
|
45
|
+
groups:
|
|
46
|
+
npm-dev-minor-patch:
|
|
47
|
+
dependency-type: "development"
|
|
48
|
+
patterns:
|
|
49
|
+
- "*"
|
|
50
|
+
update-types:
|
|
51
|
+
- "minor"
|
|
52
|
+
- "patch"
|
|
53
|
+
npm-prod-minor-patch:
|
|
54
|
+
dependency-type: "production"
|
|
55
|
+
patterns:
|
|
56
|
+
- "*"
|
|
57
|
+
update-types:
|
|
58
|
+
- "minor"
|
|
59
|
+
- "patch"
|
|
60
|
+
npm-major:
|
|
61
|
+
patterns:
|
|
62
|
+
- "*"
|
|
63
|
+
update-types:
|
|
64
|
+
- "major"
|
|
65
|
+
ignore:
|
|
66
|
+
- dependency-name: "@types/node"
|
|
67
|
+
versions: ["25.x"]
|
|
68
|
+
|
|
69
|
+
- package-ecosystem: "cargo"
|
|
70
|
+
directory: "/fiberpath_gui/src-tauri"
|
|
71
|
+
target-branch: "main"
|
|
72
|
+
schedule:
|
|
73
|
+
interval: "weekly"
|
|
74
|
+
day: "monday"
|
|
75
|
+
time: "06:30"
|
|
76
|
+
timezone: "UTC"
|
|
77
|
+
open-pull-requests-limit: 8
|
|
78
|
+
labels:
|
|
79
|
+
- "dependencies"
|
|
80
|
+
- "rust"
|
|
81
|
+
- "tauri"
|
|
82
|
+
commit-message:
|
|
83
|
+
prefix: "chore(deps)"
|
|
84
|
+
groups:
|
|
85
|
+
cargo-minor-patch:
|
|
86
|
+
patterns:
|
|
87
|
+
- "*"
|
|
88
|
+
update-types:
|
|
89
|
+
- "minor"
|
|
90
|
+
- "patch"
|
|
91
|
+
cargo-major:
|
|
92
|
+
patterns:
|
|
93
|
+
- "*"
|
|
94
|
+
update-types:
|
|
95
|
+
- "major"
|
|
96
|
+
|
|
97
|
+
- package-ecosystem: "github-actions"
|
|
98
|
+
directory: "/"
|
|
99
|
+
target-branch: "main"
|
|
100
|
+
schedule:
|
|
101
|
+
interval: "weekly"
|
|
102
|
+
day: "monday"
|
|
103
|
+
time: "06:45"
|
|
104
|
+
timezone: "UTC"
|
|
105
|
+
open-pull-requests-limit: 8
|
|
106
|
+
labels:
|
|
107
|
+
- "dependencies"
|
|
108
|
+
- "ci"
|
|
109
|
+
commit-message:
|
|
110
|
+
prefix: "chore(deps)"
|
|
111
|
+
groups:
|
|
112
|
+
github-actions-minor-patch:
|
|
113
|
+
patterns:
|
|
114
|
+
- "*"
|
|
115
|
+
update-types:
|
|
116
|
+
- "minor"
|
|
117
|
+
- "patch"
|
|
118
|
+
github-actions-major:
|
|
119
|
+
patterns:
|
|
120
|
+
- "*"
|
|
121
|
+
update-types:
|
|
122
|
+
- "major"
|
|
@@ -1,28 +1,11 @@
|
|
|
1
1
|
name: Backend CI
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
- "fiberpath_cli/**"
|
|
10
|
-
- "tests/**"
|
|
11
|
-
- "pyproject.toml"
|
|
12
|
-
- "uv.lock"
|
|
13
|
-
- "setup.cfg"
|
|
14
|
-
- ".github/workflows/backend-ci.yml"
|
|
15
|
-
- ".github/actions/setup-python/**"
|
|
16
|
-
pull_request:
|
|
17
|
-
paths:
|
|
18
|
-
- "fiberpath/**"
|
|
19
|
-
- "fiberpath_api/**"
|
|
20
|
-
- "fiberpath_cli/**"
|
|
21
|
-
- "tests/**"
|
|
22
|
-
- "pyproject.toml"
|
|
23
|
-
- "setup.cfg"
|
|
24
|
-
- ".github/workflows/backend-ci.yml"
|
|
25
|
-
- ".github/actions/setup-python/**"
|
|
4
|
+
workflow_call:
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
26
9
|
|
|
27
10
|
jobs:
|
|
28
11
|
lint-and-type-check:
|
|
@@ -69,7 +52,7 @@ jobs:
|
|
|
69
52
|
|
|
70
53
|
- name: Upload coverage
|
|
71
54
|
if: matrix.os == 'ubuntu-latest'
|
|
72
|
-
uses: codecov/codecov-action@
|
|
55
|
+
uses: codecov/codecov-action@v6
|
|
73
56
|
with:
|
|
74
57
|
files: ./coverage.xml
|
|
75
58
|
flags: backend
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
name: CI Check
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths:
|
|
7
|
+
- "fiberpath/**"
|
|
8
|
+
- "fiberpath_api/**"
|
|
9
|
+
- "fiberpath_cli/**"
|
|
10
|
+
- "fiberpath_gui/**"
|
|
11
|
+
- "docs/**"
|
|
12
|
+
- "tests/**"
|
|
13
|
+
- "pyproject.toml"
|
|
14
|
+
- "uv.lock"
|
|
15
|
+
- "setup.cfg"
|
|
16
|
+
- "mkdocs.yml"
|
|
17
|
+
- "README.md"
|
|
18
|
+
- "scripts/sync_gui_docs.py"
|
|
19
|
+
- ".github/workflows/ci-check.yml"
|
|
20
|
+
- ".github/workflows/backend-ci.yml"
|
|
21
|
+
- ".github/workflows/gui-ci.yml"
|
|
22
|
+
- ".github/workflows/docs-ci.yml"
|
|
23
|
+
- ".github/actions/setup-python/**"
|
|
24
|
+
- ".github/actions/setup-node/**"
|
|
25
|
+
- ".github/actions/setup-rust/**"
|
|
26
|
+
pull_request:
|
|
27
|
+
branches: [main]
|
|
28
|
+
paths:
|
|
29
|
+
- "fiberpath/**"
|
|
30
|
+
- "fiberpath_api/**"
|
|
31
|
+
- "fiberpath_cli/**"
|
|
32
|
+
- "fiberpath_gui/**"
|
|
33
|
+
- "docs/**"
|
|
34
|
+
- "tests/**"
|
|
35
|
+
- "pyproject.toml"
|
|
36
|
+
- "uv.lock"
|
|
37
|
+
- "setup.cfg"
|
|
38
|
+
- "mkdocs.yml"
|
|
39
|
+
- "README.md"
|
|
40
|
+
- "scripts/sync_gui_docs.py"
|
|
41
|
+
- ".github/workflows/ci-check.yml"
|
|
42
|
+
- ".github/workflows/backend-ci.yml"
|
|
43
|
+
- ".github/workflows/gui-ci.yml"
|
|
44
|
+
- ".github/workflows/docs-ci.yml"
|
|
45
|
+
- ".github/actions/setup-python/**"
|
|
46
|
+
- ".github/actions/setup-node/**"
|
|
47
|
+
- ".github/actions/setup-rust/**"
|
|
48
|
+
workflow_dispatch:
|
|
49
|
+
|
|
50
|
+
permissions:
|
|
51
|
+
contents: read
|
|
52
|
+
|
|
53
|
+
jobs:
|
|
54
|
+
changes:
|
|
55
|
+
name: Detect Changes
|
|
56
|
+
runs-on: ubuntu-latest
|
|
57
|
+
outputs:
|
|
58
|
+
backend: ${{ steps.filter.outputs.backend }}
|
|
59
|
+
gui: ${{ steps.filter.outputs.gui }}
|
|
60
|
+
docs: ${{ steps.filter.outputs.docs }}
|
|
61
|
+
steps:
|
|
62
|
+
- name: Checkout repository
|
|
63
|
+
uses: actions/checkout@v6
|
|
64
|
+
|
|
65
|
+
- name: Detect changed areas
|
|
66
|
+
id: filter
|
|
67
|
+
uses: dorny/paths-filter@v3
|
|
68
|
+
with:
|
|
69
|
+
filters: |
|
|
70
|
+
backend:
|
|
71
|
+
- "fiberpath/**"
|
|
72
|
+
- "fiberpath_api/**"
|
|
73
|
+
- "fiberpath_cli/**"
|
|
74
|
+
- "tests/**"
|
|
75
|
+
- "pyproject.toml"
|
|
76
|
+
- "uv.lock"
|
|
77
|
+
- "setup.cfg"
|
|
78
|
+
- ".github/workflows/backend-ci.yml"
|
|
79
|
+
- ".github/actions/setup-python/**"
|
|
80
|
+
gui:
|
|
81
|
+
- "fiberpath_gui/**"
|
|
82
|
+
- "!fiberpath_gui/docs/**"
|
|
83
|
+
- ".github/workflows/gui-ci.yml"
|
|
84
|
+
- ".github/actions/setup-node/**"
|
|
85
|
+
- ".github/actions/setup-rust/**"
|
|
86
|
+
docs:
|
|
87
|
+
- "docs/**"
|
|
88
|
+
- "fiberpath_gui/docs/**"
|
|
89
|
+
- "mkdocs.yml"
|
|
90
|
+
- "scripts/sync_gui_docs.py"
|
|
91
|
+
- "README.md"
|
|
92
|
+
- ".github/workflows/docs-ci.yml"
|
|
93
|
+
- ".github/actions/setup-python/**"
|
|
94
|
+
|
|
95
|
+
backend:
|
|
96
|
+
name: Backend
|
|
97
|
+
needs: changes
|
|
98
|
+
if: needs.changes.outputs.backend == 'true'
|
|
99
|
+
uses: ./.github/workflows/backend-ci.yml
|
|
100
|
+
|
|
101
|
+
gui:
|
|
102
|
+
name: GUI
|
|
103
|
+
needs: changes
|
|
104
|
+
if: needs.changes.outputs.gui == 'true'
|
|
105
|
+
uses: ./.github/workflows/gui-ci.yml
|
|
106
|
+
|
|
107
|
+
docs:
|
|
108
|
+
name: Docs
|
|
109
|
+
needs: changes
|
|
110
|
+
if: needs.changes.outputs.docs == 'true'
|
|
111
|
+
uses: ./.github/workflows/docs-ci.yml
|
|
112
|
+
|
|
113
|
+
ci-check:
|
|
114
|
+
name: CI Check
|
|
115
|
+
runs-on: ubuntu-latest
|
|
116
|
+
needs: [changes, backend, gui, docs]
|
|
117
|
+
if: always()
|
|
118
|
+
steps:
|
|
119
|
+
- name: Verify called workflow results
|
|
120
|
+
run: |
|
|
121
|
+
echo "changes=${{ needs.changes.result }}"
|
|
122
|
+
echo "backend=${{ needs.backend.result }}"
|
|
123
|
+
echo "gui=${{ needs.gui.result }}"
|
|
124
|
+
echo "docs=${{ needs.docs.result }}"
|
|
125
|
+
|
|
126
|
+
FAIL=0
|
|
127
|
+
|
|
128
|
+
if [[ "${{ needs.changes.result }}" != "success" ]]; then
|
|
129
|
+
echo "Change detection did not succeed"
|
|
130
|
+
FAIL=1
|
|
131
|
+
fi
|
|
132
|
+
|
|
133
|
+
if [[ "${{ needs.backend.result }}" == "failure" || "${{ needs.backend.result }}" == "cancelled" ]]; then
|
|
134
|
+
echo "Backend workflow failed"
|
|
135
|
+
FAIL=1
|
|
136
|
+
fi
|
|
137
|
+
|
|
138
|
+
if [[ "${{ needs.gui.result }}" == "failure" || "${{ needs.gui.result }}" == "cancelled" ]]; then
|
|
139
|
+
echo "GUI workflow failed"
|
|
140
|
+
FAIL=1
|
|
141
|
+
fi
|
|
142
|
+
|
|
143
|
+
if [[ "${{ needs.docs.result }}" == "failure" || "${{ needs.docs.result }}" == "cancelled" ]]; then
|
|
144
|
+
echo "Docs workflow failed"
|
|
145
|
+
FAIL=1
|
|
146
|
+
fi
|
|
147
|
+
|
|
148
|
+
if [[ "$FAIL" -ne 0 ]]; then
|
|
149
|
+
exit 1
|
|
150
|
+
fi
|
|
151
|
+
|
|
152
|
+
echo "CI Check passed"
|
|
@@ -1,25 +1,11 @@
|
|
|
1
1
|
name: Docs CI
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
- "mkdocs.yml"
|
|
10
|
-
- "scripts/sync_gui_docs.py"
|
|
11
|
-
- "README.md"
|
|
12
|
-
- ".github/workflows/docs-ci.yml"
|
|
13
|
-
- ".github/actions/setup-python/**"
|
|
14
|
-
pull_request:
|
|
15
|
-
paths:
|
|
16
|
-
- "docs/**"
|
|
17
|
-
- "fiberpath_gui/docs/**"
|
|
18
|
-
- "mkdocs.yml"
|
|
19
|
-
- "scripts/sync_gui_docs.py"
|
|
20
|
-
- "README.md"
|
|
21
|
-
- ".github/workflows/docs-ci.yml"
|
|
22
|
-
- ".github/actions/setup-python/**"
|
|
4
|
+
workflow_call:
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
23
9
|
|
|
24
10
|
jobs:
|
|
25
11
|
validate:
|
|
@@ -33,7 +33,7 @@ jobs:
|
|
|
33
33
|
|
|
34
34
|
- name: Configure GitHub Pages
|
|
35
35
|
id: pages
|
|
36
|
-
uses: actions/configure-pages@
|
|
36
|
+
uses: actions/configure-pages@v6
|
|
37
37
|
|
|
38
38
|
- name: Setup Python environment
|
|
39
39
|
uses: ./.github/actions/setup-python
|
|
@@ -61,4 +61,4 @@ jobs:
|
|
|
61
61
|
steps:
|
|
62
62
|
- name: Deploy to GitHub Pages
|
|
63
63
|
id: deployment
|
|
64
|
-
uses: actions/deploy-pages@
|
|
64
|
+
uses: actions/deploy-pages@v5
|
|
@@ -1,21 +1,11 @@
|
|
|
1
1
|
name: GUI CI
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
- ".github/workflows/gui-ci.yml"
|
|
10
|
-
- ".github/actions/setup-node/**"
|
|
11
|
-
- ".github/actions/setup-rust/**"
|
|
12
|
-
pull_request:
|
|
13
|
-
paths:
|
|
14
|
-
- "fiberpath_gui/**"
|
|
15
|
-
- "!fiberpath_gui/docs/**"
|
|
16
|
-
- ".github/workflows/gui-ci.yml"
|
|
17
|
-
- ".github/actions/setup-node/**"
|
|
18
|
-
- ".github/actions/setup-rust/**"
|
|
4
|
+
workflow_call:
|
|
5
|
+
workflow_dispatch:
|
|
6
|
+
|
|
7
|
+
permissions:
|
|
8
|
+
contents: read
|
|
19
9
|
|
|
20
10
|
jobs:
|
|
21
11
|
lint-and-type-check:
|
|
@@ -69,7 +59,7 @@ jobs:
|
|
|
69
59
|
run: npm run test:coverage
|
|
70
60
|
|
|
71
61
|
- name: Upload coverage
|
|
72
|
-
uses: codecov/codecov-action@
|
|
62
|
+
uses: codecov/codecov-action@v6
|
|
73
63
|
with:
|
|
74
64
|
files: ./fiberpath_gui/coverage/lcov.info
|
|
75
65
|
flags: gui
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
name: GUI E2E Smoke
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_run:
|
|
5
|
+
workflows: ["GUI Packaging"]
|
|
6
|
+
types: [completed]
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
inputs:
|
|
9
|
+
packaging_run_id:
|
|
10
|
+
description: "Run ID of GUI Packaging workflow to validate"
|
|
11
|
+
required: true
|
|
12
|
+
type: string
|
|
13
|
+
|
|
14
|
+
permissions:
|
|
15
|
+
contents: read
|
|
16
|
+
actions: read
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
smoke:
|
|
20
|
+
if: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') }}
|
|
21
|
+
name: Smoke (${{ matrix.os }})
|
|
22
|
+
runs-on: ${{ matrix.os }}
|
|
23
|
+
strategy:
|
|
24
|
+
fail-fast: false
|
|
25
|
+
matrix:
|
|
26
|
+
include:
|
|
27
|
+
- os: windows-latest
|
|
28
|
+
artifact_os: windows-latest
|
|
29
|
+
- os: ubuntu-latest
|
|
30
|
+
artifact_os: ubuntu-latest
|
|
31
|
+
- os: macos-latest
|
|
32
|
+
artifact_os: macos-latest
|
|
33
|
+
|
|
34
|
+
env:
|
|
35
|
+
PACKAGING_RUN_ID: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.id || github.event.inputs.packaging_run_id }}
|
|
36
|
+
WIND_INPUT: examples/simple_cylinder/input.wind
|
|
37
|
+
|
|
38
|
+
steps:
|
|
39
|
+
- name: Checkout repository
|
|
40
|
+
uses: actions/checkout@v6
|
|
41
|
+
|
|
42
|
+
- name: Download packaged GUI artifact
|
|
43
|
+
uses: actions/download-artifact@v8
|
|
44
|
+
with:
|
|
45
|
+
run-id: ${{ env.PACKAGING_RUN_ID }}
|
|
46
|
+
name: fiberpath-gui-${{ matrix.artifact_os }}
|
|
47
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
48
|
+
path: e2e-artifacts/bundle
|
|
49
|
+
|
|
50
|
+
- name: Download frozen CLI artifact
|
|
51
|
+
uses: actions/download-artifact@v8
|
|
52
|
+
with:
|
|
53
|
+
run-id: ${{ env.PACKAGING_RUN_ID }}
|
|
54
|
+
name: fiberpath-cli-${{ matrix.artifact_os }}
|
|
55
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
56
|
+
path: e2e-artifacts/cli
|
|
57
|
+
|
|
58
|
+
- name: Set executable bits (Unix)
|
|
59
|
+
if: runner.os != 'Windows'
|
|
60
|
+
shell: bash
|
|
61
|
+
run: |
|
|
62
|
+
chmod +x scripts/ci/e2e-check-artifacts.sh
|
|
63
|
+
chmod +x scripts/ci/e2e-cli-smoke.sh
|
|
64
|
+
chmod +x scripts/ci/extract-package-runtime.sh
|
|
65
|
+
chmod +x scripts/ci/find-bundled-cli.sh
|
|
66
|
+
chmod +x e2e-artifacts/cli/fiberpath
|
|
67
|
+
|
|
68
|
+
- name: Check packaged artifacts (Windows)
|
|
69
|
+
if: runner.os == 'Windows'
|
|
70
|
+
shell: pwsh
|
|
71
|
+
run: |
|
|
72
|
+
./scripts/ci/e2e-check-artifacts.ps1 -BundleRoot "e2e-artifacts/bundle" -RunnerOs "$env:RUNNER_OS"
|
|
73
|
+
|
|
74
|
+
- name: Check packaged artifacts (Unix)
|
|
75
|
+
if: runner.os != 'Windows'
|
|
76
|
+
shell: bash
|
|
77
|
+
run: |
|
|
78
|
+
./scripts/ci/e2e-check-artifacts.sh "e2e-artifacts/bundle" "$RUNNER_OS"
|
|
79
|
+
|
|
80
|
+
- name: Extract package runtime payload (Windows)
|
|
81
|
+
if: runner.os == 'Windows'
|
|
82
|
+
shell: pwsh
|
|
83
|
+
run: |
|
|
84
|
+
$runtimeRoot = ./scripts/ci/extract-package-runtime.ps1 `
|
|
85
|
+
-BundleRoot "e2e-artifacts/bundle" `
|
|
86
|
+
-OutputRoot "e2e-artifacts/runtime/windows"
|
|
87
|
+
$resolvedRuntimeRoot = ($runtimeRoot | Select-Object -Last 1)
|
|
88
|
+
New-Item -ItemType Directory -Force -Path "e2e-artifacts/diagnostics" | Out-Null
|
|
89
|
+
@(
|
|
90
|
+
"runner_os=$env:RUNNER_OS",
|
|
91
|
+
"runtime_root=$resolvedRuntimeRoot"
|
|
92
|
+
) | Set-Content -Path "e2e-artifacts/diagnostics/runtime-selection.txt"
|
|
93
|
+
"PACKAGE_RUNTIME_ROOT=$resolvedRuntimeRoot" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
|
94
|
+
|
|
95
|
+
- name: Extract package runtime payload (Unix)
|
|
96
|
+
if: runner.os != 'Windows'
|
|
97
|
+
shell: bash
|
|
98
|
+
run: |
|
|
99
|
+
runtime_root="$(./scripts/ci/extract-package-runtime.sh "e2e-artifacts/bundle" "$RUNNER_OS" "e2e-artifacts/runtime/$RUNNER_OS")"
|
|
100
|
+
mkdir -p e2e-artifacts/diagnostics
|
|
101
|
+
{
|
|
102
|
+
printf 'runner_os=%s\n' "$RUNNER_OS"
|
|
103
|
+
printf 'runtime_root=%s\n' "$runtime_root"
|
|
104
|
+
} > e2e-artifacts/diagnostics/runtime-selection.txt
|
|
105
|
+
printf 'PACKAGE_RUNTIME_ROOT=%s\n' "$runtime_root" >> "$GITHUB_ENV"
|
|
106
|
+
|
|
107
|
+
- name: Resolve bundled CLI from package output (Windows)
|
|
108
|
+
if: runner.os == 'Windows'
|
|
109
|
+
shell: pwsh
|
|
110
|
+
run: |
|
|
111
|
+
$resolved = ./scripts/ci/find-bundled-cli.ps1 `
|
|
112
|
+
-BundleRoot "$env:PACKAGE_RUNTIME_ROOT" `
|
|
113
|
+
-RunnerOs "$env:RUNNER_OS" `
|
|
114
|
+
-ReferenceCliPath "e2e-artifacts/cli/fiberpath.exe"
|
|
115
|
+
$resolvedPath = ""
|
|
116
|
+
if ($resolved) {
|
|
117
|
+
$resolvedPath = ($resolved | Select-Object -Last 1)
|
|
118
|
+
}
|
|
119
|
+
"BUNDLED_CLI_PATH=$resolvedPath" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
|
120
|
+
|
|
121
|
+
- name: Resolve bundled CLI from package output (Unix)
|
|
122
|
+
if: runner.os != 'Windows'
|
|
123
|
+
shell: bash
|
|
124
|
+
run: |
|
|
125
|
+
resolved="$(./scripts/ci/find-bundled-cli.sh "$PACKAGE_RUNTIME_ROOT" "$RUNNER_OS")"
|
|
126
|
+
printf 'BUNDLED_CLI_PATH=%s\n' "$resolved" >> "$GITHUB_ENV"
|
|
127
|
+
|
|
128
|
+
- name: Select CLI source (Windows)
|
|
129
|
+
if: runner.os == 'Windows'
|
|
130
|
+
shell: pwsh
|
|
131
|
+
run: |
|
|
132
|
+
if (-not $env:BUNDLED_CLI_PATH) {
|
|
133
|
+
throw "Bundled CLI was not resolved from packaged Windows output; refusing standalone fallback."
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
$effectiveCliPath = $env:BUNDLED_CLI_PATH
|
|
137
|
+
$cliSource = "packaged-output"
|
|
138
|
+
New-Item -ItemType Directory -Force -Path "e2e-artifacts/diagnostics" | Out-Null
|
|
139
|
+
@(
|
|
140
|
+
"runner_os=$env:RUNNER_OS",
|
|
141
|
+
"cli_source=$cliSource",
|
|
142
|
+
"effective_cli_path=$effectiveCliPath",
|
|
143
|
+
"bundled_cli_path=$env:BUNDLED_CLI_PATH"
|
|
144
|
+
) | Set-Content -Path "e2e-artifacts/diagnostics/cli-selection.txt"
|
|
145
|
+
"EFFECTIVE_CLI_PATH=$effectiveCliPath" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
|
146
|
+
"CLI_SOURCE=$cliSource" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
|
147
|
+
|
|
148
|
+
- name: Select CLI source (Unix)
|
|
149
|
+
if: runner.os != 'Windows'
|
|
150
|
+
shell: bash
|
|
151
|
+
run: |
|
|
152
|
+
effective_cli_path="e2e-artifacts/cli/fiberpath"
|
|
153
|
+
cli_source="standalone-artifact"
|
|
154
|
+
if [[ -n "$BUNDLED_CLI_PATH" ]]; then
|
|
155
|
+
effective_cli_path="$BUNDLED_CLI_PATH"
|
|
156
|
+
cli_source="packaged-output"
|
|
157
|
+
else
|
|
158
|
+
echo "Warning: falling back to standalone CLI artifact because bundled CLI is not directly discoverable in packaged output." >&2
|
|
159
|
+
fi
|
|
160
|
+
mkdir -p e2e-artifacts/diagnostics
|
|
161
|
+
{
|
|
162
|
+
printf 'runner_os=%s\n' "$RUNNER_OS"
|
|
163
|
+
printf 'cli_source=%s\n' "$cli_source"
|
|
164
|
+
printf 'effective_cli_path=%s\n' "$effective_cli_path"
|
|
165
|
+
printf 'bundled_cli_path=%s\n' "$BUNDLED_CLI_PATH"
|
|
166
|
+
} > e2e-artifacts/diagnostics/cli-selection.txt
|
|
167
|
+
# Ensure the resolved binary is executable (artifact download may strip exec bit)
|
|
168
|
+
[[ -f "$effective_cli_path" ]] && chmod +x "$effective_cli_path"
|
|
169
|
+
printf 'EFFECTIVE_CLI_PATH=%s\n' "$effective_cli_path" >> "$GITHUB_ENV"
|
|
170
|
+
printf 'CLI_SOURCE=%s\n' "$cli_source" >> "$GITHUB_ENV"
|
|
171
|
+
|
|
172
|
+
- name: CLI smoke test (Windows)
|
|
173
|
+
if: runner.os == 'Windows'
|
|
174
|
+
shell: pwsh
|
|
175
|
+
run: |
|
|
176
|
+
./scripts/ci/e2e-cli-smoke.ps1 `
|
|
177
|
+
-CliPath "$env:EFFECTIVE_CLI_PATH" `
|
|
178
|
+
-WindPath "$env:WIND_INPUT" `
|
|
179
|
+
-OutputPath "e2e-artifacts/output/smoke-output.gcode"
|
|
180
|
+
|
|
181
|
+
- name: CLI smoke test (Unix)
|
|
182
|
+
if: runner.os != 'Windows'
|
|
183
|
+
shell: bash
|
|
184
|
+
run: |
|
|
185
|
+
./scripts/ci/e2e-cli-smoke.sh \
|
|
186
|
+
"$EFFECTIVE_CLI_PATH" \
|
|
187
|
+
"$WIND_INPUT" \
|
|
188
|
+
"e2e-artifacts/output/smoke-output.gcode"
|
|
189
|
+
|
|
190
|
+
- name: Upload smoke output and diagnostics
|
|
191
|
+
uses: actions/upload-artifact@v7
|
|
192
|
+
with:
|
|
193
|
+
name: gui-e2e-smoke-${{ matrix.artifact_os }}
|
|
194
|
+
path: |
|
|
195
|
+
e2e-artifacts/output/smoke-output.gcode
|
|
196
|
+
e2e-artifacts/diagnostics/cli-selection.txt
|
|
197
|
+
e2e-artifacts/diagnostics/runtime-selection.txt
|
|
198
|
+
if-no-files-found: error
|
|
199
|
+
retention-days: 14
|
|
@@ -2,7 +2,7 @@ name: GUI Packaging
|
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
|
-
branches: [main
|
|
5
|
+
branches: [main]
|
|
6
6
|
paths:
|
|
7
7
|
- "fiberpath/**"
|
|
8
8
|
- "fiberpath_cli/**"
|
|
@@ -23,6 +23,9 @@ on:
|
|
|
23
23
|
release:
|
|
24
24
|
types: [published]
|
|
25
25
|
|
|
26
|
+
permissions:
|
|
27
|
+
contents: read
|
|
28
|
+
|
|
26
29
|
jobs:
|
|
27
30
|
freeze-cli:
|
|
28
31
|
name: Freeze CLI (${{ matrix.os }})
|
|
@@ -102,6 +105,8 @@ jobs:
|
|
|
102
105
|
needs: freeze-cli
|
|
103
106
|
runs-on: ${{ matrix.os }}
|
|
104
107
|
timeout-minutes: 45
|
|
108
|
+
permissions:
|
|
109
|
+
contents: write
|
|
105
110
|
strategy:
|
|
106
111
|
fail-fast: false
|
|
107
112
|
matrix:
|
|
@@ -36,6 +36,8 @@ _freeze_entry.py
|
|
|
36
36
|
# Installer logs
|
|
37
37
|
pip-log.txt
|
|
38
38
|
pip-delete-this-directory.txt
|
|
39
|
+
requirements-audit.txt
|
|
40
|
+
pip-audit.json
|
|
39
41
|
|
|
40
42
|
# Unit test / coverage reports
|
|
41
43
|
htmlcov/
|
|
@@ -211,4 +213,9 @@ marimo/_lsp/
|
|
|
211
213
|
__marimo__/
|
|
212
214
|
|
|
213
215
|
# negations
|
|
214
|
-
!fiberpath_gui/src/lib/
|
|
216
|
+
!fiberpath_gui/src/lib/
|
|
217
|
+
|
|
218
|
+
# temporary files
|
|
219
|
+
temp/
|
|
220
|
+
tmp/
|
|
221
|
+
.codex
|