Avatar for the reflex-dev user
reflex-dev
reflex
BlogDocsChangelog

Refactor AppHarness to use reflex run subprocess instead of threads

#5555
Comparing
devin/ENG-6317-1752182691
(
6186d1b
) with
main
(
5890982
)
CodSpeed Performance Gauge
0%
Improvements
0
Regressions
0
Untouched
8
New
0
Dropped
0
Ignored
0

Benchmarks

Passed

test_get_all_imports[_complicated_page]
tests/benchmarks/test_compilation.py::test_get_all_imports[_complicated_page]
CodSpeed Performance Gauge
0%
26.7 ms
26.6 ms
test_compile_stateful[_stateful_page]
tests/benchmarks/test_compilation.py::test_compile_stateful[_stateful_page]
CodSpeed Performance Gauge
0%
294.8 µs
294.4 µs
test_get_all_imports[_stateful_page]
tests/benchmarks/test_compilation.py::test_get_all_imports[_stateful_page]
CodSpeed Performance Gauge
0%
3.7 ms
3.7 ms
test_compile_page[_stateful_page]
tests/benchmarks/test_compilation.py::test_compile_page[_stateful_page]
CodSpeed Performance Gauge
0%
15.3 ms
15.3 ms
test_compile_page[_complicated_page]
tests/benchmarks/test_compilation.py::test_compile_page[_complicated_page]
CodSpeed Performance Gauge
0%
115 ms
114.9 ms
test_evaluate_page[_stateful_page]
tests/benchmarks/test_evaluate.py::test_evaluate_page[_stateful_page]
CodSpeed Performance Gauge
0%
6.1 ms
6.1 ms
test_evaluate_page[_complicated_page]
tests/benchmarks/test_evaluate.py::test_evaluate_page[_complicated_page]
CodSpeed Performance Gauge
0%
50 ms
50.1 ms
test_compile_stateful[_complicated_page]
tests/benchmarks/test_compilation.py::test_compile_stateful[_complicated_page]
CodSpeed Performance Gauge
0%
771 µs
773.3 µs

Commits

Click on a commit to change the comparison range
Base
main
5890982
0%
Refactor AppHarness to use reflex run subprocess instead of threads - Replace _start_backend and _start_frontend thread methods with _start_subprocess - Use new_process from reflex/utils/processes.py for subprocess management - Implement console output parsing to detect server startup - Update port management using handle_port for dynamic port assignment - Maintain API compatibility for state management methods - Update process cleanup for proper subprocess termination - Add compatibility attributes and methods for existing tests - Fix type annotations to resolve pyright variable override errors - Add port parameter to _start_backend for test compatibility - Fix docstring documentation for darglint compliance Fixes ENG-6317 Co-Authored-By: masen@reflex.dev <masen@reflex.dev>
66ee6b4
2 days ago
by devin-ai-integration[bot]
0%
Fix subprocess implementation issues in AppHarness - Add timeout and non-blocking stdout reading in _wait_for_servers - Simplify process cleanup logic in stop() method - Add Windows compatibility for subprocess stdout handling - Use daemon threads to avoid hanging on cleanup - Add proper error handling for process termination Fixes CI timeout issues in integration tests Co-Authored-By: masen@reflex.dev <masen@reflex.dev>
b7442dc
2 days ago
by devin-ai-integration[bot]
0%
Fix subprocess implementation with shell=True approach - Change from subprocess.Popen with argument list to shell=True with command string - Debug testing confirmed shell=True successfully captures both frontend and backend messages - Add fallback backend detection using port checking for additional robustness - Resolves core subprocess stdout capture issue causing all 12 integration test failures - Remove all debugging print statements and fix ruff-check issues Based on comprehensive subprocess behavior testing that showed: - Basic subprocess approach: Frontend=False, Backend=False - Shell=True approach: Frontend=True, Backend=True Co-Authored-By: masen@reflex.dev <masen@reflex.dev>
bb9b67f
2 days ago
by devin-ai-integration[bot]
0%
human fixups * enable logging to stdout * allow prod mode to work * better port selection algorithm * remove useless code * cleaner teardown * test fixups for compatibility
e20c257
14 hours ago
by masenf
0%
Merge remote changes and fix all darglint errors - Resolved merge conflict in reflex/testing.py - Added proper parameter documentation to _start_subprocess and _wait_for_servers methods - Fixed docstring documentation for set_state and modify_state to match actual NotImplementedError behavior - Updated get_state docstring to only document AssertionError (matches actual code) - All darglint checks now pass while preserving subprocess implementation improvements - Applied ruff formatting fixes Co-Authored-By: masen@reflex.dev <masen@reflex.dev>
6186d1b
13 hours ago
by devin-ai-integration[bot]
© 2025 CodSpeed Technology
Home Terms Privacy Docs