auroraview 0.2.19__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.
- auroraview-0.2.19/.cargo/config.toml +26 -0
- auroraview-0.2.19/.codecov.yml +117 -0
- auroraview-0.2.19/.githooks/pre-commit +57 -0
- auroraview-0.2.19/.github/ISSUE_TEMPLATE/bug_report.yml +66 -0
- auroraview-0.2.19/.github/ISSUE_TEMPLATE/config.yml +6 -0
- auroraview-0.2.19/.github/ISSUE_TEMPLATE/feature_request.yml +39 -0
- auroraview-0.2.19/.github/actions/build-and-test/action.yml +166 -0
- auroraview-0.2.19/.github/actions/build-wheel/action.yml +238 -0
- auroraview-0.2.19/.github/actions/cache-setup/action.yml +97 -0
- auroraview-0.2.19/.github/actions/setup-auroraview/action.yml +91 -0
- auroraview-0.2.19/.github/dependabot.yml +11 -0
- auroraview-0.2.19/.github/pull_request_template.md +29 -0
- auroraview-0.2.19/.github/workflows/build-wheels.yml +89 -0
- auroraview-0.2.19/.github/workflows/ci.yml +276 -0
- auroraview-0.2.19/.github/workflows/codeql.yml +33 -0
- auroraview-0.2.19/.github/workflows/pr-checks.yml +255 -0
- auroraview-0.2.19/.github/workflows/release.yml +161 -0
- auroraview-0.2.19/.github/workflows/security-audit.yml +28 -0
- auroraview-0.2.19/.gitignore +81 -0
- auroraview-0.2.19/.pre-commit-config.yaml +17 -0
- auroraview-0.2.19/.python-version +1 -0
- auroraview-0.2.19/.release-please-manifest.json +4 -0
- auroraview-0.2.19/CHANGELOG.md +415 -0
- auroraview-0.2.19/CODEOWNERS +7 -0
- auroraview-0.2.19/CODE_OF_CONDUCT.md +17 -0
- auroraview-0.2.19/CONTRIBUTING.md +113 -0
- auroraview-0.2.19/Cargo.lock +5474 -0
- auroraview-0.2.19/Cargo.toml +181 -0
- auroraview-0.2.19/LICENSE +22 -0
- auroraview-0.2.19/PKG-INFO +752 -0
- auroraview-0.2.19/README.md +720 -0
- auroraview-0.2.19/README_zh.md +706 -0
- auroraview-0.2.19/SECURITY.md +21 -0
- auroraview-0.2.19/build_cli.py +80 -0
- auroraview-0.2.19/docs/API_MIGRATION_GUIDE.md +188 -0
- auroraview-0.2.19/docs/ARCHITECTURE.md +481 -0
- auroraview-0.2.19/docs/BACKEND_EXTENSION.md +410 -0
- auroraview-0.2.19/docs/BRIDGE_DESIGN.md +309 -0
- auroraview-0.2.19/docs/CHANGELOG_QT_IMPROVEMENTS.md +217 -0
- auroraview-0.2.19/docs/CHANGELOG_TIMER.md +113 -0
- auroraview-0.2.19/docs/CHANGELOG_lifecycle.md +174 -0
- auroraview-0.2.19/docs/CIRCULAR_REFERENCE_FIX.md +213 -0
- auroraview-0.2.19/docs/CLI.md +153 -0
- auroraview-0.2.19/docs/COMPARISON_WITH_PYWEBVIEW.md +231 -0
- auroraview-0.2.19/docs/CROSS_PLATFORM_ZERO_DEPENDENCY_SOLUTION.md +540 -0
- auroraview-0.2.19/docs/CURRENT_STATUS.md +336 -0
- auroraview-0.2.19/docs/CUSTOM_PROTOCOL_COMPLETE_SUMMARY.md +172 -0
- auroraview-0.2.19/docs/CUSTOM_PROTOCOL_DESIGN.md +256 -0
- auroraview-0.2.19/docs/CUSTOM_PROTOCOL_IMPLEMENTATION_SUMMARY.md +178 -0
- auroraview-0.2.19/docs/DCC_INTEGRATION.md +160 -0
- auroraview-0.2.19/docs/DCC_INTEGRATION_GUIDE.md +326 -0
- auroraview-0.2.19/docs/EVENTTIMER_OPTIMIZATION.md +264 -0
- auroraview-0.2.19/docs/IMPLEMENTATION_SUMMARY.md +374 -0
- auroraview-0.2.19/docs/IPC_ARCHITECTURE.md +322 -0
- auroraview-0.2.19/docs/IPC_METRICS.md +179 -0
- auroraview-0.2.19/docs/IPC_SIMD_JSON_MIGRATION.md +188 -0
- auroraview-0.2.19/docs/LOCAL_RESOURCE_LOADING.md +450 -0
- auroraview-0.2.19/docs/MAYA_FIXES_SUMMARY.md +178 -0
- auroraview-0.2.19/docs/MAYA_INTEGRATION.md +312 -0
- auroraview-0.2.19/docs/MAYA_INTEGRATION_ISSUES.md +311 -0
- auroraview-0.2.19/docs/MAYA_OUTLINER_IMPLEMENTATION.md +188 -0
- auroraview-0.2.19/docs/MAYA_SOLUTION.md +293 -0
- auroraview-0.2.19/docs/MIME_GUESS_REFACTORING.md +178 -0
- auroraview-0.2.19/docs/NUKE_EXIT_FIX.md +264 -0
- auroraview-0.2.19/docs/PERFORMANCE_OPTIMIZATION.md +469 -0
- auroraview-0.2.19/docs/PHOTOSHOP_AURORAVIEW_INTEGRATION.md +375 -0
- auroraview-0.2.19/docs/PHOTOSHOP_INTEGRATION_GUIDE.md +353 -0
- auroraview-0.2.19/docs/PHOTOSHOP_INTEGRATION_RESEARCH.md +228 -0
- auroraview-0.2.19/docs/PHOTOSHOP_INTEGRATION_SUMMARY.md +220 -0
- auroraview-0.2.19/docs/PROJECT_ADVANTAGES.md +222 -0
- auroraview-0.2.19/docs/PROJECT_STATUS.md +281 -0
- auroraview-0.2.19/docs/PROTOCOL_HANDLER_DESIGN.md +308 -0
- auroraview-0.2.19/docs/QT_BEST_PRACTICES.md +187 -0
- auroraview-0.2.19/docs/QT_INTEGRATION_PROPOSAL.md +397 -0
- auroraview-0.2.19/docs/README.md +283 -0
- auroraview-0.2.19/docs/RESEARCH_FLET_PYWEBVIEW.md +332 -0
- auroraview-0.2.19/docs/ROADMAP.md +297 -0
- auroraview-0.2.19/docs/RUST_ECOSYSTEM_RESEARCH.md +468 -0
- auroraview-0.2.19/docs/RUST_SOLVES_DCC_WINDOW_PROBLEMS.md +709 -0
- auroraview-0.2.19/docs/SERVICE_DISCOVERY_DESIGN.md +258 -0
- auroraview-0.2.19/docs/SERVICE_DISCOVERY_IMPLEMENTATION.md +303 -0
- auroraview-0.2.19/docs/SERVO_EVALUATION.md +318 -0
- auroraview-0.2.19/docs/SINGLETON_MODE.md +246 -0
- auroraview-0.2.19/docs/SPY_PLUS_PLUS_GUIDE.md +332 -0
- auroraview-0.2.19/docs/STANDALONE_MODE_FIX.md +332 -0
- auroraview-0.2.19/docs/TECHNICAL_DESIGN.md +394 -0
- auroraview-0.2.19/docs/THREAD_SAFETY_FIX.md +233 -0
- auroraview-0.2.19/docs/TIMER_ARCHITECTURE.md +195 -0
- auroraview-0.2.19/docs/TIMER_REFACTORING.md +191 -0
- auroraview-0.2.19/docs/WINDOWS_TIMER.md +290 -0
- auroraview-0.2.19/docs/WINDOW_CLOSE_ROOT_CAUSE_ANALYSIS.md +325 -0
- auroraview-0.2.19/docs/_archive/QUICK_TEST_GUIDE.md +290 -0
- auroraview-0.2.19/docs/_archive/TESTING_FRAMEWORKS_GUIDE.md +472 -0
- auroraview-0.2.19/docs/_archive/TESTING_SUMMARY.md +274 -0
- auroraview-0.2.19/docs/custom_context_menu.md +169 -0
- auroraview-0.2.19/docs/event_timer.md +423 -0
- auroraview-0.2.19/docs/quick_reference.md +274 -0
- auroraview-0.2.19/examples/README_file_protocol.md +145 -0
- auroraview-0.2.19/examples/__init__.py +32 -0
- auroraview-0.2.19/examples/custom_context_menu_demo.py +204 -0
- auroraview-0.2.19/examples/custom_protocol_example.py +240 -0
- auroraview-0.2.19/examples/custom_timer_backend_example.py +137 -0
- auroraview-0.2.19/examples/local_assets_example.py +155 -0
- auroraview-0.2.19/examples/maya_qt_echo_demo.html +205 -0
- auroraview-0.2.19/examples/maya_qt_echo_demo.py +195 -0
- auroraview-0.2.19/examples/qt_custom_menu_demo.py +160 -0
- auroraview-0.2.19/examples/test_api_binding.py +107 -0
- auroraview-0.2.19/justfile +390 -0
- auroraview-0.2.19/noxfile.py +156 -0
- auroraview-0.2.19/pyproject.toml +154 -0
- auroraview-0.2.19/python/auroraview/__init__.py +260 -0
- auroraview-0.2.19/python/auroraview/__main__.py +131 -0
- auroraview-0.2.19/python/auroraview/bridge.py +436 -0
- auroraview-0.2.19/python/auroraview/event_timer.py +405 -0
- auroraview-0.2.19/python/auroraview/file_protocol.py +93 -0
- auroraview-0.2.19/python/auroraview/framework.py +193 -0
- auroraview-0.2.19/python/auroraview/qt_integration.py +670 -0
- auroraview-0.2.19/python/auroraview/testing/__init__.py +50 -0
- auroraview-0.2.19/python/auroraview/testing/assertions.py +145 -0
- auroraview-0.2.19/python/auroraview/testing/fixtures.py +113 -0
- auroraview-0.2.19/python/auroraview/testing/webview_bot.py +192 -0
- auroraview-0.2.19/python/auroraview/timer_backends.py +305 -0
- auroraview-0.2.19/python/auroraview/webview.py +1228 -0
- auroraview-0.2.19/release-please-config.json +41 -0
- auroraview-0.2.19/scripts/build.ps1 +44 -0
- auroraview-0.2.19/scripts/dev.ps1 +112 -0
- auroraview-0.2.19/scripts/update_api_params.py +84 -0
- auroraview-0.2.19/scripts/update_core_pyd.py +70 -0
- auroraview-0.2.19/src/assets/html/loading.html +138 -0
- auroraview-0.2.19/src/assets/js/core/event_bridge.js +203 -0
- auroraview-0.2.19/src/assets/js/features/context_menu.js +25 -0
- auroraview-0.2.19/src/assets/js/runtime/emit_event.js +18 -0
- auroraview-0.2.19/src/assets/js/runtime/load_url.js +10 -0
- auroraview-0.2.19/src/bin/cli.rs +383 -0
- auroraview-0.2.19/src/bindings/cli_utils.rs +142 -0
- auroraview-0.2.19/src/bindings/ipc.rs +169 -0
- auroraview-0.2.19/src/bindings/ipc_metrics.rs +116 -0
- auroraview-0.2.19/src/bindings/mod.rs +24 -0
- auroraview-0.2.19/src/bindings/service_discovery.rs +384 -0
- auroraview-0.2.19/src/bindings/standalone_runner.rs +160 -0
- auroraview-0.2.19/src/bindings/timer.rs +191 -0
- auroraview-0.2.19/src/bindings/webview.rs +137 -0
- auroraview-0.2.19/src/bindings/webview2.rs +136 -0
- auroraview-0.2.19/src/ipc/backend.rs +83 -0
- auroraview-0.2.19/src/ipc/batch.rs +359 -0
- auroraview-0.2.19/src/ipc/dead_letter_queue.rs +272 -0
- auroraview-0.2.19/src/ipc/handler.rs +248 -0
- auroraview-0.2.19/src/ipc/json.rs +293 -0
- auroraview-0.2.19/src/ipc/message_queue.rs +369 -0
- auroraview-0.2.19/src/ipc/metrics.rs +269 -0
- auroraview-0.2.19/src/ipc/mod.rs +67 -0
- auroraview-0.2.19/src/ipc/process.rs +61 -0
- auroraview-0.2.19/src/ipc/threaded.rs +246 -0
- auroraview-0.2.19/src/lib.rs +252 -0
- auroraview-0.2.19/src/metrics.rs +254 -0
- auroraview-0.2.19/src/platform/mod.rs +3 -0
- auroraview-0.2.19/src/platform/windows/mod.rs +3 -0
- auroraview-0.2.19/src/platform/windows/webview2.rs +298 -0
- auroraview-0.2.19/src/service_discovery/http_discovery.rs +190 -0
- auroraview-0.2.19/src/service_discovery/mdns_service.rs +232 -0
- auroraview-0.2.19/src/service_discovery/mod.rs +100 -0
- auroraview-0.2.19/src/service_discovery/port_allocator.rs +208 -0
- auroraview-0.2.19/src/utils/mod.rs +138 -0
- auroraview-0.2.19/src/webview/aurora_view.rs +1235 -0
- auroraview-0.2.19/src/webview/backend/custom.rs +263 -0
- auroraview-0.2.19/src/webview/backend/mod.rs +245 -0
- auroraview-0.2.19/src/webview/backend/native.rs +747 -0
- auroraview-0.2.19/src/webview/backend/qt.rs +142 -0
- auroraview-0.2.19/src/webview/backend/servo.rs +266 -0
- auroraview-0.2.19/src/webview/config.rs +479 -0
- auroraview-0.2.19/src/webview/event_loop.rs +558 -0
- auroraview-0.2.19/src/webview/js_assets.rs +546 -0
- auroraview-0.2.19/src/webview/lifecycle.rs +303 -0
- auroraview-0.2.19/src/webview/loading.rs +266 -0
- auroraview-0.2.19/src/webview/message_pump.rs +455 -0
- auroraview-0.2.19/src/webview/mod.rs +26 -0
- auroraview-0.2.19/src/webview/parent_monitor.rs +142 -0
- auroraview-0.2.19/src/webview/platform/linux.rs +117 -0
- auroraview-0.2.19/src/webview/platform/macos.rs +109 -0
- auroraview-0.2.19/src/webview/platform/mod.rs +52 -0
- auroraview-0.2.19/src/webview/platform/windows.rs +218 -0
- auroraview-0.2.19/src/webview/protocol.rs +235 -0
- auroraview-0.2.19/src/webview/protocol_handlers.rs +475 -0
- auroraview-0.2.19/src/webview/standalone.rs +380 -0
- auroraview-0.2.19/src/webview/timer.rs +326 -0
- auroraview-0.2.19/src/webview/webview_inner.rs +1043 -0
- auroraview-0.2.19/src/window_utils.rs +296 -0
- auroraview-0.2.19/tests/QUICK_REFERENCE.md +62 -0
- auroraview-0.2.19/tests/README.md +62 -0
- auroraview-0.2.19/tests/config_integration_tests.rs +214 -0
- auroraview-0.2.19/tests/conftest.py +107 -0
- auroraview-0.2.19/tests/file_protocol_integration_tests.rs +101 -0
- auroraview-0.2.19/tests/http_discovery_integration_tests.rs +167 -0
- auroraview-0.2.19/tests/ipc_batch_integration_tests.rs +135 -0
- auroraview-0.2.19/tests/ipc_json_integration_tests.rs +199 -0
- auroraview-0.2.19/tests/ipc_message_queue_integration_tests.rs +129 -0
- auroraview-0.2.19/tests/lifecycle_integration_tests.rs +169 -0
- auroraview-0.2.19/tests/mdns_integration_tests.rs +123 -0
- auroraview-0.2.19/tests/parent_monitor_integration_tests.rs +123 -0
- auroraview-0.2.19/tests/port_allocator_integration_tests.rs +200 -0
- auroraview-0.2.19/tests/protocol_handlers_integration_tests.rs +581 -0
- auroraview-0.2.19/tests/protocol_integration_tests.rs +136 -0
- auroraview-0.2.19/tests/pytest.ini +28 -0
- auroraview-0.2.19/tests/standalone_integration_tests.rs +256 -0
- auroraview-0.2.19/tests/test_api_injection.py +105 -0
- auroraview-0.2.19/tests/test_api_injection_timing.py +136 -0
- auroraview-0.2.19/tests/test_auto_process_events.py +157 -0
- auroraview-0.2.19/tests/test_basic.py +79 -0
- auroraview-0.2.19/tests/test_basic_functionality.py +96 -0
- auroraview-0.2.19/tests/test_bind_call.py +119 -0
- auroraview-0.2.19/tests/test_cli_main.py +177 -0
- auroraview-0.2.19/tests/test_cli_new_features.py +151 -0
- auroraview-0.2.19/tests/test_context_menu.py +156 -0
- auroraview-0.2.19/tests/test_context_menu_standalone.py +145 -0
- auroraview-0.2.19/tests/test_custom_protocol.py +171 -0
- auroraview-0.2.19/tests/test_emit_fix.py +130 -0
- auroraview-0.2.19/tests/test_event_timer.py +548 -0
- auroraview-0.2.19/tests/test_file_protocol.py +403 -0
- auroraview-0.2.19/tests/test_imports.py +104 -0
- auroraview-0.2.19/tests/test_integration.py +158 -0
- auroraview-0.2.19/tests/test_js_assets_packaging.py +85 -0
- auroraview-0.2.19/tests/test_maya_outliner_example.py +58 -0
- auroraview-0.2.19/tests/test_maya_qt_echo_demo.py +149 -0
- auroraview-0.2.19/tests/test_native_timer.py +158 -0
- auroraview-0.2.19/tests/test_nuke_ipc.py +191 -0
- auroraview-0.2.19/tests/test_package_init.py +60 -0
- auroraview-0.2.19/tests/test_qt_backend.py +302 -0
- auroraview-0.2.19/tests/test_qt_event_processor.py +113 -0
- auroraview-0.2.19/tests/test_qt_import_error.py +135 -0
- auroraview-0.2.19/tests/test_qt_lifecycle.py +233 -0
- auroraview-0.2.19/tests/test_standalone_runner.py +209 -0
- auroraview-0.2.19/tests/test_testing_framework.py +63 -0
- auroraview-0.2.19/tests/test_timer_integration.py +475 -0
- auroraview-0.2.19/tests/test_webview.py +303 -0
- auroraview-0.2.19/tests/test_window_dragging.py +79 -0
- auroraview-0.2.19/tests/timer_integration_tests.rs +109 -0
- auroraview-0.2.19/tests/window_utils_integration_tests.rs +47 -0
- auroraview-0.2.19/uv.lock +1127 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Cargo configuration for AuroraView
|
|
2
|
+
|
|
3
|
+
# Profile configurations
|
|
4
|
+
[profile.test]
|
|
5
|
+
# Use debug symbols for better test output
|
|
6
|
+
debug = true
|
|
7
|
+
opt-level = 0
|
|
8
|
+
|
|
9
|
+
[profile.dev]
|
|
10
|
+
opt-level = 0
|
|
11
|
+
|
|
12
|
+
[profile.release]
|
|
13
|
+
opt-level = 3
|
|
14
|
+
lto = true
|
|
15
|
+
codegen-units = 1
|
|
16
|
+
strip = true
|
|
17
|
+
|
|
18
|
+
# Build settings
|
|
19
|
+
[build]
|
|
20
|
+
# Use default number of jobs (don't set to 0 as it causes errors)
|
|
21
|
+
# jobs = 0 # Disabled: causes "jobs may not be 0" error
|
|
22
|
+
|
|
23
|
+
# Linker settings for different platforms
|
|
24
|
+
# Note: Do not add rustflags here as it will break CI builds
|
|
25
|
+
# PyO3 handles Python linking automatically
|
|
26
|
+
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
# Codecov Configuration for AuroraView
|
|
2
|
+
# https://docs.codecov.com/docs/codecov-yaml
|
|
3
|
+
|
|
4
|
+
# Coverage targets and thresholds
|
|
5
|
+
coverage:
|
|
6
|
+
precision: 2 # 2 decimal places
|
|
7
|
+
round: down
|
|
8
|
+
range: 70..100 # Green at 70%+, red below
|
|
9
|
+
|
|
10
|
+
status:
|
|
11
|
+
# Overall project coverage
|
|
12
|
+
project:
|
|
13
|
+
default:
|
|
14
|
+
target: 70% # Target coverage for the entire project
|
|
15
|
+
threshold: 2% # Allow 2% drop before failing
|
|
16
|
+
if_ci_failed: error # Fail if CI failed
|
|
17
|
+
informational: false # Block PR if coverage drops
|
|
18
|
+
|
|
19
|
+
# Patch coverage (new code in PR)
|
|
20
|
+
# Note: Some code in native.rs requires GUI environment and cannot be tested in CI
|
|
21
|
+
patch:
|
|
22
|
+
default:
|
|
23
|
+
target: 70% # Lowered due to untestable GUI code in native backend
|
|
24
|
+
threshold: 10% # More lenient for patches with GUI code
|
|
25
|
+
if_ci_failed: error
|
|
26
|
+
informational: true # Don't block PR for patch coverage
|
|
27
|
+
|
|
28
|
+
# Changes coverage (lines changed in PR)
|
|
29
|
+
changes:
|
|
30
|
+
default:
|
|
31
|
+
target: 80%
|
|
32
|
+
threshold: 5%
|
|
33
|
+
if_ci_failed: error
|
|
34
|
+
informational: true # Don't block PR, just inform
|
|
35
|
+
|
|
36
|
+
# Comment configuration
|
|
37
|
+
comment:
|
|
38
|
+
layout: "header, diff, flags, components, footer"
|
|
39
|
+
behavior: default # Update existing comment
|
|
40
|
+
require_changes: false # Always comment
|
|
41
|
+
require_base: false # Comment even without base
|
|
42
|
+
require_head: true # Require head commit
|
|
43
|
+
|
|
44
|
+
# Flag configuration for different test types
|
|
45
|
+
flags:
|
|
46
|
+
# Python coverage
|
|
47
|
+
python:
|
|
48
|
+
paths:
|
|
49
|
+
- python/
|
|
50
|
+
carryforward: true # Carry forward if missing
|
|
51
|
+
|
|
52
|
+
# Rust coverage
|
|
53
|
+
rust:
|
|
54
|
+
paths:
|
|
55
|
+
- src/
|
|
56
|
+
carryforward: true
|
|
57
|
+
|
|
58
|
+
# Unit tests
|
|
59
|
+
unit:
|
|
60
|
+
carryforward: true
|
|
61
|
+
|
|
62
|
+
# Qt tests
|
|
63
|
+
qt:
|
|
64
|
+
carryforward: true
|
|
65
|
+
|
|
66
|
+
# Windows-specific
|
|
67
|
+
windows:
|
|
68
|
+
carryforward: true
|
|
69
|
+
|
|
70
|
+
# Component configuration
|
|
71
|
+
component_management:
|
|
72
|
+
individual_components:
|
|
73
|
+
# Python components
|
|
74
|
+
- component_id: python_core
|
|
75
|
+
name: Python Core
|
|
76
|
+
paths:
|
|
77
|
+
- python/auroraview/*.py
|
|
78
|
+
flag_regexes:
|
|
79
|
+
- python
|
|
80
|
+
|
|
81
|
+
# Rust components
|
|
82
|
+
- component_id: rust_core
|
|
83
|
+
name: Rust Core
|
|
84
|
+
paths:
|
|
85
|
+
- src/**/*.rs
|
|
86
|
+
flag_regexes:
|
|
87
|
+
- rust
|
|
88
|
+
|
|
89
|
+
# Qt integration
|
|
90
|
+
- component_id: qt_integration
|
|
91
|
+
name: Qt Integration
|
|
92
|
+
paths:
|
|
93
|
+
- python/auroraview/qt_integration.py
|
|
94
|
+
flag_regexes:
|
|
95
|
+
- qt
|
|
96
|
+
|
|
97
|
+
# Ignore paths (for project coverage calculation only, not patch coverage)
|
|
98
|
+
ignore:
|
|
99
|
+
- "tests/"
|
|
100
|
+
- "examples/"
|
|
101
|
+
- "docs/"
|
|
102
|
+
- "*.md"
|
|
103
|
+
- "*.toml"
|
|
104
|
+
- "*.yml"
|
|
105
|
+
- "*.yaml"
|
|
106
|
+
- ".github/"
|
|
107
|
+
- "scripts/"
|
|
108
|
+
- "python/auroraview/_version.py" # Auto-generated
|
|
109
|
+
|
|
110
|
+
# GitHub checks
|
|
111
|
+
github_checks:
|
|
112
|
+
annotations: true # Add annotations to PR
|
|
113
|
+
|
|
114
|
+
# Codecov AI (if enabled)
|
|
115
|
+
codecov_ai:
|
|
116
|
+
enabled: true
|
|
117
|
+
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# AuroraView pre-commit hook
|
|
3
|
+
# Ensures Python & Rust lint pass before committing.
|
|
4
|
+
# Requires: ruff and cargo available on PATH for their respective checks.
|
|
5
|
+
|
|
6
|
+
set -euo pipefail
|
|
7
|
+
|
|
8
|
+
# Resolve ruff command (prefer direct, fallback to uvx)
|
|
9
|
+
if command -v ruff >/dev/null 2>&1; then
|
|
10
|
+
RUFF_CMD="ruff"
|
|
11
|
+
elif command -v uvx >/dev/null 2>&1; then
|
|
12
|
+
RUFF_CMD="uvx ruff"
|
|
13
|
+
elif command -v uv >/dev/null 2>&1; then
|
|
14
|
+
RUFF_CMD="uvx ruff"
|
|
15
|
+
else
|
|
16
|
+
RUFF_CMD=""
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
# Detect changed files in index (staged)
|
|
20
|
+
changed_files=$(git diff --cached --name-only --diff-filter=ACM || true)
|
|
21
|
+
|
|
22
|
+
# ---------- Python (ruff) ----------
|
|
23
|
+
if echo "$changed_files" | grep -E '^(python/|tests/).*\.py$' >/dev/null 2>&1; then
|
|
24
|
+
py_changed=$(echo "$changed_files" | grep -E '^(python/|tests/).*\.py$' || true)
|
|
25
|
+
|
|
26
|
+
if [ -z "$RUFF_CMD" ]; then
|
|
27
|
+
echo "[pre-commit] ruff not found (and uv/uvx not available); skipping Python checks"
|
|
28
|
+
else
|
|
29
|
+
echo "[pre-commit] Running ruff format on staged Python files"
|
|
30
|
+
$RUFF_CMD format $py_changed
|
|
31
|
+
|
|
32
|
+
echo "[pre-commit] Running ruff check --fix on staged Python files"
|
|
33
|
+
$RUFF_CMD check --fix $py_changed
|
|
34
|
+
|
|
35
|
+
echo "[pre-commit] Running ruff check (repo-level)"
|
|
36
|
+
$RUFF_CMD check python/ tests/
|
|
37
|
+
fi
|
|
38
|
+
else
|
|
39
|
+
echo "[pre-commit] Skipping ruff (no Python changes staged)"
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
# ---------- Rust (fmt + clippy) ----------
|
|
43
|
+
if echo "$changed_files" | grep -E '(^src/.*\.rs$|^Cargo\.toml$|^build\.rs$)' >/dev/null 2>&1; then
|
|
44
|
+
if command -v cargo >/dev/null 2>&1; then
|
|
45
|
+
echo "[pre-commit] Running cargo fmt --all -- --check"
|
|
46
|
+
cargo fmt --all -- --check
|
|
47
|
+
|
|
48
|
+
echo "[pre-commit] Running cargo clippy --all-targets --all-features -- -D warnings"
|
|
49
|
+
cargo clippy --all-targets --all-features -- -D warnings
|
|
50
|
+
else
|
|
51
|
+
echo "[pre-commit] cargo not found; skipping Rust checks"
|
|
52
|
+
fi
|
|
53
|
+
else
|
|
54
|
+
echo "[pre-commit] Skipping cargo (no Rust changes staged)"
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
echo "[pre-commit] OK"
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
name: Bug report
|
|
2
|
+
description: Report a reproducible problem
|
|
3
|
+
labels: [bug]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Thanks for taking the time to report a bug! Please fill out the form below.
|
|
9
|
+
- type: input
|
|
10
|
+
id: version
|
|
11
|
+
attributes:
|
|
12
|
+
label: AuroraView version
|
|
13
|
+
placeholder: e.g. 0.2.4
|
|
14
|
+
validations:
|
|
15
|
+
required: true
|
|
16
|
+
- type: dropdown
|
|
17
|
+
id: os
|
|
18
|
+
attributes:
|
|
19
|
+
label: Operating system
|
|
20
|
+
options:
|
|
21
|
+
- Windows
|
|
22
|
+
- macOS
|
|
23
|
+
- Linux
|
|
24
|
+
validations:
|
|
25
|
+
required: true
|
|
26
|
+
- type: input
|
|
27
|
+
id: python
|
|
28
|
+
attributes:
|
|
29
|
+
label: Python version
|
|
30
|
+
placeholder: e.g. 3.11.9
|
|
31
|
+
- type: textarea
|
|
32
|
+
id: dcc
|
|
33
|
+
attributes:
|
|
34
|
+
label: DCC host and version (if applicable)
|
|
35
|
+
placeholder: e.g. Maya 2023 / Houdini 20 / Nuke 15 / Blender 4.x ...
|
|
36
|
+
- type: textarea
|
|
37
|
+
id: repro
|
|
38
|
+
attributes:
|
|
39
|
+
label: Steps to reproduce
|
|
40
|
+
description: Provide a minimal, complete, and reproducible example
|
|
41
|
+
placeholder: |
|
|
42
|
+
1. ...
|
|
43
|
+
2. ...
|
|
44
|
+
3. ...
|
|
45
|
+
validations:
|
|
46
|
+
required: true
|
|
47
|
+
- type: textarea
|
|
48
|
+
id: expected
|
|
49
|
+
attributes:
|
|
50
|
+
label: Expected behavior
|
|
51
|
+
- type: textarea
|
|
52
|
+
id: actual
|
|
53
|
+
attributes:
|
|
54
|
+
label: Actual behavior and logs/traceback
|
|
55
|
+
- type: checkboxes
|
|
56
|
+
id: checks
|
|
57
|
+
attributes:
|
|
58
|
+
label: Checklist
|
|
59
|
+
options:
|
|
60
|
+
- label: I searched existing issues
|
|
61
|
+
required: true
|
|
62
|
+
- label: I tested on the latest main build (if possible)
|
|
63
|
+
required: false
|
|
64
|
+
- label: I can provide a minimal repro script or project
|
|
65
|
+
required: false
|
|
66
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
name: Feature request
|
|
2
|
+
description: Propose an idea to improve AuroraView
|
|
3
|
+
labels: [enhancement]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
Thanks for the suggestion! Tell us what problem this would solve and why it matters.
|
|
9
|
+
- type: textarea
|
|
10
|
+
id: problem
|
|
11
|
+
attributes:
|
|
12
|
+
label: Problem statement
|
|
13
|
+
description: What problem are you trying to solve?
|
|
14
|
+
validations:
|
|
15
|
+
required: true
|
|
16
|
+
- type: textarea
|
|
17
|
+
id: proposal
|
|
18
|
+
attributes:
|
|
19
|
+
label: Proposed solution
|
|
20
|
+
description: Describe the solution you'd like
|
|
21
|
+
validations:
|
|
22
|
+
required: true
|
|
23
|
+
- type: textarea
|
|
24
|
+
id: alternatives
|
|
25
|
+
attributes:
|
|
26
|
+
label: Alternatives considered
|
|
27
|
+
- type: textarea
|
|
28
|
+
id: context
|
|
29
|
+
attributes:
|
|
30
|
+
label: Additional context
|
|
31
|
+
- type: checkboxes
|
|
32
|
+
id: scope
|
|
33
|
+
attributes:
|
|
34
|
+
label: Scope & impact
|
|
35
|
+
options:
|
|
36
|
+
- label: Backward compatible
|
|
37
|
+
- label: Requires docs update
|
|
38
|
+
- label: Requires API change
|
|
39
|
+
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
name: 'Build and Test AuroraView'
|
|
2
|
+
description: 'Builds AuroraView extension and runs tests'
|
|
3
|
+
|
|
4
|
+
inputs:
|
|
5
|
+
test-type:
|
|
6
|
+
description: 'Type of tests to run (basic, full, rust, python, benchmark)'
|
|
7
|
+
required: true
|
|
8
|
+
default: 'basic'
|
|
9
|
+
generate-stubs:
|
|
10
|
+
description: 'Whether to generate type stubs'
|
|
11
|
+
required: false
|
|
12
|
+
default: 'true'
|
|
13
|
+
upload-artifacts:
|
|
14
|
+
description: 'Whether to upload test artifacts'
|
|
15
|
+
required: false
|
|
16
|
+
default: 'false'
|
|
17
|
+
artifact-name:
|
|
18
|
+
description: 'Name for uploaded artifacts'
|
|
19
|
+
required: false
|
|
20
|
+
default: 'test-results'
|
|
21
|
+
|
|
22
|
+
outputs:
|
|
23
|
+
build-status:
|
|
24
|
+
description: 'Build status (success/failure)'
|
|
25
|
+
value: ${{ steps.build.outcome }}
|
|
26
|
+
test-status:
|
|
27
|
+
description: 'Test status (success/failure)'
|
|
28
|
+
value: ${{ steps.test.outcome }}
|
|
29
|
+
|
|
30
|
+
runs:
|
|
31
|
+
using: 'composite'
|
|
32
|
+
steps:
|
|
33
|
+
- name: Cache build artifacts
|
|
34
|
+
uses: actions/cache@v4
|
|
35
|
+
with:
|
|
36
|
+
path: |
|
|
37
|
+
target/release/
|
|
38
|
+
target/debug/
|
|
39
|
+
build/
|
|
40
|
+
key: ${{ runner.os }}-build-${{ hashFiles('Cargo.lock') }}-${{ github.sha }}
|
|
41
|
+
restore-keys: |
|
|
42
|
+
${{ runner.os }}-build-${{ hashFiles('Cargo.lock') }}-
|
|
43
|
+
${{ runner.os }}-build-
|
|
44
|
+
|
|
45
|
+
- name: Prefetch Cargo crates (retry)
|
|
46
|
+
shell: bash
|
|
47
|
+
run: |
|
|
48
|
+
set -e
|
|
49
|
+
n=0
|
|
50
|
+
until [ "$n" -ge 3 ]; do
|
|
51
|
+
echo "[TRY $((n+1))/3] cargo fetch...";
|
|
52
|
+
CARGO_HTTP_TIMEOUT=600 CARGO_NET_RETRY=10 cargo fetch --locked --verbose && break;
|
|
53
|
+
n=$((n+1));
|
|
54
|
+
echo "[WARN] cargo fetch failed, retrying in 5s..."; sleep 5;
|
|
55
|
+
done
|
|
56
|
+
|
|
57
|
+
- name: Build extension
|
|
58
|
+
id: build
|
|
59
|
+
shell: bash
|
|
60
|
+
run: |
|
|
61
|
+
uv pip install maturin
|
|
62
|
+
if [ "$RUNNER_OS" = "Windows" ]; then
|
|
63
|
+
echo "Building with Windows feature: win-webview2 + ext-module"
|
|
64
|
+
uv run maturin develop --features "win-webview2,ext-module"
|
|
65
|
+
else
|
|
66
|
+
echo "Building with ext-module feature"
|
|
67
|
+
uv run maturin develop --features "ext-module"
|
|
68
|
+
fi
|
|
69
|
+
env:
|
|
70
|
+
RUST_BACKTRACE: 1
|
|
71
|
+
CARGO_HTTP_TIMEOUT: '600'
|
|
72
|
+
CARGO_NET_RETRY: '10'
|
|
73
|
+
CARGO_REGISTRIES_CRATES_IO_PROTOCOL: sparse
|
|
74
|
+
|
|
75
|
+
- name: Install cargo-llvm-cov
|
|
76
|
+
if: inputs.test-type == 'rust' || inputs.test-type == 'full'
|
|
77
|
+
shell: bash
|
|
78
|
+
run: |
|
|
79
|
+
if ! command -v cargo-llvm-cov &> /dev/null; then
|
|
80
|
+
echo "Installing cargo-llvm-cov..."
|
|
81
|
+
cargo install cargo-llvm-cov --locked
|
|
82
|
+
fi
|
|
83
|
+
|
|
84
|
+
- name: Run tests
|
|
85
|
+
id: test
|
|
86
|
+
shell: bash
|
|
87
|
+
run: |
|
|
88
|
+
case "${{ inputs.test-type }}" in
|
|
89
|
+
"basic")
|
|
90
|
+
echo "Running basic import tests..."
|
|
91
|
+
just ci-test-basic
|
|
92
|
+
;;
|
|
93
|
+
"rust")
|
|
94
|
+
echo "Running Rust tests with coverage..."
|
|
95
|
+
echo " -> Rust integration tests with coverage..."
|
|
96
|
+
# Exclude ipc_batch_integration_tests which requires Python bindings
|
|
97
|
+
cargo llvm-cov --features "test-helpers" --lcov --output-path rust-coverage.lcov \
|
|
98
|
+
--test config_integration_tests \
|
|
99
|
+
--test file_protocol_integration_tests \
|
|
100
|
+
--test http_discovery_integration_tests \
|
|
101
|
+
--test ipc_json_integration_tests \
|
|
102
|
+
--test ipc_message_queue_integration_tests \
|
|
103
|
+
--test lifecycle_integration_tests \
|
|
104
|
+
--test mdns_integration_tests \
|
|
105
|
+
--test parent_monitor_integration_tests \
|
|
106
|
+
--test port_allocator_integration_tests \
|
|
107
|
+
--test protocol_handlers_integration_tests \
|
|
108
|
+
--test protocol_integration_tests \
|
|
109
|
+
--test standalone_integration_tests \
|
|
110
|
+
--test timer_integration_tests \
|
|
111
|
+
--test window_utils_integration_tests
|
|
112
|
+
echo " -> Rust doc tests..."
|
|
113
|
+
cargo test --doc
|
|
114
|
+
;;
|
|
115
|
+
"python")
|
|
116
|
+
echo "Running Python unit tests..."
|
|
117
|
+
just ci-test-python
|
|
118
|
+
;;
|
|
119
|
+
"full")
|
|
120
|
+
echo "Running comprehensive test suite..."
|
|
121
|
+
echo " -> Rust integration tests with coverage..."
|
|
122
|
+
# Exclude ipc_batch_integration_tests which requires Python bindings
|
|
123
|
+
cargo llvm-cov --features "test-helpers" --lcov --output-path rust-coverage.lcov \
|
|
124
|
+
--test config_integration_tests \
|
|
125
|
+
--test file_protocol_integration_tests \
|
|
126
|
+
--test http_discovery_integration_tests \
|
|
127
|
+
--test ipc_json_integration_tests \
|
|
128
|
+
--test ipc_message_queue_integration_tests \
|
|
129
|
+
--test lifecycle_integration_tests \
|
|
130
|
+
--test mdns_integration_tests \
|
|
131
|
+
--test parent_monitor_integration_tests \
|
|
132
|
+
--test port_allocator_integration_tests \
|
|
133
|
+
--test protocol_handlers_integration_tests \
|
|
134
|
+
--test protocol_integration_tests \
|
|
135
|
+
--test standalone_integration_tests \
|
|
136
|
+
--test timer_integration_tests \
|
|
137
|
+
--test window_utils_integration_tests
|
|
138
|
+
echo " -> Rust doc tests..."
|
|
139
|
+
cargo test --doc
|
|
140
|
+
echo " -> Python unit tests..."
|
|
141
|
+
just ci-test-python
|
|
142
|
+
echo " -> Basic functionality tests..."
|
|
143
|
+
just ci-test-basic
|
|
144
|
+
echo "[OK] All tests completed"
|
|
145
|
+
;;
|
|
146
|
+
*)
|
|
147
|
+
echo "[ERROR] Unknown test type: ${{ inputs.test-type }}"
|
|
148
|
+
echo "Available types: basic, rust, python, full"
|
|
149
|
+
exit 1
|
|
150
|
+
;;
|
|
151
|
+
esac
|
|
152
|
+
env:
|
|
153
|
+
PYTHONUNBUFFERED: 1
|
|
154
|
+
|
|
155
|
+
- name: Upload test artifacts
|
|
156
|
+
if: inputs.upload-artifacts == 'true' && always()
|
|
157
|
+
uses: actions/upload-artifact@v4
|
|
158
|
+
with:
|
|
159
|
+
name: ${{ inputs.artifact-name }}-${{ runner.os }}-${{ github.run_id }}
|
|
160
|
+
path: |
|
|
161
|
+
.pytest_cache/
|
|
162
|
+
htmlcov/
|
|
163
|
+
coverage.xml
|
|
164
|
+
rust-coverage.lcov
|
|
165
|
+
retention-days: 7
|
|
166
|
+
|