2 Commits
Author SHA1 Message Date
Michael BiancoandGitHub 25d9662825 test: add http content assertion to integration tests (#428)
* build: ignore local claude settings

* test: add httpCheck expectedOutput assertions

* test: add expectedOutput to httpCheck to assert against http response content

* test: remove expectedOutput for FE rendered content
2026-01-15 09:49:44 -07:00
cbdb236184 feat: automatic start command for fastapi applications, improved provider docs (#353)
* docs: update provider documentation with missing features

Added missing documentation for Node, Python, and Ruby providers:

Node.js:
- Added .node-version file support for version detection
- Documented Tanstack Start framework detection and caching
- Added Puppeteer system dependencies documentation
- Clarified React Router cache support

Python:
- Added FastHTML framework detection and start command
- Documented Flask with gunicorn start command
- Added FastAPI framework detection
- Documented additional main file names (app.py, bot.py, hello.py, server.py)
- Added pycairo system dependency documentation

Ruby:
- Documented Node.js integration for Ruby projects
- Added Bootsnap precompilation support documentation
- Documented Propshaft asset pipeline support
- Added local path dependencies support documentation
- Documented Bundler version auto-detection
- Added YJIT/rustc requirement for Ruby 3.2+
- Documented jemalloc performance optimization
- Updated Charlock Holmes dependencies to include full list

* docs: complete FastAPI documentation section

Clarify that FastAPI detection is for metadata only and doesn't provide
automatic start command configuration. Users should configure their own
production ASGI server.

* feat: add python-fastapi example project

Add example project demonstrating FastAPI with custom start command
configuration. This example shows how to configure FastAPI applications
that need explicit ASGI server configuration.

Features:
- Simple FastAPI app with root and health endpoints
- Uses uvicorn as the ASGI server
- Custom start command in railpack.json
- HTTP check test to verify the app runs correctly

* feat: add automatic FastAPI start command detection

Add automatic start command detection for FastAPI projects when uvicorn
is available as a dependency, similar to how Flask and FastHTML are
handled.

Changes:
- Add isFastapi() method to Python provider
- Automatically detect FastAPI + uvicorn and set start command
- Update StartCommandHelp to include FastAPI
- Refactor getRuntime() to use isFastapi() method for consistency

Example updates:
- Convert python-fastapi example to use uv package manager
- Remove railpack.json (no longer needed with automatic detection)
- Add pyproject.toml and uv.lock for dependency management

Documentation updates:
- Update FastAPI section to reflect automatic start command detection
- Clarify that uvicorn must be present as a dependency

* refactor: remove unused /health endpoint from FastAPI example

* test: update snapshot

---------

Co-authored-by: Hanzo Dev <[email protected]>
2025-11-23 07:54:54 -07:00