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#/$schemafor 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