Skip to content

Abort execution when installation fails - #177

Merged
bradhe merged 2 commits into
developfrom
features/abort-execution-when-installation-fails
Jan 20, 2026
Merged

Abort execution when installation fails#177
bradhe merged 2 commits into
developfrom
features/abort-execution-when-installation-fails

Conversation

@bradhe

Copy link
Copy Markdown
Contributor

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.

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

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
FileDescription
crates/tower-runtime/src/local.rsAdded exit code checks for venv creation and dependency sync processes, returning errors when they fail
crates/tower-runtime/src/errors.rsAdded DependencyInstallationFailed error variant
crates/tower-runtime/tests/local_test.rsAdded test to verify crash behavior on dependency installation failure
crates/tower-runtime/tests/example-apps/05-broken-dependencies/pyproject.tomlCreated test app with non-existent dependency
crates/tower-runtime/tests/example-apps/05-broken-dependencies/main.pyAdded placeholder script that should never execute
crates/tower-runtime/tests/example-apps/05-broken-dependencies/TowerfileCreated Towerfile configuration for broken dependencies test app

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

Comment threadcrates/tower-runtime/src/errors.rs
Comment threadcrates/tower-runtime/src/local.rs
@bradhe
bradhe merged commit 59d84aa into developJan 20, 2026
5 checks passed
@bradhe
bradhe deleted the features/abort-execution-when-installation-fails branch January 20, 2026 13:54
Sign up for freeto 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

@bradhe@konstantinoscs