Skip to content

Commit 48affea

Browse files
authored
[envpool] Upgrade JAX, physics assets, Qt, and LLVM tooling (#430)
## Description Upgrade the compatible JAX, physics-asset, oracle, Qt, and LLVM dependencies on top of main (`27a47a1`). Keep source builds and installed release wheels on the same model data by requiring the newly published `envpool-assets*` 0.4.x line. | Dependency | Before | After | | --- | --- | --- | | JAX / jaxlib | 0.9.2 | 0.11.1 | | OpenXLA FFI headers | `187a5eb` | `dcf304b`, matching JAX 0.11.1 | | trimesh | 4.12.2 | 5.0.0 | | qhull | `62ccc56` | `d1c2fc0`, matching the pinned MuJoCo source | | Bazel protobuf | 36.0 | 36.0.bcr.1 (BCR packaging revision, not a new upstream runtime) | | object_sim | 0.1.0 | 0.1.1 | | YCB_sim | `46edd9c` | `57546b8` | | mujoco_menagerie | `1b86ece` | `da76818` | | Jumanji oracle dependencies | JAX 0.4.35, NumPy 1.26.4, SciPy 1.17.1 | JAX 0.11.1, NumPy 2.5.2, SciPy 1.18.0; refresh the transitive lock | | MyoSuite oracle dependencies | NumPy 1.26.4, Gymnasium 1.2.3, SciPy 1.17.1, protobuf 7.34.1 | NumPy 2.5.2, Gymnasium 1.3.0, SciPy 1.18.0, protobuf 7.35.1; refresh the transitive lock | | clang-format / clang-tidy | LLVM 20 configuration; tidy wrapper could select 18 | Pinned 22.1.8 tools and explicit tidy executable | | Qt, macOS / Windows | Qt 5 | 6.11.1 | | Qt, Ubuntu source CI | Qt 5 | Distro Qt 6.4.2 | | Qt, Linux release wheels | External Qt 5.15.3 | Bundled Qt 6.11.1, built inside manylinux_2_28 | | Three envpool-assets packages | 0.3.x | 0.4.x | The three asset wheels were [built, checked, smoke-tested, and published](https://github.com/Trinkle23897/envpool-assets/actions/runs/33047285626) from commit `4d8a4eae4874ee0109ed045b4e98923a0ee97606`. Downloading them from PyPI and comparing every uncompressed entry confirmed all 3,581 files match the locally tested candidates. Each wheel remains below the 100 MB limit. Compatibility fixes and cleanup: - Patch the test-only Playground oracle for the current JAX `clip` API and the test-only MyoSuite oracle for NumPy 2 scalar conversion. Extend the existing scalar CPU-dispatch mask for NumPy 2.5's x86-64 baseline names; do not widen alignment tolerances. - Keep CVRP capacity in upstream integer demand units and normalize only observations. Respect the configured capacity for default demands, including capacities 3, 20, and 30. - Update the Jumanji render cache only once per received transition, fixing double-counted synchronous scores. Preserve fractional SearchAndRescue target counts and expose per-searcher rewards alongside EnvPool's scalar sum. - Support Qt 5/6 headers, frameworks, MSVC import libraries, DLL packaging, and Linux missing-runtime errors. Build a minimal shared Qt 6.11.1 raster runtime inside the AlmaLinux 8 / manylinux_2_28 release images; bundle Core/Gui, licenses, and source/build information without raising the glibc baseline. Cache the SDK per architecture and validate the wheel after moving the SDK out of its install path. Use version-specific Procgen pixel baselines, retaining the same seed, rollout, reward assertions, and tolerances; a Qt 5 control reproduces the previous baseline. - Pin the upstream aqt fix needed to install Qt 6.11 on Windows. Include Qt license texts, source/checksum information, the SDK SBOM, and build configuration in Windows wheels, reusing the existing Qt source pin and wheel-notice collector. Restore MSYS argument conversion only in the notice-collection subprocess so native Windows curl can open Bash paths without changing Bazel's environment. - Fix the clang-tidy wrapper variable collision and address LLVM 22 findings without changing runtime algorithms. - Remove the unused Qt BUILD file and stale Acme example requirements. Acme is an optional user installation; there is no Bazel Acme dependency. Versions deliberately retained: | Dependency | Retained version / reason | | --- | --- | | MuJoCo / MJX, dm-control | 3.11.0 / 3.11.0, 1.0.44. Newer versions were unavailable in the configured package index during validation; keep the source and Python oracle versions coherent. | | SWIG, main SciPy, main Python protobuf | 4.4.1, 1.18.0, 7.35.1. No usable newer versions in that configured index during validation. Oracle SciPy/protobuf do advance as listed above. | | myo_sim | `33f3ded`, the MyoSuite 2.12.2 gitlink. Newer myo_sim removes legacy XML fragments and requires a separate MjSpec migration. | | Jumanji / MyoSuite oracle source | Keep Jumanji 1.1.2 and MyoSuite 2.12.2; upgrade their dependency stacks. | | SDL | Keep SDL2-compat 2.32.70, SDL3 3.4.14, and SDL2_ttf 2.24.0. Moving SDL_ttf to 3.x requires a separate GFootball SDL3 port. | ## Motivation and Context The dependency updates expose real NumPy/JAX, rendering, and packaging incompatibilities. This PR fixes those paths and keeps release-wheel assets aligned with the Bazel source pins. Asset version isolation prevents older EnvPool releases, which require assets below 0.4, from automatically receiving the changed physics models. macOS wheels now require **macOS 13+** because Qt 6.11 requires it. As in the existing packaging design, they use external Homebrew Qt frameworks rather than bundling them: run `brew install qtbase` before importing EnvPool. Windows and Linux manylinux wheels bundle Qt. Linux retains the glibc 2.28 baseline; the source-built Qt runtime does not depend on ICU or window-system libraries. Native Linux ARM64 source/test builds still use **Clang 20** to match the official MuJoCo wheel; manylinux release builds use the image's GCC toolchain; LLVM 22 here is the lint/format tooling upgrade, not an ARM compiler change. The docs explicitly describe a pre-existing Jumanji limitation: some oracle fixtures replay short stored state/reward trajectories. Passing those checks establishes replay/render compatibility, not arbitrary-action semantic alignment. This PR does not claim to finish that separate implementation work. - [ ] I have raised an issue to propose this change ([required](https://envpool.readthedocs.io/en/latest/pages/contributing.html) for new features and bug fixes). No separate issue; this is the requested dependency-maintenance batch. ## Types of changes - [x] Bug fix (non-breaking change which fixes an issue) - [ ] New feature (non-breaking change which adds core functionality) - [ ] New environment (non-breaking change which adds 3rd-party environment) - [x] Breaking change (fix or feature that would cause existing functionality to change) - [x] Documentation (update in the documentation) - [x] Example (update in the folder of example) ## Implemented Tasks - [x] Refresh compatible pins and publish the matching asset wheels. - [x] Fix compatibility and correctness issues; extend existing behavior tests without adding skips or widening tolerances. - [x] Complete the original four-platform native test matrix. - [x] Rebuild and validate all 12 platform/Python release combinations after the Qt 6 manylinux change. - [x] Include Qt notices in Windows wheels and repeat all three Windows release combinations after that fix. - [ ] Get the GitHub Actions checks green; currently blocked by the account billing lock before any job steps execute. Validation: The native environment/oracle suites were run uncached at `4d8a4eae4874ee0109ed045b4e98923a0ee97606`. The Qt 6 packaging follow-up at `5c19371368f3a6f680e24c01bb4ac014f2f68833` does not change environment implementations or tolerances. All 12 release wheels were rebuilt and their expanded release tests passed at that follow-up. Commit `365b4aa72dc414f7a5a6194b3a3b0bbaadf0fec2` records the Qt repository digest generated during those builds. The Windows-notice follow-up at `692b82253200713cedcaa19504a9f6fdff0123bb` then rebuilt and retested all three Windows releases. Their previous uncompressed payload entries, including all 17 native modules and both Qt DLLs, are byte-for-byte unchanged except for the updated RECORD; the only added payload is 45 license/notice/build-information files per wheel. The macOS and Linux release results remain from `5c19371`; the full native suites remain from `4d8a4ea`. Final-head `bazel mod deps --lockfile_mode=error` passed. | Platform | Full native test suite at `4d8a4ea` | Python 3.12 / 3.13 / 3.14 release rebuild, install, pip check, and release test | | --- | --- | --- | | macOS arm64, Qt 6.11.1 | 98/98 passed, uncached | All three passed at `5c19371` | | Windows x64, Qt 6.11.1 | 98/98 passed, uncached | All three passed again at `692b822`, including Qt notices; SDK search paths removed and loaded DLL origins checked | | Linux x64 devbox, source Qt 6.4.2 / release Qt 6.11.1 | 98/98 passed, uncached; coverage report generated | All three native manylinux_2_28 runs passed at `5c19371`, with the Qt SDK moved away | | Native Linux arm64 VM, source Qt 6.4.2 / release Qt 6.11.1 | 98/98 passed, uncached | All three native manylinux_2_28 runs passed at `5c19371`, with the Qt SDK moved away | Qt release verification: - Command: `make pypi-wheel`, install the resulting wheel, `python -m pip check`, and `make release-test`, under each Python version. - Linux explicitly uses `make PROCGEN_QT_RUNTIME=bundled release-test` after moving `/opt/envpool-qt6` out of its install path. All six runs confirmed Qt 6.11.1 Core/Gui were loaded from the installed wheel's `envpool.libs`, not a system SDK. No Qt 5 or ICU library is bundled. - The existing Procgen 1,001-step pixel/reward baseline, 1,000-step channel-order comparison, all-task determinism checks, and all-task multi-step render suite now run against installed release wheels. No baseline or tolerance changed in this follow-up. The optional upstream Python Procgen oracle is not a release dependency; these checks do not claim new upstream-oracle coverage. - Linux x64 wheels are 59.85 MB; ARM64 wheels are 59.14-59.15 MB, below the unchanged 100 MB cap. All six passed CRC, SHA256/RECORD, platform-tag, 17-native-module, and Qt library/license payload checks. - Windows release tests clear Qt SDK variables/search paths and use `GetModuleFileNameW` to check that Qt6 Core/Gui DLLs come from the installed wheel. The latest remote driver completed all eleven license-preparation/build/install/test/final-check stages with exit code 0. The three wheels are 53.35-55.48 MB and passed CRC, remote SHA256, complete RECORD, and Qt license/SBOM payload checks. Lint and build validation: - The CI's `make ruff py-format cpplint clang-format buildifier addlicense mypy docstyle spelling` passed locally for the Qt changes; Linux also passed the full `make lint addlicense`, including clang-tidy (59 targets, successful BEP). `actionlint`, shell syntax checks, and focused Python type checks passed. The Windows-notice follow-up also passed `actionlint`, Bash syntax checks, and macOS `make docstyle spelling addlicense`. - The prior full-suite commands were `make BAZEL_TEST_TARGETS=//... bazel-test` on macOS, Windows, and native ARM64; Linux x64 used `make BAZEL_TEST_TARGETS=//... bazel-coverage`, `scripts/coverage_summary.py`, and `genhtml`. Tests used `--nocache_test_results`. The Linux report covers 534 files, with 90.78% line coverage and 55.21% branch coverage. - Native XLA FFI is Linux-only: the existing MiniGrid JIT step and Atari 100-step JIT/correctness comparisons passed on x64 and ARM64. macOS and Windows test the existing unsupported-XLA error contract; their passing suites do not imply native XLA support. - The separate `make bazel-build` development-wheel builds passed on macOS and Linux x64 in the original matrix. macOS wheels retain their documented external Homebrew Qt requirement. [Hosted checks](https://github.com/sail-sg/envpool/pull/430/checks) remain separate from these local results. The final checks on `692b822` confirm the account billing lock still prevents all ten runnable jobs from starting any steps; the earlier lint retry also failed before execution. Hosted failures are not claimed as passes; the account must be unlocked before those jobs can be rerun. The added CVRP capacity cases were verified red/green: capacities 3 and 30 fail against the pre-fix wheel and pass after the fix; capacity 20 remains green. Existing 2048 and SearchAndRescue tests now cover the corrected render-cache and reward behavior. No static configuration/source-text tests were added. ## Checklist - [x] I have read the [CONTRIBUTION](https://envpool.readthedocs.io/en/latest/pages/contributing.html) guide (**required**) - [x] My change requires a change to the documentation. - [x] I have updated the tests accordingly (*required for a bug fix or a new feature*). - [x] I have updated the documentation accordingly. - [x] I have reformatted the code using `make format` (**required**) - [x] I have checked the code using `make lint` (**required**) - [x] I have ensured `make bazel-test` pass. (**required**) ## New Environment Checklist Not applicable: this PR does not add an environment family or upstream task family. - [ ] Runtime logic is native C++ and does not bridge to the official Python environment. - [ ] All intended upstream task IDs/scenarios are registered, documented, and covered by tests. - [ ] The upstream oracle/version is pinned, and tests check EnvPool registration/configs against it. - [ ] Determinism tests cover reset plus multi-step rollouts for every registered ID, including render frames when rendering is supported. - [ ] Oracle alignment tests compare step-level observations, rewards, done/truncation, info, and renders after at most one reset-time state sync. - [ ] Render tests cover reset, multi-step, batched render/env-id selection, and docs include EnvPool-vs-official images when an official renderer exists. - [ ] `envpool/make_test.py`, release packaging, docs, and README support lists are updated.
1 parent 27a47a1 commit 48affea

61 files changed

Lines changed: 1041 additions & 1513 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.bazelrc

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,17 @@ build:linux --action_env=LD_LIBRARY_PATH=/usr/local/lib:/usr/lib/nvidia
2323
build:macos --cxxopt=-std=c++17
2424
build:macos --host_cxxopt=-std=c++17
2525
build:macos --client_env=BAZEL_CXXOPTS=-std=c++17
26-
build:macos --action_env=MACOSX_DEPLOYMENT_TARGET=11.0
27-
build:macos --copt=-mmacosx-version-min=11.0
28-
build:macos --linkopt=-mmacosx-version-min=11.0
26+
# Qt 6.11 requires macOS 13 or newer.
27+
build:macos --action_env=MACOSX_DEPLOYMENT_TARGET=13.0
28+
build:macos --copt=-mmacosx-version-min=13.0
29+
build:macos --linkopt=-mmacosx-version-min=13.0
2930
test:macos --test_env=PATH=/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
3031

3132
build:windows --cxxopt=/std:c++20
3233
build:windows --host_cxxopt=/std:c++20
34+
# Qt 6 checks the standard through __cplusplus, not MSVC's legacy value.
35+
build:windows --cxxopt=/Zc:__cplusplus
36+
build:windows --host_cxxopt=/Zc:__cplusplus
3337
build:windows --action_env=BAZEL_SH
3438
build:windows --repo_env=BAZEL_SH
3539
build:windows --@rules_python//python/config_settings:bootstrap_impl=script

.clang-tidy

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414
---
15+
# Fixed RNG seeds, startup registries, and polymorphic templates are intentional.
16+
# Keep existing arithmetic, conditional, and type-alias spelling conventions.
1517
Checks: '
1618
bugprone-*,
1719
clang-analyzer-*,
@@ -24,17 +26,24 @@ Checks: '
2426
-bugprone-implicit-widening-of-multiplication-result,
2527
-bugprone-branch-clone,
2628
-bugprone-narrowing-conversions,
29+
-bugprone-random-generator-seed,
30+
-bugprone-throwing-static-initialization,
2731
-modernize-use-trailing-return-type,
2832
-modernize-use-nodiscard,
33+
-portability-template-virtual-member-function,
2934
-readability-convert-member-functions-to-static,
3035
-readability-function-cognitive-complexity,
3136
-readability-identifier-length,
3237
-readability-magic-numbers,
3338
-readability-make-member-function-const,
39+
-readability-math-missing-parentheses,
3440
-readability-named-parameter,
3541
-readability-non-const-parameter,
42+
-readability-redundant-typename,
3643
-readability-static-accessed-through-instance,
3744
-readability-uppercase-literal-suffix,
45+
-readability-use-concise-preprocessor-directives,
46+
-readability-use-std-min-max,
3847
'
3948
CheckOptions:
4049
- { key: readability-identifier-naming.ClassCase, value: CamelCase }

.github/workflows/clang-tidy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
- name: Install Linux dependencies
4242
run: |
4343
sudo apt-get update
44-
sudo apt-get install -y clang-tidy-20 swig qtbase5-dev qtdeclarative5-dev
44+
sudo apt-get install -y swig qt6-base-dev
4545
python -m pip install --upgrade cmake
4646
- name: Restore Bazel caches
4747
uses: actions/cache/restore@v6

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
make cpplint
3737
- name: clang-format
3838
run: |
39-
make CLANG_FORMAT_BIN=clang-format-20 clang-format
39+
make clang-format
4040
- name: buildifier
4141
run: |
4242
make buildifier

.github/workflows/release.yml

Lines changed: 34 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -56,9 +56,9 @@ jobs:
5656
PATH="$CMAKE_BIN_DIR:$PATH" cmake --version
5757
- name: Install macOS dependencies
5858
run: |
59-
brew install ninja swig qt@5
59+
brew install ninja swig qtbase
6060
sudo ln -sfn "$(brew --prefix ninja)/bin/ninja" /usr/local/bin/ninja
61-
echo "BAZEL_RULES_QT_DIR=$(brew --prefix qt@5)" >> "$GITHUB_ENV"
61+
echo "BAZEL_RULES_QT_DIR=$(brew --prefix qtbase)" >> "$GITHUB_ENV"
6262
- name: Install bazelisk
6363
run: |
6464
go install github.com/bazelbuild/bazelisk@latest
@@ -84,6 +84,8 @@ jobs:
8484
container: ${{ matrix.container }}
8585
timeout-minutes: 120
8686
env:
87+
BAZEL_RULES_QT_DIR: /opt/envpool-qt6
88+
WHEEL_LICENSE_DIR: /opt/envpool-qt6/licenses/qt6
8789
MUJOCO_GL: egl
8890
EGL_PLATFORM: surfaceless
8991
LIBGL_ALWAYS_SOFTWARE: "1"
@@ -109,9 +111,8 @@ jobs:
109111
java-version: "25"
110112
- name: Install build dependencies
111113
run: |
112-
dnf install -y git curl wget zsh gcc gcc-c++ cmake make ninja-build tmux qt5-qtbase-devel qt5-qtdeclarative-devel mesa-libEGL-devel mesa-libGL-devel libglvnd-devel mesa-dri-drivers
114+
dnf install -y git curl wget zsh gcc gcc-c++ make tmux mesa-libEGL-devel mesa-libGL-devel libglvnd-devel mesa-dri-drivers
113115
dnf clean all
114-
ln -sf "$(qmake-qt5 -query QT_INSTALL_HEADERS)" /usr/include/qt
115116
go install github.com/bazelbuild/bazelisk@latest
116117
ln -sf /root/go/bin/bazelisk /usr/local/bin/bazelisk
117118
ln -sf /root/go/bin/bazelisk /usr/local/bin/bazel
@@ -126,15 +127,25 @@ jobs:
126127
esac
127128
echo "$PYBIN" >> "$GITHUB_PATH"
128129
"$PYBIN/python3" --version
129-
- name: Install latest CMake
130+
- name: Install CMake and Ninja
130131
shell: bash
131132
run: |
132-
python -m pip install --upgrade cmake
133+
python -m pip install --upgrade cmake ninja
133134
CMAKE_BIN_DIR="$(python -c "import cmake; print(cmake.CMAKE_BIN_DIR)")"
134135
CMAKE_BIN="$CMAKE_BIN_DIR/cmake"
135136
echo "$CMAKE_BIN_DIR" >> "$GITHUB_PATH"
136137
ln -sfn "$CMAKE_BIN" /usr/local/bin/cmake
137138
PATH="$CMAKE_BIN_DIR:$PATH" cmake --version
139+
ninja --version
140+
- name: Cache Qt 6
141+
id: qt-cache
142+
uses: actions/cache@v6
143+
with:
144+
path: /opt/envpool-qt6
145+
key: qt-manylinux_2_28-${{ matrix.arch }}-${{ hashFiles('third_party/qt/build_release.sh') }}
146+
- name: Build Qt 6 from source
147+
if: steps.qt-cache.outputs.cache-hit != 'true'
148+
run: bash third_party/qt/build_release.sh "$BAZEL_RULES_QT_DIR"
138149
- name: Prefer system libstdc++ for Mesa
139150
shell: bash
140151
run: |
@@ -144,15 +155,12 @@ jobs:
144155
rm -rf dist wheelhouse
145156
make PYPI_WHEEL_PLAT=${{ matrix.auditwheel-plat }} pypi-wheel
146157
python -m pip install wheelhouse/*.whl --force-reinstall
147-
- name: Test
148-
run: |
149-
make release-test
150-
- name: Test without Linux Qt runtime
158+
- name: Test with only the bundled Qt runtime
159+
shell: bash
151160
run: |
152-
rpm -qa 'qt5-qtbase*' 'qt5-qtdeclarative*' | sort
153-
dnf remove -y 'qt5-qtbase*' 'qt5-qtdeclarative*'
154-
dnf clean all
155-
make PROCGEN_QT_RUNTIME=absent release-test-procgen-qt
161+
mv "$BAZEL_RULES_QT_DIR" "${BAZEL_RULES_QT_DIR}-sdk-unused"
162+
trap 'mv "${BAZEL_RULES_QT_DIR}-sdk-unused" "$BAZEL_RULES_QT_DIR"' EXIT
163+
make PROCGEN_QT_RUNTIME=bundled release-test
156164
- name: Upload artifact
157165
uses: actions/upload-artifact@v7
158166
with:
@@ -219,18 +227,27 @@ jobs:
219227
run: |
220228
Add-Content -Path $env:GITHUB_ENV -Value "ENVPOOL_DLL_DIR=$env:GITHUB_WORKSPACE\.mesa"
221229
Add-Content -Path $env:GITHUB_PATH -Value "$env:GITHUB_WORKSPACE\.mesa"
222-
- name: Install Qt 5
230+
- name: Install Qt 6
223231
uses: jurplel/install-qt-action@v4
224232
with:
225-
version: "5.15.2"
226-
arch: "win64_msvc2019_64"
233+
version: "6.11.1"
234+
# Qt 6.11 repository layout support; not yet in an aqt release.
235+
aqtsource: git+https://github.com/miurahr/aqtinstall.git@8c3695d4a4e1ceabf6a74dc6c79681656dc6b74b
236+
py7zrversion: "==1.1.0"
237+
arch: "win64_msvc2022_64"
227238
set-env: "true"
228239
- name: Export Qt location
229240
shell: pwsh
230241
run: |
231242
Add-Content -Path $env:GITHUB_ENV -Value "BAZEL_RULES_QT_DIR=$env:QT_ROOT_DIR"
232243
Add-Content -Path $env:GITHUB_PATH -Value (Join-Path $env:QT_ROOT_DIR "bin")
233244
Add-Content -Path $env:GITHUB_PATH -Value "C:\Program Files\Git\usr\bin"
245+
- name: Collect Qt licenses and notices
246+
shell: bash
247+
run: |
248+
qt_prefix=$(cygpath -u "$QT_ROOT_DIR")
249+
bash third_party/qt/build_release.sh --licenses-only "$qt_prefix"
250+
echo "WHEEL_LICENSE_DIR=$(cygpath -m "$qt_prefix/licenses/qt6")" >> "$GITHUB_ENV"
234251
- name: Install bazelisk
235252
shell: pwsh
236253
run: |

.github/workflows/test.yml

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,8 @@ jobs:
4646
- name: Install Linux dependencies
4747
run: |
4848
sudo apt-get update
49-
sudo apt-get install -y clang-tidy-20 cmake lcov ninja-build swig qtbase5-dev qtdeclarative5-dev libegl1-mesa-dev libopengl-dev
49+
sudo apt-get install -y cmake lcov ninja-build swig qt6-base-dev libegl1-mesa-dev libopengl-dev
5050
python -m pip install --upgrade cmake
51-
qmake_bin="$(command -v qmake-qt5 || command -v qmake)"
52-
qt_include_dir="$("$qmake_bin" -query QT_INSTALL_HEADERS)"
53-
sudo ln -sfn "$qt_include_dir" /usr/include/qt
5451
- name: Restore Bazel caches
5552
uses: actions/cache/restore@v6
5653
with:
@@ -167,11 +164,8 @@ jobs:
167164
- name: Install Linux dependencies
168165
run: |
169166
sudo apt-get update
170-
sudo apt-get install -y clang-20 clang-tidy-20 cmake lcov ninja-build swig qtbase5-dev qtdeclarative5-dev libegl1-mesa-dev libopengl-dev
167+
sudo apt-get install -y clang-20 cmake lcov ninja-build swig qt6-base-dev libegl1-mesa-dev libopengl-dev
171168
python -m pip install --upgrade cmake
172-
qmake_bin="$(command -v qmake-qt5 || command -v qmake)"
173-
qt_include_dir="$("$qmake_bin" -query QT_INSTALL_HEADERS)"
174-
sudo ln -sfn "$qt_include_dir" /usr/include/qt
175169
- name: Restore Bazel caches
176170
uses: actions/cache/restore@v6
177171
with:
@@ -243,15 +237,15 @@ jobs:
243237
python-version: "3.12"
244238
- name: Install macOS dependencies
245239
run: |
246-
brew install ninja swig qt@5
240+
brew install ninja swig qtbase
247241
python -m pip install --upgrade cmake
248242
CMAKE_BIN_DIR="$(python -c "import cmake; print(cmake.CMAKE_BIN_DIR)")"
249243
CMAKE_BIN="$CMAKE_BIN_DIR/cmake"
250244
echo "$CMAKE_BIN_DIR" >> "$GITHUB_PATH"
251245
sudo ln -sfn "$CMAKE_BIN" /usr/local/bin/cmake
252246
PATH="$CMAKE_BIN_DIR:$PATH" cmake --version
253247
sudo ln -sfn "$(brew --prefix ninja)/bin/ninja" /usr/local/bin/ninja
254-
echo "BAZEL_RULES_QT_DIR=$(brew --prefix qt@5)" >> "$GITHUB_ENV"
248+
echo "BAZEL_RULES_QT_DIR=$(brew --prefix qtbase)" >> "$GITHUB_ENV"
255249
- name: Restore Bazel caches
256250
uses: actions/cache/restore@v6
257251
with:
@@ -348,11 +342,14 @@ jobs:
348342
run: |
349343
Add-Content -Path $env:GITHUB_ENV -Value "ENVPOOL_DLL_DIR=$env:GITHUB_WORKSPACE\.mesa"
350344
Add-Content -Path $env:GITHUB_PATH -Value "$env:GITHUB_WORKSPACE\.mesa"
351-
- name: Install Qt 5
345+
- name: Install Qt 6
352346
uses: jurplel/install-qt-action@v4
353347
with:
354-
version: "5.15.2"
355-
arch: "win64_msvc2019_64"
348+
version: "6.11.1"
349+
# Qt 6.11 repository layout support; not yet in an aqt release.
350+
aqtsource: git+https://github.com/miurahr/aqtinstall.git@8c3695d4a4e1ceabf6a74dc6c79681656dc6b74b
351+
py7zrversion: "==1.1.0"
352+
arch: "win64_msvc2022_64"
356353
set-env: "true"
357354
- name: Export Qt location
358355
shell: pwsh

MODULE.bazel

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ bazel_dep(name = "bazel_features", version = "1.51.0")
44
bazel_dep(name = "bazel_skylib", version = "1.9.2")
55
bazel_dep(name = "bzip2", version = "1.0.8.bcr.4")
66
bazel_dep(name = "platforms", version = "1.1.0")
7-
bazel_dep(name = "protobuf", version = "36.0", repo_name = "com_google_protobuf")
7+
bazel_dep(name = "protobuf", version = "36.0.bcr.1", repo_name = "com_google_protobuf")
88
bazel_dep(name = "rules_boost", repo_name = "com_github_nelhage_rules_boost")
99
bazel_dep(name = "rules_cc", version = "0.2.22")
1010
bazel_dep(name = "rules_foreign_cc", version = "0.15.1")

0 commit comments

Comments
 (0)