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

Update python distributions, setup workflows #1

Open
wants to merge 15 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/build-exe.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
cross: true
- os: 'ubuntu-22.04'
triple: 'x86_64-unknown-linux-musl'
- os: 'macos-12'
- os: 'macos-14'
triple: 'aarch64-apple-darwin'
- os: 'macos-12'
triple: 'x86_64-apple-darwin'
Expand Down Expand Up @@ -88,7 +88,7 @@ jobs:
shell: bash
run: |
if [ "${{ matrix.target.triple }}" = "aarch64-apple-darwin" ]; then
export MACOSX_DEPLOYMENT_TARGET=11.0
export MACOSX_DEPLOYMENT_TARGET=14.0
elif [ "${{ matrix.target.triple }}" = "x86_64-apple-darwin" ]; then
export MACOSX_DEPLOYMENT_TARGET=10.9
fi
Expand Down Expand Up @@ -136,7 +136,7 @@ jobs:
macos-universal:
needs:
- build
runs-on: 'macos-12'
runs-on: 'macos-14'
steps:
- uses: actions/checkout@v3
with:
Expand Down
8 changes: 0 additions & 8 deletions .github/workflows/cargo_deny.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
on:
push:
branches-ignore:
- 'ci-test'
tags-ignore:
- '**'
pull_request:
schedule:
- cron: '13 15 * * *'
workflow_dispatch:
jobs:
pyembed:
Expand Down
8 changes: 0 additions & 8 deletions .github/workflows/oxidized_importer.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
on:
push:
branches-ignore:
- 'ci-test'
tags-ignore:
- '**'
pull_request:
schedule:
- cron: '13 15 * * *'
workflow_dispatch:
jobs:
wheel_linux:
Expand Down
8 changes: 0 additions & 8 deletions .github/workflows/pyoxidizer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,6 @@
# to impact the testing.

on:
push:
branches-ignore:
- 'ci-test'
tags-ignore:
- '**'
pull_request:
schedule:
- cron: '13 15 * * *'
workflow_dispatch:
jobs:
pyoxidizer-exes:
Expand Down
8 changes: 0 additions & 8 deletions .github/workflows/pyoxy.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
on:
push:
branches-ignore:
- 'ci-test'
tags-ignore:
- '**'
pull_request:
schedule:
- cron: '13 15 * * *'
workflow_dispatch:
jobs:
pyoxidizer-linux:
Expand Down
8 changes: 0 additions & 8 deletions .github/workflows/sphinx.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
on:
push:
branches-ignore:
- 'ci-test'
tags-ignore:
- '**'
pull_request:
schedule:
- cron: '13 15 * * *'
workflow_dispatch:
jobs:
sphinx:
Expand Down
8 changes: 0 additions & 8 deletions .github/workflows/workspace-python.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,4 @@
on:
push:
branches-ignore:
- 'ci-test'
tags-ignore:
- '**'
pull_request:
schedule:
- cron: '13 15 * * *'
workflow_dispatch:
jobs:
test:
Expand Down
21 changes: 2 additions & 19 deletions .github/workflows/workspace.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,5 @@
on:
push:
branches-ignore:
- 'ci-test'
tags-ignore:
- '**'
pull_request:
schedule:
- cron: '13 15 * * *'
workflow_dispatch:
jobs:
build-and-test:
Expand All @@ -15,25 +8,15 @@ jobs:
matrix:
rust_toolchain:
- 'stable'
- 'beta'
- 'nightly'
# Remember to update MINIMUM_RUST_VERSION in pyoxidizer/src/environment.rs
# and the `Installing Rust` documentation when this changes.
- '1.65.0'
target:
- os: 'ubuntu-22.04'
triple: 'x86_64-unknown-linux-gnu'
- os: 'macos-12'
- os: 'macos-14'
triple: 'x86_64-apple-darwin'
- os: 'windows-2022'
triple: 'x86_64-pc-windows-msvc'
continue-on-error: ${{ matrix.rust_toolchain == 'nightly' }}
runs-on: ${{ matrix.target.os }}
env:
IN_CI: '1'
AWS_REGION: us-west-2
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
CARGO_INCREMENTAL: '0'
CARGO_TERM_COLOR: always
SCCACHE_BUCKET: 'pyoxidizer-sccache'
Expand All @@ -44,7 +27,7 @@ jobs:
- name: Install Linux system packages
if: runner.os == 'Linux'
run: |
sudo apt-get install -y libyaml-dev snapcraft
sudo apt-get install -y libyaml-dev

