fiberpath 0.5.3__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.5.3 → fiberpath-0.6.1}/.github/actions/setup-node/action.yml +1 -1
- fiberpath-0.6.1/.github/dependabot.yml +122 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/workflows/backend-ci.yml +8 -25
- fiberpath-0.6.1/.github/workflows/ci-check.yml +152 -0
- fiberpath-0.6.1/.github/workflows/dependency-audit.yml +119 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/workflows/docs-ci.yml +6 -20
- {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/workflows/docs-deploy.yml +4 -4
- {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/workflows/gui-ci.yml +8 -18
- fiberpath-0.6.1/.github/workflows/gui-e2e-smoke.yml +199 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/workflows/gui-packaging.yml +12 -7
- {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/workflows/release.yml +55 -5
- {fiberpath-0.5.3 → fiberpath-0.6.1}/.gitignore +8 -1
- fiberpath-0.6.1/CHANGELOG.md +145 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/PKG-INFO +4 -4
- {fiberpath-0.5.3 → fiberpath-0.6.1}/README.md +3 -3
- {fiberpath-0.5.3/planning → fiberpath-0.6.1}/TODO.md +8 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/architecture/axis-system.md +4 -9
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/development/ci-cd.md +25 -16
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/development/contributing.md +6 -4
- fiberpath-0.6.1/docs/development/dependency-policy.md +67 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/development/packaging.md +2 -2
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/development/release-process.md +1 -1
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/development/tooling.md +12 -16
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/getting-started.md +0 -4
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/guides/axis-mapping.md +2 -5
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/guides/visualization.md +1 -4
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/guides/wind-format.md +20 -10
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/index.md +8 -8
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/reference/concepts.md +13 -4
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/troubleshooting.md +5 -10
- fiberpath-0.6.1/examples/rocketry/AvBay(470mm)single.wind +24 -0
- fiberpath-0.5.3/examples/rocketry/AvBay(470mm).wind → fiberpath-0.6.1/examples/rocketry/AvBay(470mm)triple.wind +4 -4
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/config/schemas.py +1 -1
- {fiberpath-0.5.3 → 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.6.1/fiberpath_gui/.nvmrc +1 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/README.md +9 -7
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/architecture/cli-integration.md +0 -29
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/architecture/state-management.md +0 -33
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/architecture/streaming-state.md +0 -15
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/architecture/tech-stack.md +30 -56
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/development.md +31 -52
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/guides/performance.md +0 -33
- {fiberpath-0.5.3 → 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.3 → fiberpath-0.6.1}/fiberpath_gui/docs/overview.md +6 -6
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/reference/type-safety.md +0 -48
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/testing.md +0 -30
- fiberpath-0.6.1/fiberpath_gui/package-lock.json +4338 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/package.json +19 -22
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/schemas/wind-schema.json +5 -19
- {fiberpath-0.5.3 → 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.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/MenuBar.tsx +58 -5
- {fiberpath-0.5.3 → 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.3 → 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.3 → 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.3 → 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.3 → 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.3 → 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.3 → 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.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/Toast/ToastContainer.tsx +1 -1
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/dialogs/CliUnavailableDialog.tsx +5 -5
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/dialogs/DiagnosticsDialog.tsx +1 -2
- {fiberpath-0.5.3 → 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.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/schemas.ts +5 -5
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/validation.test.ts +1 -1
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/buttons.css +102 -97
- {fiberpath-0.5.3 → 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.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/forms.css +100 -133
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/layout.css +153 -78
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/notifications.css +29 -32
- {fiberpath-0.5.3 → 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.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/tokens.css +166 -111
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/typography.css +1 -2
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/types/converters.test.ts +2 -2
- {fiberpath-0.5.3 → 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.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/Cargo.lock +16 -53
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/Cargo.toml +5 -5
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/tauri.conf.json +1 -1
- {fiberpath-0.5.3 → fiberpath-0.6.1}/mkdocs.yml +2 -0
- fiberpath-0.6.1/planning/gui-framework-migration-evaluation-plan.md +159 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/planning/roadmap-backlog.md +0 -11
- {fiberpath-0.5.3 → fiberpath-0.6.1}/planning/roadmap-v7.md +13 -14
- {fiberpath-0.5.3 → 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.3 → 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.3 → fiberpath-0.6.1}/uv.lock +121 -103
- fiberpath-0.5.3/CHANGELOG.md +0 -66
- fiberpath-0.5.3/fiberpath/planning/validators.py +0 -66
- fiberpath-0.5.3/fiberpath_api/path_policy.py +0 -74
- fiberpath-0.5.3/fiberpath_gui/docs/guides/styling.md +0 -606
- fiberpath-0.5.3/fiberpath_gui/package-lock.json +0 -6298
- fiberpath-0.5.3/fiberpath_gui/src/components/ErrorBoundary.tsx +0 -100
- fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/ConnectionSection.css +0 -138
- fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/FileStreamingSection.css +0 -271
- fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.css +0 -156
- fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/ManualControlSection.css +0 -128
- fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/StreamControls.css +0 -19
- fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/StreamLog.css +0 -184
- fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/StreamTab.css +0 -76
- fiberpath-0.5.3/fiberpath_gui/src/components/Toast/ToastContainer.css +0 -99
- fiberpath-0.5.3/fiberpath_gui/src/styles/dialogs.css +0 -551
- fiberpath-0.5.3/fiberpath_gui/src/styles/reset.css +0 -55
- fiberpath-0.5.3/fiberpath_gui/src/types/wind-schema.ts +0 -72
- fiberpath-0.5.3/planning/OUTSTANDING_VALIDATION.md +0 -83
- fiberpath-0.5.3/planning/RELEASE_HISTORY.md +0 -38
- fiberpath-0.5.3/planning/ROADMAP_STATUS.md +0 -51
- fiberpath-0.5.3/planning/roadmap-v5.1.md +0 -187
- fiberpath-0.5.3/planning/roadmap-v5.2.md +0 -32
- fiberpath-0.5.3/planning/roadmap-v5.3.md +0 -180
- fiberpath-0.5.3/planning/roadmap-v5.4.md +0 -58
- fiberpath-0.5.3/planning/roadmap-v6.md +0 -109
- fiberpath-0.5.3/tests/planning/fixtures/helical_layer.gcode +0 -4525
- fiberpath-0.5.3/tests/planning/test_validators.py +0 -47
- {fiberpath-0.5.3 → fiberpath-0.6.1}/.gitattributes +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/actions/setup-python/action.yml +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/actions/setup-rust/action.yml +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/.vscode/extensions.json +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/.vscode/settings.json +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/LICENSE +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/architecture/overview.md +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/guides/marlin-streaming.md +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/reference/api.md +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/reference/planner-math.md +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/vm-testing.md +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/README.md +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/complex_surface/README.md +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/multi_layer/README.md +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/multi_layer/input.wind +0 -0
- /fiberpath-0.5.3/examples/rocketry/AvBay(470mm).gcode → /fiberpath-0.6.1/examples/rocketry/AvBay(470mm)triple.gcode +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/rocketry/CarbonMotorTube(1295mm).gcode +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/rocketry/CarbonMotorTube(1295mm).wind +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/rocketry/MainChute(585mm).gcode +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/rocketry/MainChute(585mm).wind +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/simple_cylinder/README.md +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/simple_cylinder/input.wind +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/sized_simple_cylinder/README.md +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/sized_simple_cylinder/input.wind +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/__init__.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/config/__init__.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/config/validator.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/execution/__init__.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/execution/marlin.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/gcode/__init__.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/gcode/dialects.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/gcode/generator.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/geometry/__init__.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/geometry/curves.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/geometry/intersections.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/geometry/surfaces.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/math_utils.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/planning/__init__.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/planning/calculations.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/planning/exceptions.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/planning/helpers.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/planning/machine.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/planning/planner.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/simulation/__init__.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/simulation/simulator.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/visualization/__init__.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/visualization/export_json.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/visualization/plotter.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/__init__.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/main.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/package-lock.json +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/routes/__init__.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/routes/plan.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/routes/simulate.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/routes/stream.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/routes/validate.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/schemas.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/__init__.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/__main__.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/interactive.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/main.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/output.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/plan.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/plot.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/simulate.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/stream.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/validate.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/.gitignore +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/.stylelintrc.json +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/bundled-cli/.gitkeep +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/generate-types.json +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/index.html +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/scripts/check-css-vars.mjs +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/CliHealthWarning.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/ErrorNotificationToast.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/FileField.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/ResultCard.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/StatusText.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/StreamControls.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/index.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/TabBar.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/canvas/CanvasControls.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/canvas/CenterCanvas.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/canvas/LayerScrubber.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/canvas/VisualizationCanvas.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/dialogs/AboutDialog.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/dialogs/ExportConfirmationDialog.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/editors/HelicalLayerEditor.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/editors/HoopLayerEditor.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/editors/SkipLayerEditor.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/forms/MachineSettingsForm.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/forms/MandrelForm.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/forms/TowForm.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/layers/LayerRow.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/panels/BottomPanel.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/panels/LeftPanel.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/panels/RightPanel.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/tabs/MainTab.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/tabs/StreamTab.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/contexts/CliHealthContext.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/contexts/ErrorNotificationContext.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/hooks/useCliHealth.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/hooks/useKeyboardShortcuts.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/hooks/useStreamEvents.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/layouts/MainLayout.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/commands.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/constants.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/fileOperations.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/marlin-api.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/recentFiles.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/retry.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/schemas.test.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/tauri-types.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/toastMessages.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/validation.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/main.tsx +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/state/projectStore.test.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/state/projectStore.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/stores/streamStore.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/stores/toastStore.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/index.css +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/tabs.css +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/tests/integration/workflows.test.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/tests/setup.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/types/components.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/types/project.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/build.rs +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/capabilities/default.json +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/128x128.png +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/256x256.png +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/32x32.png +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/512x512.png +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/icon.ico +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/src/cli_path.rs +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/src/cli_process.rs +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/src/main.rs +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/src/marlin.rs +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/tsconfig.json +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/tsconfig.node.json +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/vite.config.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/vitest.config.ts +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/package-lock.json +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/scripts/export_schema.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/scripts/freeze_cli.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/scripts/generate_schema.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/scripts/sync_gui_docs.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/setup.cfg +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/api/test_plan_route.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/api/test_simulate_route.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/api/test_stream_route.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/api/test_stream_route_errors.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cli/test_axis_format.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cli/test_cli_json.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cli/test_cli_smoke.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cli/test_stream_command.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/config/__init__.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/config/test_validator.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/inputs/helical-balanced.wind +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/inputs/simple-hoop.wind +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/inputs/skip-bias.wind +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/helical-balanced/output.gcode +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/helical-balanced/preview.png +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/simple-hoop/output.gcode +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/simple-hoop/preview.png +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/skip-bias/output.gcode +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/skip-bias/preview.png +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/execution/test_marlin_streamer.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/gcode/test_dialects.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/gcode/test_generator.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/geometry/test_surfaces.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/_generate_fixtures.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/fixtures/hoop_layer.gcode +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/fixtures/hoop_only_program.gcode +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/fixtures/skip_layer.gcode +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/test_axis_mapping.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/test_helpers_machine.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/test_planner_smoke.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/simulation/test_simulator.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/simulation/test_simulator_axis_detection.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/tauri/test_marlin_integration.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/tauri/test_port_discovery.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/visualization/test_export_json.py +0 -0
- {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/visualization/test_plotter.py +0 -0
- {fiberpath-0.5.3 → 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:
|
|
@@ -30,7 +13,7 @@ jobs:
|
|
|
30
13
|
runs-on: ubuntu-latest
|
|
31
14
|
steps:
|
|
32
15
|
- name: Checkout repository
|
|
33
|
-
uses: actions/checkout@
|
|
16
|
+
uses: actions/checkout@v6
|
|
34
17
|
|
|
35
18
|
- name: Setup Python environment
|
|
36
19
|
uses: ./.github/actions/setup-python
|
|
@@ -56,7 +39,7 @@ jobs:
|
|
|
56
39
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
57
40
|
steps:
|
|
58
41
|
- name: Checkout repository
|
|
59
|
-
uses: actions/checkout@
|
|
42
|
+
uses: actions/checkout@v6
|
|
60
43
|
|
|
61
44
|
- name: Setup Python environment
|
|
62
45
|
uses: ./.github/actions/setup-python
|
|
@@ -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"
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
name: Dependency Audit
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
schedule:
|
|
7
|
+
- cron: "0 7 * * 1"
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
python-audit:
|
|
15
|
+
name: Python Audit
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- name: Checkout repository
|
|
19
|
+
uses: actions/checkout@v6
|
|
20
|
+
|
|
21
|
+
- name: Setup Python environment
|
|
22
|
+
uses: ./.github/actions/setup-python
|
|
23
|
+
with:
|
|
24
|
+
dependencies: ".[dev,api,cli,plot]"
|
|
25
|
+
|
|
26
|
+
- name: Export requirements for audit
|
|
27
|
+
run: uv export --all-extras --no-hashes --format requirements-txt -o requirements-audit.txt
|
|
28
|
+
|
|
29
|
+
- name: Run pip-audit (JSON report)
|
|
30
|
+
run: uvx --with pip-audit pip-audit -r requirements-audit.txt --format json --output pip-audit.json
|
|
31
|
+
|
|
32
|
+
- name: Upload pip-audit report
|
|
33
|
+
uses: actions/upload-artifact@v7
|
|
34
|
+
with:
|
|
35
|
+
name: pip-audit-report
|
|
36
|
+
path: pip-audit.json
|
|
37
|
+
retention-days: 30
|
|
38
|
+
|
|
39
|
+
npm-audit:
|
|
40
|
+
name: npm Audit
|
|
41
|
+
runs-on: ubuntu-latest
|
|
42
|
+
defaults:
|
|
43
|
+
run:
|
|
44
|
+
working-directory: fiberpath_gui
|
|
45
|
+
steps:
|
|
46
|
+
- name: Checkout repository
|
|
47
|
+
uses: actions/checkout@v6
|
|
48
|
+
|
|
49
|
+
- name: Setup Node.js environment
|
|
50
|
+
uses: ./.github/actions/setup-node
|
|
51
|
+
|
|
52
|
+
- name: Run npm audit (high/critical gate)
|
|
53
|
+
run: npm audit --audit-level=high --json > npm-audit.json
|
|
54
|
+
|
|
55
|
+
- name: Upload npm audit report
|
|
56
|
+
uses: actions/upload-artifact@v7
|
|
57
|
+
with:
|
|
58
|
+
name: npm-audit-report
|
|
59
|
+
path: fiberpath_gui/npm-audit.json
|
|
60
|
+
retention-days: 30
|
|
61
|
+
|
|
62
|
+
cargo-audit:
|
|
63
|
+
name: Cargo Audit
|
|
64
|
+
runs-on: ubuntu-latest
|
|
65
|
+
defaults:
|
|
66
|
+
run:
|
|
67
|
+
working-directory: fiberpath_gui/src-tauri
|
|
68
|
+
steps:
|
|
69
|
+
- name: Checkout repository
|
|
70
|
+
uses: actions/checkout@v6
|
|
71
|
+
|
|
72
|
+
- name: Setup Rust environment
|
|
73
|
+
uses: ./.github/actions/setup-rust
|
|
74
|
+
with:
|
|
75
|
+
install-linux-deps: "false"
|
|
76
|
+
|
|
77
|
+
- name: Install cargo-audit
|
|
78
|
+
run: cargo install cargo-audit --locked
|
|
79
|
+
|
|
80
|
+
- name: Run cargo audit (JSON report)
|
|
81
|
+
run: cargo audit --json > cargo-audit.json
|
|
82
|
+
|
|
83
|
+
- name: Enforce CVSS >= 7.0 gate
|
|
84
|
+
run: |
|
|
85
|
+
python - <<'PY'
|
|
86
|
+
import json
|
|
87
|
+
from pathlib import Path
|
|
88
|
+
|
|
89
|
+
report = json.loads(Path("cargo-audit.json").read_text(encoding="utf-8"))
|
|
90
|
+
vulns = report.get("vulnerabilities", {}).get("list", [])
|
|
91
|
+
|
|
92
|
+
blocking = []
|
|
93
|
+
for item in vulns:
|
|
94
|
+
advisory = item.get("advisory", {})
|
|
95
|
+
cvss = advisory.get("cvss")
|
|
96
|
+
if cvss is None:
|
|
97
|
+
continue
|
|
98
|
+
try:
|
|
99
|
+
score = float(cvss)
|
|
100
|
+
except (TypeError, ValueError):
|
|
101
|
+
continue
|
|
102
|
+
if score >= 7.0:
|
|
103
|
+
blocking.append((advisory.get("id", "unknown"), score, advisory.get("title", "")))
|
|
104
|
+
|
|
105
|
+
if blocking:
|
|
106
|
+
print("High/Critical Cargo advisories detected:")
|
|
107
|
+
for advisory_id, score, title in blocking:
|
|
108
|
+
print(f"- {advisory_id} (CVSS {score}): {title}")
|
|
109
|
+
raise SystemExit(1)
|
|
110
|
+
|
|
111
|
+
print("No Cargo advisories with CVSS >= 7.0 detected.")
|
|
112
|
+
PY
|
|
113
|
+
|
|
114
|
+
- name: Upload cargo audit report
|
|
115
|
+
uses: actions/upload-artifact@v7
|
|
116
|
+
with:
|
|
117
|
+
name: cargo-audit-report
|
|
118
|
+
path: fiberpath_gui/src-tauri/cargo-audit.json
|
|
119
|
+
retention-days: 30
|
|
@@ -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:
|
|
@@ -27,7 +13,7 @@ jobs:
|
|
|
27
13
|
runs-on: ubuntu-latest
|
|
28
14
|
steps:
|
|
29
15
|
- name: Checkout repository
|
|
30
|
-
uses: actions/checkout@
|
|
16
|
+
uses: actions/checkout@v6
|
|
31
17
|
|
|
32
18
|
- name: Setup Python environment
|
|
33
19
|
uses: ./.github/actions/setup-python
|
|
@@ -29,11 +29,11 @@ jobs:
|
|
|
29
29
|
runs-on: ubuntu-latest
|
|
30
30
|
steps:
|
|
31
31
|
- name: Checkout repository
|
|
32
|
-
uses: actions/checkout@
|
|
32
|
+
uses: actions/checkout@v6
|
|
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
|
|
@@ -47,7 +47,7 @@ jobs:
|
|
|
47
47
|
run: uv run mkdocs build --strict --site-dir site
|
|
48
48
|
|
|
49
49
|
- name: Upload Pages artifact
|
|
50
|
-
uses: actions/upload-pages-artifact@
|
|
50
|
+
uses: actions/upload-pages-artifact@v4
|
|
51
51
|
with:
|
|
52
52
|
path: site
|
|
53
53
|
|
|
@@ -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:
|
|
@@ -26,7 +16,7 @@ jobs:
|
|
|
26
16
|
working-directory: fiberpath_gui
|
|
27
17
|
steps:
|
|
28
18
|
- name: Checkout repository
|
|
29
|
-
uses: actions/checkout@
|
|
19
|
+
uses: actions/checkout@v6
|
|
30
20
|
|
|
31
21
|
- name: Setup Node.js environment
|
|
32
22
|
uses: ./.github/actions/setup-node
|
|
@@ -57,7 +47,7 @@ jobs:
|
|
|
57
47
|
working-directory: fiberpath_gui
|
|
58
48
|
steps:
|
|
59
49
|
- name: Checkout repository
|
|
60
|
-
uses: actions/checkout@
|
|
50
|
+
uses: actions/checkout@v6
|
|
61
51
|
|
|
62
52
|
- name: Setup Node.js environment
|
|
63
53
|
uses: ./.github/actions/setup-node
|
|
@@ -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
|