diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 9ebaabd..65b848f 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -36,12 +36,12 @@ jobs: - name: Install latest Rust nightly toolchain uses: dtolnay/rust-toolchain@nightly with: - targets: wasm32-wasi wasm32-unknown-unknown + targets: wasm32-wasip1 wasm32-unknown-unknown - name: Install latest Rust stable toolchain uses: dtolnay/rust-toolchain@stable with: - targets: wasm32-wasi wasm32-unknown-unknown + targets: wasm32-wasip1 wasm32-unknown-unknown components: clippy, rustfmt - name: Install Rust std source @@ -213,7 +213,7 @@ jobs: before-script-linux: | rustup install nightly rustup component add rust-src --toolchain nightly - rustup target add wasm32-wasi wasm32-unknown-unknown + rustup target add wasm32-wasip1 wasm32-unknown-unknown - name: Set up cross-compiled linux aarch64 build if: matrix.config.target == 'aarch64-unknown-linux-gnu' diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index 8cba0b0..26a811d 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -33,12 +33,12 @@ jobs: - name: Install latest Rust nightly toolchain uses: dtolnay/rust-toolchain@nightly with: - targets: wasm32-wasi wasm32-unknown-unknown + targets: wasm32-wasip1 wasm32-unknown-unknown - name: Install latest Rust stable toolchain uses: dtolnay/rust-toolchain@stable with: - targets: wasm32-wasi wasm32-unknown-unknown + targets: wasm32-wasip1 wasm32-unknown-unknown components: clippy, rustfmt - name: Install Rust std source @@ -75,6 +75,18 @@ jobs: key: cpython-wasi enableCrossOsArchive: true + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.config.maturin_target }} + args: --release --out dist --features pyo3 + manylinux: 2_28 + docker-options: -v /opt/wasi-sdk:/opt/wasi-sdk + before-script-linux: | + rustup install nightly + rustup component add rust-src --toolchain nightly + rustup target add wasm32-wasip1 wasm32-unknown-unknown + - name: Lint shell: bash run: bash .github/workflows/lint.sh diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3c42391..b1158e6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -21,8 +21,8 @@ switch. ### Prerequisites - Tools needed to build [CPython](https://github.com/python/cpython) (Make, Clang, etc.) -- [Rust](https://rustup.rs/) stable 1.71 or later *and* nightly 2023-07-27 or later, including the `wasm32-wasi` and `wasm32-unknown-unknown` targets - - Note that we currently use the `-Z build-std` Cargo option to build the `componentize-py` runtime with position-independent code (which is not the default for `wasm32-wasi`) and this requires using a recent nightly build of Rust. +- [Rust](https://rustup.rs/) stable 1.71 or later *and* nightly 2023-07-27 or later, including the `wasm32-wasip1` and `wasm32-unknown-unknown` targets + - Note that we currently use the `-Z build-std` Cargo option to build the `componentize-py` runtime with position-independent code (which is not the default for `wasm32-wasip1`) and this requires using a recent nightly build of Rust. For Rust, something like this should work once you have `rustup`: @@ -30,7 +30,7 @@ For Rust, something like this should work once you have `rustup`: rustup update rustup install nightly rustup component add rust-src --toolchain nightly -rustup target add wasm32-wasi wasm32-unknown-unknown +rustup target add wasm32-wasip1 wasm32-unknown-unknown ``` ### Building and Running diff --git a/build.rs b/build.rs index 1d1c79b..22773ea 100644 --- a/build.rs +++ b/build.rs @@ -112,7 +112,7 @@ fn package_all_the_things(out_dir: &Path) -> Result<()> { .arg("-Z") .arg("build-std=panic_abort,std") .arg("--release") - .arg("--target=wasm32-wasi"); + .arg("--target=wasm32-wasip1"); for (key, _) in env::vars_os() { if key @@ -132,7 +132,7 @@ fn package_all_the_things(out_dir: &Path) -> Result<()> { assert!(status.success()); println!("cargo:rerun-if-changed=runtime"); - let path = out_dir.join("wasm32-wasi/release/libcomponentize_py_runtime.a"); + let path = out_dir.join("wasm32-wasip1/release/libcomponentize_py_runtime.a"); if path.exists() { let clang = wasi_sdk.join(format!("bin/{CLANG_EXECUTABLE}")); @@ -169,7 +169,7 @@ fn package_all_the_things(out_dir: &Path) -> Result<()> { for library in libraries { compress( - &wasi_sdk.join("share/wasi-sysroot/lib/wasm32-wasi"), + &wasi_sdk.join("share/wasi-sysroot/lib/wasm32-wasip1"), library, out_dir, true, @@ -285,7 +285,7 @@ fn maybe_make_cpython(repo_dir: &Path, wasi_sdk: &Path) -> Result<()> { run(Command::new("../../config.guess").current_dir(&cpython_wasi_dir))?; run(Command::new("../../Tools/wasm/wasi-env") - .env("CONFIG_SITE", "../../Tools/wasm/config.site-wasm32-wasi") + .env("CONFIG_SITE", "../../Tools/wasm/config.site-wasm32-wasip1") .env("CFLAGS", "-fPIC") .current_dir(&cpython_wasi_dir) .args([ diff --git a/src/prelink.rs b/src/prelink.rs index 345a307..93b56fd 100644 --- a/src/prelink.rs +++ b/src/prelink.rs @@ -16,7 +16,7 @@ use zstd::Decoder; use crate::{ComponentizePyConfig, ConfigContext, Library, RawComponentizePyConfig}; -static NATIVE_EXTENSION_SUFFIX: &str = ".cpython-312-wasm32-wasi.so"; +static NATIVE_EXTENSION_SUFFIX: &str = ".cpython-312-wasm32-wasip1.so"; type ConfigsMatchedWorlds<'a> = IndexMap, Option<&'a str>)>;