Skip to content

Local builds

Local with pixi

To build a package locally, the easiest way is to use pixi (see /pixi.sh/latest/#installation for installation instructions). Under the hood, pixi uses rattler-build to build the package.

# this only needs to be done once
pixi run setup

# this builds the package
pixi run build-emscripten-wasm32-pkg recipes/recipes_emscripten/regex

Local builds with rattler-build

We recommend using the pixi command to build packages locally. However, if you want to use rattler-build directly, you can do so with the following steps:

Create the environment

Create a new conda environment from ci_env.yml and install playwright in this environment: On a Linux / MacOS this can be done with:

micromamba create -n emscripten-forge -f ci_env.yml --yes
micromamba activate emscripten-forge

All further steps should be executed in this environment. I.e. if you open a new terminal, you have to activate the environment again with micromamba activate emscripten-forge.

Setup emsdk

We currently need a patched version of emsdk. This is because emscripten had some regressions in the 3.1.45 release wrt. dynamic loading of shared libraries. We use the ./emsdk/setup_emsdk.sh which takes two arguments: the emsdk version and the path where emsdk should be installed. In this example we choose ~/emsdk as the installation path. You have to use version 3.1.45.

./emsdk/setup_emsdk.sh 3.1.45 ~/emsdk

Build compiler packages / meta packages:

This is only needed for MacOS. On Linux, the compiler packages are already built and available in the emscripten-forge channel.

rattler-build build --recipe recipes/recipes/emscripten_emscripten-wasm32/recipe.yaml   -c https://repo.mamba.pm/emscripten-forge -c conda-forge -c microsoft -m conda_build_config.yaml
rattler-build build --recipe recipes/recipes/cross-python_emscripten-wasm32/recipe.yaml -c https://repo.mamba.pm/emscripten-forge -c conda-forge -c microsoft -m conda_build_config.yaml
rattler-build build --recipe recipes/recipes/pytester/recipe.yaml                       -c https://repo.mamba.pm/emscripten-forge -c conda-forge -c microsoft -m conda_build_config.yaml

Build packages with rattler-build:

rattler-build build  --recipe recipes/recipes_emscripten/regex/recipe.yaml  --target-platform=emscripten-wasm32 -c https://repo.mamba.pm/emscripten-forge -c conda-forge -c microsoft -m conda_build_config.yaml