Zakir032002 opened a new pull request, #3385: URL: https://github.com/apache/fory/pull/3385
Why? Rust users currently must manually install Python and fory-compiler to use foryc, making builds non-reproducible and CI setup painful across macOS/Linux/Windows and x86_64/aarch64. This PR delivers Phase 1 of #3292: a CI workflow that builds, validates, and uploads self-contained foryc binaries for all supported platforms — the foundation required before the foryc-bin and foryc-build Rust crates can be built in Phase 2. What does this PR do? Adds three files: compiler/foryc.spec — Reproducible PyInstaller build spec. Enumerates all fory_compiler modules as hiddenimports to prevent future refactoring from silently dropping modules. Excludes ~15 unused stdlib modules to keep binary size below the 10 MB crates.io limit enforced in CI. compiler/requirements-dev.txt — Pins pyinstaller>=6.0,<7.0 as a dev-only dependency, explicitly separated from pyproject.toml so it is never included in the published PyPI package. .github/workflows/build-foryc-binaries.yml — Matrix CI workflow that builds, UPX-compresses, validates, and uploads 5 standalone foryc binaries: linux-x86_64 (ubuntu-22.04) linux-aarch64 (ubuntu-24.04-arm, native runner) macos-x86_64 (macos-15-intel) macos-aarch64 (macos-15, ad-hoc codesigned after UPX) windows-x86_64 (windows-latest) Each binary is validated on its native runner with --help and an end-to-end demo.fdl → Rust compile. A hard 10 MB size assertion gates Phase 2 crates.io embedding. windows-aarch64 is not included — GitHub Actions has no hosted native Windows ARM runner and PyInstaller cannot cross-compile. Related issues Closes #3292 (Phase 1 only — Phase 2: foryc-bin/foryc-build crates; Phase 3: docs) Benchmark Not applicable — this PR adds CI infrastructure only, no runtime code changes. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
