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.39.3"  # 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#

 - 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-twine     โ”œ check the built distributions for PyPI
 - build-wheel     โ”œ check the built wheel
 - 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
 - fix-tasks       โ”œ fix pixi tasks
 - 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-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