This document provides a high-level overview of exit code behavior across package managers. For detailed information, see the EXIT_CODES.md file in each package manager directory.
- ../README.md - Project overview
- ARCHITECTURE.md - Technical design and interfaces
- ../CONTRIBUTING.md - Development workflow and testing guide
- ../manager/apt/EXIT_CODES.md - APT-specific exit codes
- ../manager/yum/EXIT_CODES.md - YUM-specific exit codes
| Package Manager | "No Error" | "Updates Available" | "No Packages Found" | "Usage Error" |
|---|---|---|---|---|
| APT | 0 | N/A | 0 (success) | 100 |
| YUM | 0 | 100 (success!) | 0 (success) | 1 |
| Snap | 0 | N/A | 0 (success) | 64 |
| Flatpak | 0 | N/A | 1 (needs verify) | 1 |
- APT: 100 = error
- YUM: 100 = success (updates available)
- APT: Assumes 100 = "no packages found" (WRONG - it's an error!)
- Snap: Assumes 64 = "no packages found" (WRONG - it's usage error!)
- Never use generic exit code helpers - each PM is unique
- Test actual behavior - documentation can be wrong
- Each PM uses different tools - APT uses both
aptanddpkg-query - Verify through testing - not just documentation
- Central overview: This file (cross-PM comparison)
- Detailed docs:
manager/{pm}/EXIT_CODES.md(PM-specific behavior)
When implementing Option C (CommandBuilder), each package manager must:
- Handle its own exit codes specifically
- Document actual behavior (not assumptions)
- Test thoroughly in real environments
- Never rely on generic patterns
- APT: Remove incorrect handling of exit code 100 as "no packages found"
- Snap: Remove incorrect handling of exit code 64 as "no packages found"
- All PMs: Verify and document actual exit code behavior