- uses: actions/checkout@v3
with:
Expand Down
18 changes: 16 additions & 2 deletions Justfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ exe_suffix := if os() == "windows" { ".exe" } else { "" }

macosx_deployment_target := if os() == "macos" {
if arch() == "arm" {
"11.0"
"14.0"
} else {
"10.9"
}
Expand Down Expand Up @@ -272,7 +272,7 @@ pyoxy-release-prepare commit tag:
rm -rf dist/pyoxy*
just assemble-exe-artifacts pyoxy {{commit}} dist/pyoxy-artifacts

for py in 3.8 3.9 3.10; do
for py in 3.10 3.11 3.12; do
for triple in aarch64-apple-darwin x86_64-apple-darwin x86_64-unknown-linux-gnu macos-universal; do
release_name=pyoxy-{{tag}}-${triple}-cpython${py}
source=dist/pyoxy-artifacts/exe-pyoxy-${triple}-${py}
Expand Down Expand Up @@ -468,7 +468,21 @@ pyoxidizer-release-upload commit tag:
pyoxidizer-release:
just _release pyoxidizer 'PyOxidizer'

pyoxidizer-update-python-distributions: _python_scripts_venv
scripts/venv/bin/python3 \
scripts/fetch-python-distributions.py \
--api-token $GH_API_TOKEN > pyoxidizer/src/default_python_distributions.rs
rustfmt pyoxidizer/src/default_python_distributions.rs

# Perform Rust crate releases.
release-rust:
cargo release release --exclude pyoxidizer --execute
cargo release release -p pyoxidizer --execute

# Create virtual environment and install dependencies for Python scripts in it.
_python_scripts_venv:
#!/usr/bin/env bash
if [ ! -d scripts/venv ]; then
python3 -m venv scripts/venv
scripts/venv/bin/pip install -r scripts/requirements.txt
fi
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@
``X.Y`` *major.minor* string denoting the Python release version
to use.

Supported values are ``3.8``, ``3.9``, and ``3.10``.
Supported values are ``3.8``, ``3.9``, ``3.10``, ``3.11``, and ``3.12``.

``flavor`` is a string denoting the distribution *flavor*. Values can be one
of the following:
Expand Down
2 changes: 1 addition & 1 deletion pyoxidizer/docs/pyoxidizer_getting_started.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Getting Started
Python Requirements
===================

PyOxidizer currently targets Python 3.8, 3.9, and 3.10. Your Python application
PyOxidizer currently targets Python 3.8, 3.9, 3.10, 3.11 and 3.12. Your Python application
will need to already be compatible with 1 of these versions for it to work with
PyOxidizer. See :ref:`faq_python_38` for more on the minimum Python requirement.

Expand Down
146 changes: 91 additions & 55 deletions pyoxidizer/docs/pyoxidizer_packaging_python_distributions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -25,61 +25,97 @@ and should have maximum compatibility.

Here are the built-in Python distributions:

+---------+---------+--------------------+--------------+------------+
| Source | Version | Flavor | Build Target |
+=========+=========+====================+===========================+
| CPython | 3.9.16 | standalone_dynamic | aarch64-unknown-linux-gnu |
+---------+---------+--------------------+---------------------------+
| CPython | 3.10.9 | standalone_dynamic | aarch64-unknown-linux-gnu |
+---------+---------+--------------------+---------------------------+
| CPython | 3.8.16 | standalone_dynamic | x86_64-unknown-linux-gnu |
+---------+---------+--------------------+---------------------------+
| CPython | 3.9.16 | standalone_dynamic | x86_64-unknown-linux-gnu |
+---------+---------+--------------------+---------------------------+
| CPython | 3.10.9 | standalone_dynamic | x86_64-unknown-linux-gnu |
+---------+---------+--------------------+---------------------------+
| CPython | 3.8.16 | standalone_static | x86_64-unknown-linux-musl |
+---------+---------+--------------------+---------------------------+
| CPython | 3.9.16 | standalone_static | x86_64-unknown-linux-musl |
+---------+---------+--------------------+---------------------------+
| CPython | 3.10.9 | standalone_static | x86_64-unknown-linux-musl |
+---------+---------+--------------------+---------------------------+
| CPython | 3.8.16 | standalone_dynamic | i686-pc-windows-msvc |
+---------+---------+--------------------+---------------------------+
| CPython | 3.9.16 | standalone_dynamic | i686-pc-windows-msvc |
+---------+---------+--------------------+---------------------------+
| CPython | 3.10.9 | standalone_dynamic | i686-pc-windows-msvc |
+---------+---------+--------------------+---------------------------+
| CPython | 3.8.16 | standalone_static | i686-pc-windows-msvc |
+---------+---------+--------------------+---------------------------+
| CPython | 3.9.16 | standalone_static | i686-pc-windows-msvc |
+---------+---------+--------------------+---------------------------+
| CPython | 3.10.9 | standalone_static | i686-pc-windows-msvc |
+---------+---------+--------------------+---------------------------+
| CPython | 3.8.16 | standalone_dynamic | x86_64-pc-windows-msvc |
+---------+---------+--------------------+---------------------------+
| CPython | 3.9.16 | standalone_dynamic | x86_64-pc-windows-msvc |
+---------+---------+--------------------+---------------------------+
| CPython | 3.10.9 | standalone_dynamic | x86_64-pc-windows-msvc |
+---------+---------+--------------------+---------------------------+
| CPython | 3.8.16 | standalone_static | x86_64-pc-windows-msvc |
+---------+---------+--------------------+---------------------------+
| CPython | 3.9.16 | standalone_static | x86_64-pc-windows-msvc |
+---------+---------+--------------------+---------------------------+
| CPython | 3.10.9 | standalone_static | x86_64-pc-windows-msvc |
+---------+---------+--------------------+---------------------------+
| CPython | 3.8.16 | standalone_dynamic | aarch64-apple-darwin |
+---------+---------+--------------------+---------------------------+
| CPython | 3.9.16 | standalone_dynamic | aarch64-apple-darwin |
+---------+---------+--------------------+---------------------------+
| CPython | 3.10.9 | standalone_dynamic | aarch64-apple-darwin |
+---------+---------+--------------------+---------------------------+
| CPython | 3.8.16 | standalone_dynamic | x86_64-apple-darwin |
+---------+---------+--------------------+---------------------------+
| CPython | 3.9.16 | standalone_dynamic | x86_64-apple-darwin |
+---------+---------+--------------------+---------------------------+
| CPython | 3.10.9 | standalone_dynamic | x86_64-apple-darwin |
+---------+---------+--------------------+---------------------------+
+---------+----------+--------------------+--------------+------------+
| Source | Version | Flavor | Build Target |
+=========+==========+====================+===========================+
| CPython | 3.9.18 | standalone_dynamic | aarch64-unknown-linux-gnu |
+---------+----------+--------------------+---------------------------+
| CPython | 3.10.13 | standalone_dynamic | aarch64-unknown-linux-gnu |
+---------+----------+--------------------+---------------------------+
| CPython | 3.11.8 | standalone_dynamic | aarch64-unknown-linux-gnu |
+---------+----------+--------------------+---------------------------+
| CPython | 3.12.2 | standalone_dynamic | aarch64-unknown-linux-gnu |
+---------+----------+--------------------+---------------------------+
| CPython | 3.8.18 | standalone_dynamic | x86_64-unknown-linux-gnu |
+---------+----------+--------------------+---------------------------+
| CPython | 3.9.18 | standalone_dynamic | x86_64-unknown-linux-gnu |
+---------+----------+--------------------+---------------------------+
| CPython | 3.10.13 | standalone_dynamic | x86_64-unknown-linux-gnu |
+---------+----------+--------------------+---------------------------+
| CPython | 3.11.8 | standalone_dynamic | x86_64-unknown-linux-gnu |
+---------+----------+--------------------+---------------------------+
| CPython | 3.12.2 | standalone_dynamic | x86_64-unknown-linux-gnu |
+---------+----------+--------------------+---------------------------+
| CPython | 3.8.18 | standalone_static | x86_64-unknown-linux-musl |
+---------+----------+--------------------+---------------------------+
| CPython | 3.9.18 | standalone_static | x86_64-unknown-linux-musl |
+---------+----------+--------------------+---------------------------+
| CPython | 3.10.13 | standalone_static | x86_64-unknown-linux-musl |
+---------+----------+--------------------+---------------------------+
| CPython | 3.11.2 | standalone_static | x86_64-unknown-linux-musl |
+---------+----------+--------------------+---------------------------+
| CPython | 3.12.2 | standalone_static | x86_64-unknown-linux-musl |
+---------+----------+--------------------+---------------------------+
| CPython | 3.8.18 | standalone_dynamic | i686-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.9.18 | standalone_dynamic | i686-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.10.13 | standalone_dynamic | i686-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.11.8 | standalone_dynamic | i686-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.12.2 | standalone_dynamic | i686-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.8.18 | standalone_static | i686-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.9.18 | standalone_static | i686-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.10.13 | standalone_static | i686-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.11.8 | standalone_static | i686-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.12.2 | standalone_static | i686-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.8.18 | standalone_dynamic | x86_64-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.9.18 | standalone_dynamic | x86_64-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.10.13 | standalone_dynamic | x86_64-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.11.8 | standalone_dynamic | x86_64-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.12.2 | standalone_dynamic | x86_64-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.8.18 | standalone_static | x86_64-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.9.18 | standalone_static | x86_64-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.10.13 | standalone_static | x86_64-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.11.8 | standalone_static | x86_64-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.12.2 | standalone_static | x86_64-pc-windows-msvc |
+---------+----------+--------------------+---------------------------+
| CPython | 3.8.18 | standalone_dynamic | aarch64-apple-darwin |
+---------+----------+--------------------+---------------------------+
| CPython | 3.9.18 | standalone_dynamic | aarch64-apple-darwin |
+---------+----------+--------------------+---------------------------+
| CPython | 3.10.13 | standalone_dynamic | aarch64-apple-darwin |
+---------+----------+--------------------+---------------------------+
| CPython | 3.11.8 | standalone_dynamic | aarch64-apple-darwin |
+---------+----------+--------------------+---------------------------+
| CPython | 3.12.2 | standalone_dynamic | aarch64-apple-darwin |
+---------+----------+--------------------+---------------------------+
| CPython | 3.8.18 | standalone_dynamic | x86_64-apple-darwin |
+---------+----------+--------------------+---------------------------+
| CPython | 3.9.18 | standalone_dynamic | x86_64-apple-darwin |
+---------+----------+--------------------+---------------------------+
| CPython | 3.10.13 | standalone_dynamic | x86_64-apple-darwin |
+---------+----------+--------------------+---------------------------+
| CPython | 3.11.8 | standalone_dynamic | x86_64-apple-darwin |
+---------+----------+--------------------+---------------------------+
| CPython | 3.12.2 | standalone_dynamic | x86_64-apple-darwin |
+---------+----------+--------------------+---------------------------+

All of these distributions are provided by the
`python-build-standalone <https://github.com/indygreg/python-build-standalone>`_,
Expand Down
2 changes: 1 addition & 1 deletion pyoxidizer/docs/pyoxidizer_status.rst
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ Lesser Missing Features
Python Version Support
----------------------

Python 3.8, 3.9, and 3.10 are currently supported. Older versions of
Python 3.8, 3.9, 3.10, 3.11 and 3.12 are currently supported. Older versions of
PyOxidizer (through version 0.7) supported Python 3.7. See
:ref:`faq_python_38` for why we require these Python versions.

Expand Down
Loading
Loading