Skip to content

2.3.0

Compare
Choose a tag to compare
@crazywhalecc crazywhalecc released this 13 Jul 17:36
· 143 commits to main since this release
54f7837

Update Notes

The main content of this update is the pre-built dependency library. For common extension combinations and dependencies, using prebuilt libraries can save 40-50% of build time, just need to add --prefer-pre-built option for download 🚀 !

🤖 CI Updates

🔨 Framework Updates

  • chore: Adjust bin/spc-alpine-docker, add pkgroot for Dockerfile
  • feat: Add config pre-built.json
  • feat: Add method LibraryBase->setup(bool $force = false)
  • feat: Add method LibraryBase->getName() (same as $lib::NAME)
  • feat: Add method LibraryBase->beforePack()
  • feat: Add method LibraryBase->install()
  • chore: Now we extract libs before building each of libs instead of all libs
  • fix: --ignore-cache-source always working even if not specified
  • feat: Add --prefer-pre-built for download command
  • feat: Add command dev:pack-lib (build and pack library as pre-built release)
  • chore: Disable some redundant log outputs
  • feat: Add method Config::getPreBuilt(string $name)
  • feat: Update method Downloader::getLatestGithubRelease(string $name, array $source, bool $match_result = true)
  • chore: Add $lock_as for download method
  • chore: Remove suffix for LicenseDumper

📚 Dependency, PHP and Extension Updates

  • fix: opcache not compiling on Windows
  • feat: Add pre-built libraries: brotli,bip2,gmp,icu,libargon2,libavif,libcares,libevent,libiconv,liblz4,libpng,libsodium,libtiff,libwebp,libyaml,ncurses,onig,openssl,pkg-config,readline,sqlite,unixodbc,xz,zlib
  • fix: openssl build bug for PHP 8.0
  • fix: swoole confict with libevent
  • chore: Simplify and fix icu,brotli,libargon2,libevent,libiconv,liblz4,ncurses,openssl build files for pre-built libs
  • chore: Change patch pkgconfig prefix to ${pcfiledir}/../..
  • fix: Newer version of libavif build failed bug #503
  • chore: Use xz instead of gz for faster php-src download
  • fix: sqlite build for windows not supporting different visual studio version

⚠️ Breaking Changes

All breaking changes in this version only affect the API and internal functions, and do not affect the default command line behavior. Feel free to upgrade in your CI workflow and projects.

  • Constant rename: BUILD_STATUS_xxx -> LIB_STATUS_xxx
  • Constant rename: BUILD_STATUS_FAILED -> LIB_STATUS_BUILD_FAILED
  • Add new constant: LIB_STATUS_INSTALL_FAILED
  • Patch point: before-libs-extract -> before-lib[{lib_name}]-extract
  • Patch point: after-libs-extract -> after-lib[{lib_name}]-extract
  • BuilderBase->buildLibs() -> BuilderBase->setupLibs()
  • CustomSourceBase->fetch(bool $force = false) -> CustomSourceBase->fetch(bool $force = false, ?array $config = null, int $lock_as = SPC_LOCK_SOURCE)

:octocat: What's Changed (PR)

🧑‍🤝‍🧑 New Contributors

Full Changelog: 2.2.4...2.3.0