Skip to content

Conversation

@bradhe
Copy link
Contributor

@bradhe bradhe commented Jan 20, 2026

Title says it all. When uv venv or uv sync fails during app startup, execution now aborts immediately with a Crashed status (because the developer needs to fix the issue) instead of continuing. Added 05-broken-dependencies example app with an intentionally non-existent package and added test_abort_on_dependency_installation_failure test that verifies the app crashes with a non-zero exit code when dependency installation fails.

This was probably historically missed because the apps would fail anyway along the way.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR ensures that application execution aborts immediately when dependency installation fails during startup, rather than continuing with broken dependencies. The implementation adds proper error handling for uv venv and uv sync failures, returning Crashed status with appropriate error variants.

Changes:

  • Added error handling to abort execution when uv venv or uv sync processes exit with non-zero codes
  • Created a test example app with intentionally broken dependencies to verify failure behavior
  • Added test case to verify apps crash with non-zero exit code when dependency installation fails

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
crates/tower-runtime/src/local.rs Added exit code checks for venv creation and dependency sync processes, returning errors when they fail
crates/tower-runtime/src/errors.rs Added DependencyInstallationFailed error variant
crates/tower-runtime/tests/local_test.rs Added test to verify crash behavior on dependency installation failure
crates/tower-runtime/tests/example-apps/05-broken-dependencies/pyproject.toml Created test app with non-existent dependency
crates/tower-runtime/tests/example-apps/05-broken-dependencies/main.py Added placeholder script that should never execute
crates/tower-runtime/tests/example-apps/05-broken-dependencies/Towerfile Created Towerfile configuration for broken dependencies test app

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@bradhe bradhe merged commit 59d84aa into develop Jan 20, 2026
5 checks passed
@bradhe bradhe deleted the features/abort-execution-when-installation-fails branch January 20, 2026 13:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants