Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add pre-built lib feature, and more bugfix for 2.3 #502

Merged
merged 43 commits into from
Jul 13, 2024
Merged

Conversation

crazywhalecc
Copy link
Owner

@crazywhalecc crazywhalecc commented Jul 7, 2024

What does this PR do?

Fix #490

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 libavif build fails because it needs libyuv #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)

Checklist before merging

If your PR involves the changes mentioned below and completed the action, please tick the corresponding option.
If a modification is not involved, please skip it directly.

  • If it's an extension or dependency update, make sure adding related extensions in src/global/test-extensions.php.
  • If you changed the behavior of static-php-cli, update docs in ./docs/.
  • If you updated config/xxx.json content, run bin/spc dev:sort-config xxx.
  • Update README.md
  • Check every new pre-built availability before merge

@crazywhalecc crazywhalecc added enhancement New feature or request kind/framework Issues related to CLI app framework mixed PR This PR contains multiple updates labels Jul 7, 2024
@crazywhalecc crazywhalecc added the need test This PR has not been tested yet, cannot merge now label Jul 12, 2024
@crazywhalecc crazywhalecc changed the title Add pre-built lib feature Add pre-built lib feature, and more bugfix for 2.3 Jul 12, 2024
@crazywhalecc crazywhalecc merged commit 758b697 into main Jul 13, 2024
5 of 21 checks passed
@crazywhalecc crazywhalecc deleted the pre-built-libs branch July 13, 2024 17:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request kind/framework Issues related to CLI app framework mixed PR This PR contains multiple updates need test This PR has not been tested yet, cannot merge now
Projects
None yet
Development

Successfully merging this pull request may close these issues.

SPC 2.3 Hosting Dependencies Roadmap
1 participant