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 --scie option to produce native PEX exes. #2466

Merged
merged 12 commits into from
Jul 17, 2024

Commits on Jul 15, 2024

  1. Add --scie option to produce native PEX exes.

    You can now specify `--scie {eager,lazy}` when building a PEX file and
    one or more additional native executable PEX scies will be produced
    along side the PEX file. These PEX scies will contain a portable CPython
    interpreter from [Python Standalone Builds][PBS] in the `--scie eager`
    case and will instead fetch a portable CPython interpreter just in time
    on first boot on a given machine if needed in the `--scie lazy` case.
    
    Although Pex will pick the target platforms and target portable CPython
    interpreter version automatically, if more control is desired over which
    platforms are targeted and which Python version is used, then
    `--scie-platform`, `--scie-pbs-release`, and `--scie-python-version` can
    be specified.
    
    Closes pex-tool#636
    Closes pex-tool#1007
    Closes pex-tool#2096
    
    [PBS]: https://github.com/indygreg/python-build-standalone
    jsirois committed Jul 15, 2024
    Configuration menu
    Copy the full SHA
    96cf9a2 View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2024

  1. Add integration tests for basic --scie support.

    This stresses the full matrix of basic cases (no `--scie-*` options).
    jsirois committed Jul 16, 2024
    Configuration menu
    Copy the full SHA
    fa18f60 View commit details
    Browse the repository at this point in the history
  2. Fix stray debug XXX.

    jsirois committed Jul 16, 2024
    Configuration menu
    Copy the full SHA
    66aeb9f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    82c629d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    cbb96fd View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    701001c View commit details
    Browse the repository at this point in the history
  6. Add a test for multiple platforms.

    Exercise platform / interpreter auto detection as well as explicit
    restriction via `--scie-platform`. Also open up control via `PEX_*`
    env vars: there was no need to mask thse for proper scie operation
    and the end result is a scie that works exactly like the PEX it was
    built from.
    jsirois committed Jul 16, 2024
    Configuration menu
    Copy the full SHA
    61f55a4 View commit details
    Browse the repository at this point in the history
  7. Add remaining tests.

    jsirois committed Jul 16, 2024
    Configuration menu
    Copy the full SHA
    0cdd1b2 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    df15201 View commit details
    Browse the repository at this point in the history
  9. Fix copypasta.

    jsirois committed Jul 16, 2024
    Configuration menu
    Copy the full SHA
    0f3eba1 View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2024

  1. Various cleanups.

    jsirois committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    d751576 View commit details
    Browse the repository at this point in the history
  2. @zmanji speaks sense

    jsirois committed Jul 17, 2024
    Configuration menu
    Copy the full SHA
    7a8f197 View commit details
    Browse the repository at this point in the history