Contributing#

Thank you for considering a contribution to jupyterlite-pyodide-lock.

We use pixi for local development and GitHub issues and pull requests to collaboration.

Pull Requests#

Before making a pull request, please ensure:

  • youโ€™ve got a local setup

  • the following command runs without error:

pixi run pr

Local Development#

Set Up#

This project is developed locally and in CI with pixi, a relatively new approach to conda package management and task running.

Note

Refer to pixi.toml#/$schema for the current development version

If using mamba or conda (or some other $CONDA_EXE):

mamba install -c conda-forge "pixi ==0.48.0"  # replace `mamba` with your CONDA_EXE
Why pixi?

pixi provides the necessary primitives to:

  • capture complex environments, with python and other runtimes

  • install environments quickly, and cache well, but only when needed

  • run tasks, in the right environment, in the right order

  • skip tasks that have already run, and dependencies have not changed


Tasks and Environments#

See all the project info:

pixi info

See the available top-level pixi tasks:

pixi task list

Running Tasks#

Most tasks run just fine, and then stop:

pixi run all     # does all of the following, as needed
pixi run fix
pixi run build
pixi run lint
pixi run docs
pixi run check
pixi run test   # this takes a pretty long time

Some tasks run until stopped with ctrl+c:

pixi run serve-lab
pixi run serve-docs

Appendix: pixi tasks#

Task               Description
all                ๐Ÿšข ALL tasks to prepare for a release
build              ๐Ÿ—๏ธ  build ALL packages
build-hash         โ”œ hash the built distributions
build-licenses     โ”œ ensure licenses in contrib packages
build-pypi         ๐Ÿ build ALL PyPI distributions
build-pypi-core    โ”œโ”€ build core PyPI distributions
build-pypi-wd      โ”œโ”€ build webdriver PyPI distributions
build-rattler      โ”œ build for conda distribution
build-wheel-check  โ”œ check the built wheels
build-wheel-twine  โ”œ check the built distributions for PyPI
check              ๐Ÿค“ check all build/test artifacts
check-links        โ”œ check links in html
check-spelling     โ”œ check spelling in documentation
dev-docs           โ”œ ๐Ÿ” watch and serve the documentation with autoreload
dev-lab            โ”œ ๐Ÿ” serve JupyterLab in the dev environment
dev-pip            โ”œ prepare the dev environment
docs               ๐Ÿ–จ๏ธ  build all documentation
docs-lite          โ”œ build a demo site with jupyter-lite
docs-pip           โ”œ prepare the docs environment with pip
docs-rtd           โ”œ copy the documentation site to where ReadTheDocs wants it
docs-scour         โ”œ optimize SVG for docs with scour
docs-sphinx        โ”œ build documentation with sphinx
fix                ๐Ÿงน fix ALL source files
fix-conftest       โ”œ add templated conftest
fix-deps           โ”œ fix dependencies
fix-ipynb          โ”œ fix notebooks
fix-mdlint         โ”œ format markdown files with markdownlint2-cli
fix-prettier       โ”œ format web-adjacent files with prettier
fix-ruff           โ”œ fix python with ruff
fix-taplo          โ”œ fix toml with taplo
lint               โญ run ALL linters
lint-actionlint    โ”œ check GitHub actions with actionlint
lint-ipynb         โ”œ check notebooks
lint-mdlint        โ”œ check markdown files with markdownlint2-cli
lint-prettier      โ”œ check web-adjacent files with prettier
lint-ruff          โ”œ check python with ruff
pr                 ๐Ÿงฒ run ALL pull request preflight tasks
test               ๐Ÿš€ run ALL tests
test-cli           โ”œ ๐Ÿ†˜ check CLI in all test environments
test-max           โ”œ ๐Ÿš— run tests in the default test environment
test-max-cli       โ”œโ”€ smoke test browsers in default test environment
test-max-core      โ”œโ”€ test core in the default test environment
test-max-pip       โ”œโ”€ prepare the default test environment with pip
test-max-wd        โ”œโ”€ test webdriver in the default test environment
test-min           โ”œ ๐ŸŽ run tests in the oldest supported environment
test-min-cli       โ”œโ”€ smoke test browsers in min test environment
test-min-core      โ”œโ”€ test core in the min test environment
test-min-pip       โ”œโ”€ prepare the min test environment with pip
test-min-wd        โ”œโ”€ test webdriver in the min test environment
test-next          โ”œ ๐Ÿ›ธ run tests in the prerelease environment
test-next-cli      โ”œโ”€ smoke test browsers in next test environment
test-next-core     โ”œโ”€ test core in the next test environment
test-next-pip      โ”œโ”€ prepare the next test environment with pip
test-next-wd       โ”œโ”€ test webdriver in the next test environment