Skip to content

Releases: supanadit/phpv

Version 0.4.0

16 Mar 23:59
6661a98

Choose a tag to compare

🛡️ 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

16 Mar 22:41
cc05bcd

Choose a tag to compare

🎉 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:

  1. 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
  2. Quiet Mode (-q or --quiet) - Minimal output for CI/CD
    • Simple step progress messages
    • No animations or styling
    • Perfect for automated builds
  3. Verbose Mode (-V or --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: OutputMode enum (Quiet/Animation/Verbose)
  • New: StartSpinnerWithDisplay() and StopSpinnerWithClear() 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

16 Mar 21:46
549a38a

Choose a tag to compare

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=1 to 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

16 Mar 13:50
593999c

Choose a tag to compare

Pre-release
feat: support PHP 8.5

Version 0.1.3

16 Mar 13:35
ea95ef4

Choose a tag to compare

Version 0.1.3 Pre-release
Pre-release
chore: simplify readme

Version 0.1.2

16 Mar 01:12
c8627c6

Choose a tag to compare

Version 0.1.2 Pre-release
Pre-release
chore: remove redundant guide

Version 0.1.1

15 Mar 22:23
70bec46

Choose a tag to compare

Version 0.1.1 Pre-release
Pre-release
ci: add write permission for release asset uploads

Version 0.1.0: First release

15 Mar 22:20
bbafc18

Choose a tag to compare

Pre-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