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