also looking at this
chore(deps): update all non-major dependencies
#185
10 files
+301
-78
Review threads live on the whole diff, not on one commit, so none are shown here - a thread's line means something in the branch's final form, and painting it into an intermediate step would put it on code it is not about.
| @@ -171,7 +171,22 @@ jobs: | ||
| 171 | 171 | |
| 172 | 172 | # Pre-install dependencies to ensure they're available |
| 173 | 173 | echo "🔧 Pre-installing dependencies via Launchpad..." |
| 174 | bun run launchpad install php --deps-only || echo "⚠️ Dependency installation had issues, continuing anyway" | |
| 174 | bun run launchpad install php --deps-only | |
| 175 | ||
| 176 | # Wait for dependencies to be fully installed | |
| 177 | echo "⏳ Waiting for dependency installation to complete..." | |
| 178 | sleep 5 | |
| 179 | ||
| 180 | # Debug: Check if pkg-config is available | |
| 181 | echo "🔍 Checking for pkg-config..." | |
| 182 | if command -v pkg-config >/dev/null 2>&1; then | |
| 183 | echo "✅ pkg-config found: $(which pkg-config)" | |
| 184 | echo "📋 pkg-config version: $(pkg-config --version)" | |
| 185 | else | |
| 186 | echo "❌ pkg-config not found in PATH" | |
| 187 | echo "🔍 Searching for pkg-config in .local..." | |
| 188 | find "$HOME/.local" -name "pkg-config" -type f 2>/dev/null || echo "No pkg-config found in .local" | |
| 189 | fi | |
| 175 | 190 | |
| 176 | 191 | # Debug: Check if ICU libraries are available |
| 177 | 192 | echo "🔍 Checking for ICU libraries..." |
| @@ -188,11 +203,39 @@ jobs: | ||
| 188 | 203 | echo "❌ ICU libraries not found" |
| 189 | 204 | fi |
| 190 | 205 | |
| 206 | # Debug: Check libxml2 libraries | |
| 207 | echo "🔍 Checking for libxml2 libraries..." | |
| 208 | if [ -d "$HOME/.local/gnome.org/libxml2" ]; then | |
| 209 | echo "✅ libxml2 libraries found at: $HOME/.local/gnome.org/libxml2" | |
| 210 | ls -la "$HOME/.local/gnome.org/libxml2/" | |
| 211 | if [ -f "$HOME/.local/gnome.org/libxml2"/*/lib/pkgconfig/libxml-2.0.pc ]; then | |
| 212 | echo "✅ libxml2 pkgconfig files found" | |
| 213 | find "$HOME/.local/gnome.org/libxml2" -name "libxml-2.0.pc" -type f | |
| 214 | else | |
| 215 | echo "❌ libxml2 pkgconfig files not found" | |
| 216 | fi | |
| 217 | else | |
| 218 | echo "❌ libxml2 libraries not found" | |
| 219 | fi | |
| 220 | ||
| 191 | 221 | # Debug: Check PATH and PKG_CONFIG_PATH |
| 192 | 222 | echo "🔍 Environment check:" |
| 193 | 223 | echo "PATH includes unicode.org: $(echo $PATH | grep -o unicode.org || echo 'NO')" |
| 224 | echo "PATH includes freedesktop.org: $(echo $PATH | grep -o freedesktop.org || echo 'NO')" | |
| 194 | 225 | echo "PKG_CONFIG_PATH: ${PKG_CONFIG_PATH:-'NOT SET'}" |
| 195 | 226 | |
| 227 | # Debug: Check if Launchpad environment script exists | |
| 228 | echo "🔍 Checking for Launchpad environment..." | |
| 229 | if [ -f "$HOME/.local/launchpad.sh" ]; then | |
| 230 | echo "✅ Launchpad environment script found" | |
| 231 | echo "📋 Sourcing environment to check paths..." | |
| 232 | source "$HOME/.local/launchpad.sh" | |
| 233 | echo "PATH after sourcing: ${PATH:0:200}..." | |
| 234 | echo "PKG_CONFIG_PATH after sourcing: ${PKG_CONFIG_PATH:-'NOT SET'}" | |
| 235 | else | |
| 236 | echo "❌ Launchpad environment script not found" | |
| 237 | fi | |
| 238 | ||
| 196 | 239 | - name: Install build dependencies (Windows) |
| 197 | 240 | if: matrix.platform == 'win32' |
| 198 | 241 | run: | |
| @@ -204,6 +247,7 @@ jobs: | ||
| 204 | 247 | echo "Windows build dependencies installed for PHP compilation" |
| 205 | 248 | |
| 206 | 249 | - name: Build PHP |
| 250 | shell: bash | |
| 207 | 251 | env: |
| 208 | 252 | PHP_VERSION: ${{ matrix.php_version }} |
| 209 | 253 | PHP_CONFIG: ${{ matrix.config }} |
| @@ -211,7 +255,70 @@ jobs: | ||
| 211 | 255 | TARGET_ARCH: ${{ matrix.arch }} |
| 212 | 256 | BUILD_DIR: ${{ github.workspace }}/build |
| 213 | 257 | OUTPUT_DIR: ${{ github.workspace }}/binaries |
| 214 | run: bun run scripts/build-php.ts | |
| 258 | run: | | |
| 259 | # Source Launchpad environment if available (macOS only) | |
| 260 | if [ "$" = "darwin" ]; then | |
| 261 | # Find and source the best available Launchpad environment | |
| 262 | if [ -f "$HOME/.local/build-env.sh" ]; then | |
| 263 | echo "🔧 Sourcing Launchpad build environment for macOS build..." | |
| 264 | source "$HOME/.local/build-env.sh" | |
| 265 | echo "✅ Environment sourced from build-env.sh" | |
| 266 | elif [ -f "$HOME/.local/share/launchpad/global/build-env.sh" ]; then | |
| 267 | echo "🔧 Sourcing global Launchpad environment for macOS build..." | |
| 268 | source "$HOME/.local/share/launchpad/global/build-env.sh" | |
| 269 | echo "✅ Environment sourced from global build-env.sh" | |
| 270 | else | |
| 271 | echo "⚠️ No Launchpad environment file found" | |
| 272 | fi | |
| 273 | ||
| 274 | # Always ensure pkg-config is available - find it dynamically | |
| 275 | echo "🔍 Finding and adding pkg-config to PATH..." | |
| 276 | PKG_CONFIG_PATH_FOUND=$(find "$HOME/.local" -name "pkg-config" -type f 2>/dev/null | head -1) | |
| 277 | if [ -n "$PKG_CONFIG_PATH_FOUND" ]; then | |
| 278 | PKG_CONFIG_DIR=$(dirname "$PKG_CONFIG_PATH_FOUND") | |
| 279 | export PATH="$PKG_CONFIG_DIR:$PATH" | |
| 280 | echo "✅ Added pkg-config to PATH from: $PKG_CONFIG_DIR" | |
| 281 | fi | |
| 282 | ||
| 283 | # Also ensure sed is available | |
| 284 | SED_PATH_FOUND=$(find "$HOME/.local" -path "*/gnu.org/sed/*/bin/sed" -type f 2>/dev/null | head -1) | |
| 285 | if [ -n "$SED_PATH_FOUND" ]; then | |
| 286 | SED_DIR=$(dirname "$SED_PATH_FOUND") | |
| 287 | export PATH="$SED_DIR:$PATH" | |
| 288 | echo "✅ Added sed to PATH from: $SED_DIR" | |
| 289 | fi | |
| 290 | ||
| 291 | echo "✅ Current PATH includes freedesktop.org: $(echo $PATH | grep -o freedesktop.org || echo 'NO')" | |
| 292 | echo "✅ PKG_CONFIG_PATH: ${PKG_CONFIG_PATH:-'NOT SET'}" | |
| 293 | ||
| 294 | # Verify pkg-config is accessible and set up PKG_CONFIG_PATH | |
| 295 | if command -v pkg-config >/dev/null 2>&1; then | |
| 296 | echo "✅ pkg-config is accessible: $(which pkg-config)" | |
| 297 | echo "✅ pkg-config version: $(pkg-config --version)" | |
| 298 | ||
| 299 | # Ensure PKG_CONFIG_PATH includes all Launchpad library paths | |
| 300 | echo "🔧 Setting up comprehensive PKG_CONFIG_PATH..." | |
| 301 | PKG_PATHS=$(find "$HOME/.local" -name "pkgconfig" -type d 2>/dev/null | tr '\n' ':') | |
| 302 | export PKG_CONFIG_PATH="$PKG_PATHS:${PKG_CONFIG_PATH:-}" | |
| 303 | echo "✅ PKG_CONFIG_PATH set to: $PKG_CONFIG_PATH" | |
| 304 | ||
| 305 | # Test libxml-2.0 specifically | |
| 306 | if pkg-config --exists libxml-2.0; then | |
| 307 | echo "✅ libxml-2.0 package found via pkg-config" | |
| 308 | echo "📋 libxml-2.0 cflags: $(pkg-config --cflags libxml-2.0)" | |
| 309 | else | |
| 310 | echo "❌ libxml-2.0 package not found via pkg-config" | |
| 311 | echo "🔍 Available packages: $(pkg-config --list-all | head -10)" | |
| 312 | fi | |
| 313 | else | |
| 314 | echo "❌ pkg-config still not accessible" | |
| 315 | echo "🔍 All pkg-config instances:" | |
| 316 | find "$HOME/.local" -name "pkg-config" -type f 2>/dev/null | |
| 317 | fi | |
| 318 | fi | |
| 319 | ||
| 320 | # Run the build script with enhanced environment | |
| 321 | bun run scripts/build-php.ts | |
| 215 | 322 | |
| 216 | 323 | - name: Create tarball (Unix) |
| 217 | 324 | if: matrix.platform != 'win32' |
| @@ -745,7 +852,7 @@ jobs: | ||
| 745 | 852 | echo " - Manifest file size: $(stat -c%s manifest.json 2>/dev/null || stat -f%z manifest.json) bytes" |
| 746 | 853 | |
| 747 | 854 | - name: Create GitHub Release |
| 748 | uses: softprops/action-gh-release@v1 | |
| 855 | uses: softprops/action-gh-release@v2.3.3 | |
| 749 | 856 | with: |
| 750 | 857 | tag_name: binaries-${{ github.run_number }} |
| 751 | 858 | name: PHP Binaries - Build ${{ github.run_number }} |
| @@ -17,43 +17,36 @@ | ||
| 17 | 17 | "keywords": ["homebrew", "pkgx", "bun", "package"], |
| 18 | 18 | "scripts": { |
| 19 | 19 | "build": "for dir in packages/*; do if [ -f \"$dir/package.json\" ]; then echo \"Building $dir\" && bun run --cwd $dir build; fi; done", |
| 20 | "fresh": "bunx rimraf node_modules/ bun.lock && bun i", | |
| 21 | "test": "bun test", | |
| 22 | 20 | "lint": "bunx --bun eslint .", |
| 23 | 21 | "lint:fix": "bunx --bun eslint . --fix", |
| 24 | "changelog": "bunx logsmith --verbose", | |
| 25 | "changelog:generate": "bunx logsmith --output CHANGELOG.md", | |
| 26 | "release": "bun run changelog:generate && bunx bumpx prompt --recursive", | |
| 27 | "postinstall": "bunx git-hooks", | |
| 22 | "fresh": "bunx rimraf node_modules/ bun.lock && bun i", | |
| 23 | "changelog": "bunx --bun changelogen --output CHANGELOG.md", | |
| 24 | "release": "bun run changelog && bunx --bun bumpp -r --all", | |
| 25 | "test": "bun test", | |
| 28 | 26 | "dev:docs": "bun vitepress dev docs", |
| 29 | 27 | "build:docs": "bun vitepress build docs", |
| 30 | 28 | "preview:docs": "bun vitepress preview docs", |
| 31 | 29 | "typecheck": "bun --bun tsc --noEmit" |
| 32 | 30 | }, |
| 33 | 31 | "devDependencies": { |
| 34 | "@stacksjs/bumpx": "^0.1.84", | |
| 35 | 32 | "@stacksjs/docs": "^0.70.23", |
| 36 | 33 | "@stacksjs/eslint-config": "^4.14.0-beta.3", |
| 37 | "@stacksjs/gitlint": "^0.1.5", | |
| 38 | 34 | "@stacksjs/launchpad": "workspace:*", |
| 39 | "@stacksjs/logsmith": "^0.1.18", | |
| 40 | "@types/bun": "^1.2.22", | |
| 41 | "buddy-bot": "^0.9.7", | |
| 42 | "bun-git-hooks": "^0.2.19", | |
| 35 | "@types/bun": "^1.2.20", | |
| 36 | "buddy-bot": "^0.8.8", | |
| 37 | "bumpp": "^10.2.3", | |
| 43 | 38 | "bun-plugin-dtsx": "0.21.12", |
| 39 | "changelogen": "^0.6.2", | |
| 40 | "lint-staged": "^15.5.2", | |
| 41 | "simple-git-hooks": "^2.13.1", | |
| 44 | 42 | "typescript": "^5.9.2" |
| 45 | 43 | }, |
| 46 | 44 | "overrides": { |
| 47 | 45 | "@stacksjs/dtsx": "0.9.5", |
| 48 | 46 | "unconfig": "0.3.10" |
| 49 | 47 | }, |
| 50 | "git-hooks": { | |
| 51 | "pre-commit": { | |
| 52 | "staged-lint": { | |
| 53 | "*.{js,ts,json,yaml,yml,md}": "bunx --bun eslint --fix" | |
| 54 | } | |
| 55 | }, | |
| 56 | "commit-msg": "bunx gitlint --edit .git/COMMIT_EDITMSG" | |
| 48 | "lint-staged": { | |
| 49 | "*.{js,ts}": "bunx --bun eslint . --fix" | |
| 57 | 50 | }, |
| 58 | 51 | "workspaces": [ |
| 59 | 52 | "packages/*" |
| @@ -2,7 +2,7 @@ | ||
| 2 | 2 | "name": "@stacksjs/launchpad", |
| 3 | 3 | "type": "module", |
| 4 | 4 | "version": "0.6.4", |
| 5 | "packageManager": "bun@1.2.21", | |
| 5 | "packageManager": "bun", | |
| 6 | 6 | "description": "Like Homebrew, but faster.", |
| 7 | 7 | "author": "Chris Breuer <chris@stacksjs.org>", |
| 8 | 8 | "license": "MIT", |
| @@ -64,7 +64,7 @@ | ||
| 64 | 64 | "typecheck": "bun --bun tsc --noEmit --skipLibCheck" |
| 65 | 65 | }, |
| 66 | 66 | "dependencies": { |
| 67 | "bunfig": "^0.15.0", | |
| 67 | "bunfig": "^0.11.1", | |
| 68 | 68 | "cac": "^6.7.14", |
| 69 | 69 | "ts-pkgx": "^0.4.76" |
| 70 | 70 | }, |