Releases: supanadit/phpv
Releases · supanadit/phpv
Version 0.4.0
🛡️ Dependency Safety Guardrails
PHPV now includes intelligent version constraint checking for all dependencies! This helps ensure your builds are reproducible and compatible.
Key Features
- Smart Version Constraints - Define exact versions, compatibility ranges (
~2.12.0), or full ranges (>=2.12.0,<2.13.0) - Automatic Validation - Warns when system dependencies don't meet version requirements
- Recommended Versions - Always downloads the tested, recommended version by default
- Optional Dependencies - Flexibility for dependencies like flex/bison that aren't needed for all PHP versions
Example Constraint Syntax
// Recommended version with compatibility range
Libxml2: "2.12.7|~2.12.0" // Downloads 2.12.7, accepts any 2.12.x
Curl: "8.10.1|>=8.0.0" // Downloads 8.10.1, accepts 8.x+When running builds, you'll see helpful warnings like:
Dependency Constraint Warnings:
libxml2 version 2.11.7 does not match constraint (~2.12.0). Recommended: 2.12.7
Happy PHP building! 🐘
Version 0.3.0
🎉 New Features
Modern Terminal UI with Charm Libraries
- Glamour - Beautiful markdown rendering for styled output
- Bubbles - Interactive terminal UI components
- Lipgloss - Sophisticated styling and colors
- Log - Structured logging with colored output
Three Output Modes
Choose your preferred experience with new flags:
- Default Animation Mode - Spinner with stopwatch timer
- Animated spinner showing progress
- Elapsed time counter
[MM:SS] - Clean step-by-step progress
- No verbose build output clutter
- Quiet Mode (
-qor--quiet) - Minimal output for CI/CD- Simple step progress messages
- No animations or styling
- Perfect for automated builds
- Verbose Mode (
-Vor--verbose) - Full debug output- All command output streamed to terminal
- Complete build logs
- Debug information
- Useful for troubleshooting
✨ Improvements
Build Experience
- Styled step indicators:
Step 1/6: Building dependencies... - Dependency status shown with checkmarks and colors
- Build information displayed in styled boxes
- Success/failure indicators with clear icons
Spinner Animation
⠋ Step 2/6: Running buildconf... [0:01]
⠙ Step 3/6: Configuring PHP build... [0:15]
⠹ Step 4/6: Compiling PHP... [2:34]
✓ Step 4/6: Compiling PHP... done [2:45]
🛠️ Technical Changes
- New:
internal/ui/package with UI management - New:
OutputModeenum (Quiet/Animation/Verbose) - New:
StartSpinnerWithDisplay()andStopSpinnerWithClear()methods - Updated: Command execution utilities with mode-aware runners
- Updated: Build, dependency, and download services to use new UI
📝 Usage Examples
# Default - Animated spinner with timer
phpv build 8.4
# Quiet - Minimal output
phpv build 8.4 --quiet
# Verbose - Full logs
phpv build 8.4 --verbose🎨 Visual Improvements
- Color-coded output with modern palette
- Rounded box borders for important info
- Success (✓) and error (✗) indicators
- Checkmark lists for dependency status
- Code blocks styled for paths and commands
Version 0.2.0
Release Changelog: v0.2.0
✨ Major Features
Hybrid Toolchain for PHP 8.3+
- PHP 8.3, 8.4, and 8.5 now use system GCC by default instead of LLVM
- Dramatically faster builds - no LLVM download required
- Auto-detects system dependencies - uses system libraries when available (zlib, openssl, curl, libxml2, oniguruma)
Smart Dependency Management - Version-aware system dependency checking
- Automatically falls back to building dependencies when system versions are too old
- New environment variable:
PHPV_USE_LLVM=1to force LLVM toolchain for any PHP version
🚀 Performance Improvements
- Reduced build time - skips LLVM toolchain download for PHP 8.3+
- Less disk usage - leverages system packages instead of building everything
- Smart caching - only builds what's needed in user space
🛠️ Compatibility
- PHP 8.3+: System GCC + system deps (new default)
- PHP < 8.3: LLVM toolchain (unchanged behavior)
- All distributions: Auto-detects available system packages
🔧 Bug Fixes
- Fixed system include paths when using system libraries
- Fixed configure flag for oniguruma in PHP 8.5
- Improved dependency version detection
Version 0.1.4: Start Supporting PHP 8.5
feat: support PHP 8.5
Version 0.1.3
chore: simplify readme
Version 0.1.2
chore: remove redundant guide
Version 0.1.1
ci: add write permission for release asset uploads
Version 0.1.0: First release
First release with automated CI/CD pipeline.
Changes
- ci: add release workflow for building phpv binaries
- Supports linux-amd64 and linux-arm64 architectures
- Binaries available as GitHub release artifacts