- Source
prepare.sh
Run all tests with the canonical Docker path:
invoke tests.runFor repeated local development runs without rebuilding the image:
invoke tests.cachedIf invoke is unavailable, run the equivalent Docker command from
tasks.py.
Run a single test:
Example:
pytest test/unittests/connectors/test_world_connector.py -vRun a single visual test:
pytest test/visualtests/gui/test_610_toolbar_widgets.py -vUnit tests are grouped by domain under test/unittests/<area>/.
Task categories in tasks.py:
tests.*: Docker-based validation tasksbenchmarks.*: benchmark and profiling scriptsbuild.docs: local Sphinx buildbuild.image: rebuild the shared Docker image for tests and benchmarksdeploy.push: normal branch push workflow, optional with tagsdeploy.release: version bump, commit, tag, and optional push workflowbuild.localandbuild.physics: editable package installscontainer.*,examples.checkout: local utility tasks
Legacy flat task names still exist as compatibility aliases, but the grouped names above are now the documented interface.
Build the documentation locally:
invoke build.docsCreate a release or preview it first:
invoke deploy.push
invoke deploy.push --tags
invoke deploy.release --revision
invoke deploy.release --patch --dry-run
invoke deploy.release --version=3.5.0.1Upload new version to PyPI:
deploy.release accepts either an explicit --version or exactly one bump
flag:
--major: next version like4.0.0.0--minor: next version like3.6.0.0--patch: next version like3.5.1.0--revision: next version like3.5.0.6
It synchronizes the version in both packages, runs the Docker test suite,
creates the commits and tags in the physics repository and the main
repository, and then pushes branch plus tag unless --no-push is used.
For a normal deploy without a version bump, use deploy.push. It pushes the
current branches in the main and physics repositories and can optionally push
all tags with --tags.
After the push step, GitHub Actions handle deployment automatically:
- pushing the main repository branch
maintriggers deploy-docs.yml - pushing
v*tags triggers the PyPI publish workflows in the main and physics repositories
There is no manual docs upload task in tasks.py; docs deployment is owned
by the GitHub workflow.