Pre-release v1.1.0 #82
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This pull request introduces significant changes to support running the backend using PyPy for improved performance, updates the development and deployment workflow, and makes several related improvements across the codebase and documentation. The most important changes are grouped below.
Backend Runtime and Dependency Management
pypy:3.11-sliminstead ofpython:3.12.11-slim, updated dependency installation, and adjusted file copying inbackend/Dockerfileto optimize for PyPy.socketifyserver instead ofuvicorn. [1] [2] [3]backend/dev.pydevelopment entrypoint, as development now uses PyPy andsocketifydirectly..dockerignore,.gitignore, and related ignore files to exclude PyPy binaries and artifacts. [1] [2] [3]Database and Dependency Updates
postgres://URI scheme to the modernpsycopg://scheme inbackend/app/db.pyfor all environments.uvicorn,uvloop, andasyncpg, and addedsocketify,psycopg[binary],psycopg-pool, andanyiotobackend/requirements.txt. [1] [2]backend/run_server.shto usepypy -m socketifyinstead ofuvicorn, and set the number of workers dynamically.Performance and Benchmarking
backend/perfdirectory with configuration (pixi.toml,requirements.txt,.gitignore,.gitattributes), a minimalapp.pyfor performance testing, and aninstall.shscript to automate PyPy setup and run benchmarks comparingsocketify,uvicorn, andgranianservers. [1] [2] [3] [4] [5] [6]Documentation and Licensing
pixiinstead ofmicromambafor analysis environments.Miscellaneous Fixes and Improvements
backend/app/utils/executor/ssh.pyfor cleaner TLS block handling and fixed a minor logging bug. [1] [2] [3] [4]backend/app/main.py(likely temporary).pixi.tomlto only supportlinux-64platform.These changes collectively modernize the backend stack, improve performance through PyPy and
socketify, and streamline development and deployment workflows.