From d2193037f9ab69f848a53fce618eff6dbc5f5c31 Mon Sep 17 00:00:00 2001 From: Matthew Morley Date: Mon, 16 Jun 2025 14:16:28 -0700 Subject: [PATCH 001/101] Nix merch because we can't have nice things --- website/index.html | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/website/index.html b/website/index.html index 3de363e3a..1e8a6f995 100755 --- a/website/index.html +++ b/website/index.html @@ -61,11 +61,6 @@ class="header-btn" >GitHub - Merch GitHub - Merch Demo From 413cf8c4af736d9783cde43f6ef82c6f0ad8079d Mon Sep 17 00:00:00 2001 From: Matthew Morley Date: Mon, 16 Jun 2025 14:48:08 -0700 Subject: [PATCH 002/101] Fuse off mypy --- .github/workflows/python.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index ddb5bf4d3..3bfeb6114 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -47,13 +47,14 @@ jobs: pip install --no-cache-dir dist/*.whl pytest - - name: Run mypy type checking - uses: liskin/gh-problem-matcher-wrap@v3 - with: - linters: mypy - run: | - mypy --show-column-numbers --config-file photon-lib/py/pyproject.toml photon-lib - + # Disable due to robotpy issue. See + # https://github.com/PhotonVision/photonvision/issues/1968 + # - name: Run mypy type checking + # uses: liskin/gh-problem-matcher-wrap@v3 + # with: + # linters: mypy + # run: | + # mypy --show-column-numbers --config-file photon-lib/py/pyproject.toml photon-lib - name: Upload artifacts uses: actions/upload-artifact@master From 4b740a54851c4d3295b2c3b39a3cded1be61b633 Mon Sep 17 00:00:00 2001 From: Gold856 <117957790+Gold856@users.noreply.github.com> Date: Wed, 18 Jun 2025 03:26:52 +0000 Subject: [PATCH 003/101] Disable Alerts test in PhotonCameraTest (#1969) ## Description Disable the Alerts test in PhotonCameraTest because it's consistently failing on Linux. ## Meta Merge checklist: - [x] Pull Request title is [short, imperative summary](https://cbea.ms/git-commit/) of proposed changes - [x] The description documents the _what_ and _why_ - [ ] If this PR changes behavior or adds a feature, user documentation is updated - [ ] If this PR touches photon-serde, all messages have been regenerated and hashes have not changed unexpectedly - [ ] If this PR touches configuration, this is backwards compatible with settings back to v2024.3.1 - [ ] If this PR touches pipeline settings or anything related to data exchange, the frontend typing is updated - [ ] If this PR addresses a bug, a regression test for it is added --- photon-lib/src/test/java/org/photonvision/PhotonCameraTest.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/photon-lib/src/test/java/org/photonvision/PhotonCameraTest.java b/photon-lib/src/test/java/org/photonvision/PhotonCameraTest.java index 2f8e6c57d..b0f4cfc7c 100644 --- a/photon-lib/src/test/java/org/photonvision/PhotonCameraTest.java +++ b/photon-lib/src/test/java/org/photonvision/PhotonCameraTest.java @@ -305,6 +305,8 @@ class PhotonCameraTest { @Test public void testAlerts() throws InterruptedException { + // See https://github.com/PhotonVision/photonvision/pull/1969. Flaky on Linux + assumeTrue(false); // GIVEN a fresh NT instance var cameraName = "foobar"; From 25851525ce6dc1bbdefc8195f506cab7f3890e42 Mon Sep 17 00:00:00 2001 From: Sam Freund Date: Wed, 18 Jun 2025 16:26:20 -0500 Subject: [PATCH 004/101] Fix Broken Docs (#1971) Some dummy updated the [Caddyfile](https://github.com/PhotonVision/ansible-playbooks/blob/main/files/caddy/Caddyfile) on the server but never updated the playbook repo or the CI on main to reflect that. :shrug: Anyways, we're keeping the new Caddyfile because it makes pydocs work, and it more accurately reflects our CI process. --- .github/workflows/photon-api-docs.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/photon-api-docs.yml b/.github/workflows/photon-api-docs.yml index b02f290d6..f9b72c4b8 100644 --- a/.github/workflows/photon-api-docs.yml +++ b/.github/workflows/photon-api-docs.yml @@ -42,8 +42,8 @@ jobs: name: built-demo path: photon-client/dist/ - run_api_docs: - name: Build API Docs + run_java_cpp_docs: + name: Build Java and C++ API Docs runs-on: "ubuntu-22.04" steps: - name: Checkout code @@ -63,18 +63,18 @@ jobs: ./gradlew photon-docs:generateJavaDocs photon-docs:doxygen - uses: actions/upload-artifact@v4 with: - name: built-docs + name: docs-java-cpp path: photon-docs/build/docs publish_api_docs: name: Publish API Docs - needs: [run_api_docs] + needs: [run_java_cpp_docs] runs-on: ubuntu-22.04 steps: # Download docs artifact - uses: actions/download-artifact@v4 with: - name: built-docs + pattern: docs-* - run: find . - name: Publish Docs To Development if: github.ref == 'refs/heads/main' @@ -83,7 +83,7 @@ jobs: HOST: ${{ secrets.WEBMASTER_SSH_HOST }} USER: ${{ secrets.WEBMASTER_SSH_USERNAME }} KEY: ${{secrets.WEBMASTER_SSH_KEY}} - TARGET: /var/www/html/photonvision-docs/development + TARGET: /var/www/html/photonvision-docs/development/ - name: Publish Docs To Release if: startsWith(github.ref, 'refs/tags/v') uses: up9cloud/action-rsync@v1.4 From 3df58485c2cd64618e5ddc3f51e6374f97fd5671 Mon Sep 17 00:00:00 2001 From: Gold856 <117957790+Gold856@users.noreply.github.com> Date: Sun, 22 Jun 2025 00:09:49 -0400 Subject: [PATCH 005/101] Disable linkcheck for gnu.org --- docs/source/conf.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/docs/source/conf.py b/docs/source/conf.py index 77b1669ef..1e1c91d73 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -144,7 +144,11 @@ sphinx_tabs_valid_builders = ["epub", "linkcheck"] # Excluded links for linkcheck # These should be periodically checked by hand to ensure that they are still functional -linkcheck_ignore = [R"https://www.raspberrypi.com/software/", R"http://10\..+"] +linkcheck_ignore = [ + R"https://www.raspberrypi.com/software/", + R"http://10\..+", + R"https://gnu.org/", +] token = os.environ.get("GITHUB_TOKEN", None) if token: From efc997dfbd20d17e9aa953fb45eb1b00ed08b9ff Mon Sep 17 00:00:00 2001 From: Jade Date: Tue, 24 Jun 2025 11:50:13 +0800 Subject: [PATCH 006/101] [ci] Run on push or PR (#1974) ## Description CI will now run whenever a branch is pushed or a PR is opened. Fixes 2027 behaviour and allows running CI on forks ## Meta Merge checklist: - [x] Pull Request title is [short, imperative summary](https://cbea.ms/git-commit/) of proposed changes - [x] The description documents the _what_ and _why_ - [ ] If this PR changes behavior or adds a feature, user documentation is updated - [ ] If this PR touches photon-serde, all messages have been regenerated and hashes have not changed unexpectedly - [ ] If this PR touches configuration, this is backwards compatible with settings back to v2024.3.1 - [ ] If this PR touches pipeline settings or anything related to data exchange, the frontend typing is updated - [ ] If this PR addresses a bug, a regression test for it is added Signed-off-by: Jade Turner --- .github/workflows/build.yml | 5 ----- .github/workflows/lint-format.yml | 5 ----- .github/workflows/photon-api-docs.yml | 5 ----- .github/workflows/photonvision-rtd.yml | 3 --- .github/workflows/python.yml | 5 ----- .github/workflows/website.yml | 6 ------ 6 files changed, 29 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 84d5e5f85..e283db4e2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -3,12 +3,7 @@ name: Build on: # Run on pushes to main and pushed tags, and on pull requests against main, but ignore the docs folder push: - branches: [ main ] - tags: - - 'v*' pull_request: - branches: [ main ] - merge_group: concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} diff --git a/.github/workflows/lint-format.yml b/.github/workflows/lint-format.yml index 39e475930..5fda255d9 100644 --- a/.github/workflows/lint-format.yml +++ b/.github/workflows/lint-format.yml @@ -3,12 +3,7 @@ name: Lint and Format on: # Run on pushes to main and pushed tags, and on pull requests against main, but ignore the docs folder push: - branches: [ main ] - tags: - - 'v*' pull_request: - branches: [ main ] - merge_group: concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} diff --git a/.github/workflows/photon-api-docs.yml b/.github/workflows/photon-api-docs.yml index f9b72c4b8..37e436edc 100644 --- a/.github/workflows/photon-api-docs.yml +++ b/.github/workflows/photon-api-docs.yml @@ -3,12 +3,7 @@ name: Photon API Documentation on: # Run on pushes to main and pushed tags, and on pull requests against main, but ignore the docs folder push: - branches: [ main ] - tags: - - 'v*' pull_request: - branches: [ main ] - merge_group: concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} diff --git a/.github/workflows/photonvision-rtd.yml b/.github/workflows/photonvision-rtd.yml index ed9e8f2ec..7f02b87c2 100644 --- a/.github/workflows/photonvision-rtd.yml +++ b/.github/workflows/photonvision-rtd.yml @@ -2,10 +2,7 @@ name: PhotonVision ReadTheDocs Checks on: push: - branches: [ main ] pull_request: - branches: [ main ] - merge_group: concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 3bfeb6114..86dbb8fb9 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -5,12 +5,7 @@ permissions: on: push: - branches: [ main ] - tags: - - 'v*' pull_request: - branches: [ main ] - merge_group: concurrency: group: ${{ github.workflow }}-${{ github.head_ref || github.ref }} diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml index ff2acaaa7..e61bd7674 100644 --- a/.github/workflows/website.yml +++ b/.github/workflows/website.yml @@ -2,13 +2,7 @@ name: Website on: push: - # For now, run on all commits to main - branches: [ main ] - tags: - - 'v*' pull_request: - branches: [ main ] - merge_group: jobs: rsync: From 783d9d73bed287d46dd483cfded8aeafbc8933ab Mon Sep 17 00:00:00 2001 From: Matthew Liang Date: Wed, 25 Jun 2025 21:22:43 -0400 Subject: [PATCH 007/101] Update list of coprocessors on quick-install.md (#1976) --- docs/source/docs/quick-start/quick-install.md | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/docs/source/docs/quick-start/quick-install.md b/docs/source/docs/quick-start/quick-install.md index 7b30a65a5..97e8454ea 100644 --- a/docs/source/docs/quick-start/quick-install.md +++ b/docs/source/docs/quick-start/quick-install.md @@ -3,20 +3,23 @@ ## Install the latest image of photonvision for your coprocessor - For the supported coprocessors - - RPI 3,4,5 - - Orange Pi 5 - - Limelight + - RPi 3,4,5 + - Orange Pi 5, 5B, 5 Pro + - Limelight 2, 2+, 3, 3G -For installing on non-supported devices {ref}`see. ` +For installing on non-supported devices {ref}`see here. ` [Download the latest preconfigured image of photonvision for your coprocessor](https://github.com/PhotonVision/photonvision/releases/latest) -| Coprocessor | Image filename | Jar | -| -------------------- | ---------------------------------------------------- | ------------------------------------- | -| OrangePi 5 | photonvision-{version}-linuxarm64_orangepi5.img.xz | photonvision-{version}-linuxarm64.jar | -| Raspberry Pi 3, 4, 5 | photonvision-{version}-linuxarm64_RaspberryPi.img.xz | photonvision-{version}-linuxarm64.jar | -| Limelight 2 | photonvision-{version}-linuxarm64_limelight2.img.xz | photonvision-{version}-linuxarm64.jar | -| Limelight 3 | photonvision-{version}-linuxarm64_limelight3.img.xz | photonvision-{version}-linuxarm64.jar | +| Coprocessor | Image filename | Jar | +| -------------------- | -------------------------------------------------------- | ------------------------------------- | +| Raspberry Pi 3, 4, 5 | photonvision-{version}-linuxarm64_RaspberryPi.img.xz | photonvision-{version}-linuxarm64.jar | +| OrangePi 5 | photonvision-{version}-linuxarm64_orangepi5.img.xz | photonvision-{version}-linuxarm64.jar | +| OrangePi 5B | photonvision-{version}-linuxarm64_orangepi5b.img.xz | photonvision-{version}-linuxarm64.jar | +| OrangePi 5 Pro | photonvision-{version}-linuxarm64_orangepi5pro.img.xz | photonvision-{version}-linuxarm64.jar | +| Limelight 2 | photonvision-{version}-linuxarm64_limelight2.img.xz | photonvision-{version}-linuxarm64.jar | +| Limelight 3 | photonvision-{version}-linuxarm64_limelight3.img.xz | photonvision-{version}-linuxarm64.jar | +| Limelight 3G | photonvision-{version}-linuxarm64_limelight3G.img.xz | photonvision-{version}-linuxarm64.jar | Use the [Raspberry Pi Imager](https://www.raspberrypi.com/software/) to flash the image onto the coprocessors microSD card. Select the downloaded `.img.xz` file, select your microSD card, and flash. @@ -29,5 +32,5 @@ Limelights have a different installation processes. Simply connect the limelight Unless otherwise noted in release notes or if updating from the prior years version, to update PhotonVision after the initial installation, use the offline update option in the settings page with the downloaded jar file from the latest release. :::{note} -Limelight 2, 2+, and 3 will need a [custom hardware config file](https://github.com/PhotonVision/photonvision/tree/main/docs/source/docs/advanced-installation/sw_install/files) for lighting to work. Currently only limelight 2 and 2+ files are available. +Limelight 2, 2+, and 3 will need a [custom hardware config file](https://github.com/PhotonVision/photonvision/tree/main/docs/source/docs/advanced-installation/sw_install/files) for lighting to work. ::: From a9c26202a06498e87370b1e63608d89c062b4fd5 Mon Sep 17 00:00:00 2001 From: Sam Freund Date: Sat, 28 Jun 2025 16:09:35 -0500 Subject: [PATCH 008/101] Fix logic for no cameras detected modal (#1978) fixes #1977 Previously, the logic was checking for the camera object to be the same as the placeholder camera object. Logic has been changed to check only the name of the camera object. --- photon-client/src/views/DashboardView.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/photon-client/src/views/DashboardView.vue b/photon-client/src/views/DashboardView.vue index ed90f021f..4c9a0c229 100644 --- a/photon-client/src/views/DashboardView.vue +++ b/photon-client/src/views/DashboardView.vue @@ -43,7 +43,7 @@ const cameraViewType = computed({ const warningShown = computed(() => { return ( Object.values(useCameraSettingsStore().cameras).length === 0 || - useCameraSettingsStore().cameras["Placeholder Name"] === PlaceholderCameraSettings + PlaceholderCameraSettings.nickname === useCameraSettingsStore().currentCameraName ); }); From cc7923eeb441a7866d6ca588cdb3bc0c361e3f89 Mon Sep 17 00:00:00 2001 From: Gold856 <117957790+Gold856@users.noreply.github.com> Date: Sun, 29 Jun 2025 00:18:54 -0400 Subject: [PATCH 009/101] Fix camera setup modal not closing and navigation not working (#1979) --- .../src/components/app/photon-sidebar.vue | 20 ++++++++-------- .../stores/settings/CameraSettingsStore.ts | 6 +++++ photon-client/src/views/DashboardView.vue | 23 +++++++++---------- 3 files changed, 26 insertions(+), 23 deletions(-) diff --git a/photon-client/src/components/app/photon-sidebar.vue b/photon-client/src/components/app/photon-sidebar.vue index 2aea12a81..e8e2d619b 100644 --- a/photon-client/src/components/app/photon-sidebar.vue +++ b/photon-client/src/components/app/photon-sidebar.vue @@ -3,7 +3,6 @@ import { computed } from "vue"; import { useSettingsStore } from "@/stores/settings/GeneralSettingsStore"; import { useStateStore } from "@/stores/StateStore"; import { useCameraSettingsStore } from "@/stores/settings/CameraSettingsStore"; -import { PlaceholderCameraSettings } from "@/types/SettingTypes"; import { useRoute } from "vue-router"; import { useDisplay } from "vuetify"; @@ -18,13 +17,6 @@ const compact = computed({ const { mdAndUp } = useDisplay(); const renderCompact = computed(() => compact.value || !mdAndUp.value); - -const needsCamerasConfigured = computed(() => { - return ( - Object.values(useCameraSettingsStore().cameras).length === 0 || - useCameraSettingsStore().cameras["PlaceHolder Name"] === PlaceholderCameraSettings - ); -});