Pull request #1756: PIPE-2997/PIPE-2998: expand the gh action unit test matrix
Merge in PIPE/pipeline from PIPE-2997-expand-the-gh-action-unit-test-matrix to main
* commit '233566793c8887be813de84e5000119af22028a8': PIPE-2997: Additional update/fixes to the workflow template PIPE-2997: Add Pixi-based GitHub Actions workflows/templates for documentation building and unit testing PIPE-2998: Recommend `memray` for memory use profiling as `memory_profiler` is no longer maintained. PIPE-2998: Use `shutil.which` for improved compatibility with Python 3.13 PIPE-2997: Source `CASA6` packages explicitly from the NRAO PyPI index PIPE-2997: Add new Pixi environments in `pyproject.toml`
Pull request #1159: PIPE-2014: improve the timing stats in timetracker.json and weblog
Merge in PIPE/pipeline from PIPE-2014-improve-timetracker-and-weblog-timing-stats to main
* commit '38d910f91e9b3fbbf159b54bc4a0f0c17e2d4b60': PIPE-2014: Use `datetime.timezone.utc` instead of `datetime.UTC` for Python 3.10 compatibility PIPE-2014: Update task duration mapping to use integer keys for stage numbers in timetracker PIPE-2014: Improve task duration formatting in HTML renderer and Mako template PIPE-2014: Revert to the old approach of tracking weblog rendering duration - restricted to rendering of per-stage task result page PIPE-2014: Switch to timezone-aware `datetime` in UTC for recording timestamps from `timetracker` PIPE-2014: Switch to `shelve.open()` which returns a shelf object that is a context manager since Python 3.4 PIPE-2014: Ensure `TaskCompleteEvent` is sent for non-"multi_vis" tasks. PIPE-2014: add back a code block accidentally removed from the last merge conflict resolution. PIPE-2014: use the timetracker event stats for task duration calculations. PIPE-2014: optimize the renderer execution order for more accurate timing stats displayed in the weblog. PIPE-2014: start the weblog creation timer at the beginning of weblog rendering.
PIPE-2997: Additional update/fixes to the workflow template
* `shell:` is evaluated at workflow parse time, not at runtime, so `${{ inputs.pixi_env }}` isn't available in the shell: field for reusable workflows.
* Disable caching for Pixi environment to ensure the latest dev snapshots are used
* Fix a bug in the CASA config stage of the Pixi template
* Remove unnecessary solve-group entries
* Update `protobuf` version specification in `environment.yml` to ensure compatibility with `casaplotms`