diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 50914e9c46..87862a3414 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,7 +27,7 @@ jobs: # fail-fast: false # matrix: # include: - # - os: windows-2022 + # - os: windows-latest # artifact-name: Win64 # - os: macos-14 # artifact-name: macOS @@ -39,12 +39,10 @@ jobs: # needs: [build-photonlib-host, build-photonlib-docker] # steps: - # - name: Checkout code - # uses: actions/checkout@v6 + # - uses: actions/checkout@v6 # with: # fetch-depth: 0 - # - name: Fetch tags - # run: git fetch --tags --force + # - run: git fetch --tags --force # - uses: actions/setup-java@v5 # with: # java-version: 25 @@ -93,11 +91,11 @@ jobs: playwright-tests: name: "Playwright E2E tests" - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 needs: [validation] + # container: wpilib/systemcore-cross-debian:trixie steps: - - name: Checkout code - uses: actions/checkout@v6 + - uses: actions/checkout@v6 - uses: actions/setup-java@v5 with: java-version: 25 @@ -129,15 +127,15 @@ jobs: retention-days: 30 build-gradle: name: "Gradle Build" - runs-on: ubuntu-24.04 + runs-on: ubuntu-26.04 + container: wpilib/systemcore-cross-debian:trixie needs: [validation] steps: - - name: Checkout code - uses: actions/checkout@v6 + - uses: actions/checkout@v6 with: fetch-depth: 0 - - name: Fetch tags - run: git fetch --tags --force + - run: git config --global --add safe.directory /__w/photonvision/photonvision + - run: git fetch --tags --force - uses: actions/setup-java@v5 with: java-version: 25 @@ -153,9 +151,8 @@ jobs: - name: Generate Java/cpp Serde Tests working-directory: photon-serde run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - python generate_messages.py --tests + pip install -r requirements.txt --break-system-packages + python3 generate_messages.py --tests - name: Upload Java/cpp Serde Tests uses: actions/upload-artifact@v7 with: @@ -228,12 +225,10 @@ jobs: fail-fast: false matrix: include: - - os: windows-2022 - artifact-name: Win64 - - os: macos-26 - artifact-name: macOS - - os: ubuntu-24.04 - artifact-name: Linux + - os: windows-latest + artifact-name: Win64 + - os: macos-26 + artifact-name: macOS name: "Photonlib - Build Host - ${{ matrix.artifact-name }}" runs-on: ${{ matrix.os }} @@ -266,15 +261,15 @@ jobs: fail-fast: false matrix: include: - - container: wpilib/systemcore-cross-ubuntu:2027-24.04 + - container: wpilib/systemcore-cross-debian:trixie artifact-name: SystemCore build-options: "-Ponlylinuxsystemcore" - - container: wpilib/raspbian-cross-ubuntu:2027-bookworm-24.04 - artifact-name: Raspbian - build-options: "-Ponlylinuxarm32" - - container: wpilib/aarch64-cross-ubuntu:2027-bookworm-24.04 + - container: wpilib/aarch64-cross-debian:trixie artifact-name: Aarch64 build-options: "-Ponlylinuxarm64" + - container: wpilib/systemcore-cross-debian:trixie + artifact-name: Linux + build-options: "-Ponlylinuxx86-64" runs-on: ubuntu-24.04 container: ${{ matrix.container }} @@ -363,6 +358,11 @@ jobs: - name: Install Arm64 Toolchain run: ./gradlew installArm64Toolchain if: ${{ (matrix.artifact-name) == 'LinuxArm64' }} + - name: Make GCC 14 the default toolchain (Linux) + if: runner.os == 'Linux' + run: | + sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-14 200 + sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-14 200 - uses: actions/download-artifact@v8 with: name: built-docs @@ -403,7 +403,7 @@ jobs: fail-fast: false matrix: include: - - os: windows-2022 + - os: windows-latest artifact-name: Win arch-override: winx86-64 @@ -419,14 +419,14 @@ jobs: fail-fast: false matrix: include: - - os: ubuntu-24.04 + - os: ubuntu-26.04 artifact-name: photonvision-*-linuxx86-64.jar extraOpts: -Djdk.lang.Process.launchMechanism=vfork - - os: windows-2022 + - os: windows-latest artifact-name: photonvision-*-winx86-64.jar - os: macos-latest artifact-name: photonvision-*-macarm64.jar - - os: ubuntu-24.04-arm + - os: ubuntu-26.04-arm artifact-name: photonvision-*-linuxarm64.jar @@ -462,11 +462,11 @@ jobs: fi echo "=== Second run ===" java -jar ${{ matrix.extraOpts }} *.jar --smoketest - if: ${{ (matrix.os) != 'windows-2022' }} + if: ${{ (matrix.os) != 'windows-latest' }} - run: | ls *.jar | %{ Write-Host "Running $($_.Name)"; Start-Process "java" -ArgumentList "-jar `"$($_.FullName)`" --smoketest" -NoNewWindow -Wait; break } ls *.jar | %{ Write-Host "Running $($_.Name)"; Start-Process "java" -ArgumentList "-jar `"$($_.FullName)`" --smoketest" -NoNewWindow -Wait; break } - if: ${{ (matrix.os) == 'windows-2022' }} + if: ${{ (matrix.os) == 'windows-latest' }} build-image: needs: [build-package-linux] @@ -560,8 +560,7 @@ jobs: name: "Build image - ${{ matrix.image_suffix }}" steps: - - name: Checkout code - uses: actions/checkout@v6 + - uses: actions/checkout@v6 with: fetch-depth: 0 - uses: actions/download-artifact@v8 diff --git a/.github/workflows/photon-api-docs.yml b/.github/workflows/photon-api-docs.yml index e4c72e64a7..5007a0217f 100644 --- a/.github/workflows/photon-api-docs.yml +++ b/.github/workflows/photon-api-docs.yml @@ -52,12 +52,10 @@ jobs: needs: [validation] runs-on: "ubuntu-24.04" steps: - - name: Checkout code - uses: actions/checkout@v6 + - uses: actions/checkout@v6 with: fetch-depth: 0 - - name: Fetch tags - run: git fetch --tags --force + - run: git fetch --tags --force - uses: actions/setup-java@v5 with: java-version: 25 diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 9e5f81fa6e..2d5469f188 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -16,8 +16,7 @@ jobs: runs-on: ubuntu-24.04 steps: - - name: Checkout code - uses: actions/checkout@v6 + - uses: actions/checkout@v6 with: fetch-depth: 0 @@ -46,8 +45,7 @@ jobs: runs-on: ubuntu-24.04 steps: - - name: Checkout code - uses: actions/checkout@v6 + - uses: actions/checkout@v6 with: fetch-depth: 0 @@ -83,8 +81,7 @@ jobs: runs-on: ubuntu-24.04 steps: - - name: Checkout code - uses: actions/checkout@v6 + - uses: actions/checkout@v6 with: fetch-depth: 0 @@ -137,8 +134,7 @@ jobs: steps: - - name: Checkout code - uses: actions/checkout@v6 + - uses: actions/checkout@v6 with: fetch-depth: 0 diff --git a/build.gradle b/build.gradle index 4c5a30115a..c0774a79ae 100644 --- a/build.gradle +++ b/build.gradle @@ -4,8 +4,8 @@ plugins { id "cpp" id "com.diffplug.spotless" version "8.1.0" id "org.wpilib.WPILibRepositoriesPlugin" version "2027.0.0" - id 'org.wpilib.NativeUtils' version '2027.7.1' apply false - id 'org.wpilib.DeployUtils' version '2027.1.0' apply false + id 'org.wpilib.NativeUtils' version '2027.14.0' apply false + id 'org.wpilib.DeployUtils' version '2027.2.0' apply false id 'org.photonvision.tools.WpilibTools' version 'v5.0.1' id 'com.google.protobuf' version '0.9.5' apply false id 'org.wpilib.GradleJni' version '2027.0.0' @@ -31,12 +31,13 @@ ext.localMavenURL = file("$project.buildDir/outputs/maven") ext.allOutputsFolder = file("$project.buildDir/outputs") ext { - wpilibVersion = "2027.0.0-alpha-6" + wpilibVersion = "2027.0.0-alpha-6-354-g12b72bcc9" + mrclibVersion = "2027.1.0-alpha-1-91-gb154ee9" openCVversion = "2027-4.13.0-3" - ejmlVersion = "0.43.1"; + ejmlVersion = "0.46.0"; avajeJsonbVersion = "3.14"; msgpackVersion = "0.9.0"; - quickbufVersion = "1.3.3"; + quickbufVersion = "1.4"; jacocoVersion = "0.8.14"; javalinVersion = "6.7.0" @@ -97,7 +98,7 @@ spotless { } wrapper { - gradleVersion = '9.4.0' + gradleVersion = '9.4.1' } ext.getCurrentArch = { diff --git a/docs/source/docs/programming/photonlib/robot-pose-estimator.md b/docs/source/docs/programming/photonlib/robot-pose-estimator.md index 3bb551bb93..025efa9941 100644 --- a/docs/source/docs/programming/photonlib/robot-pose-estimator.md +++ b/docs/source/docs/programming/photonlib/robot-pose-estimator.md @@ -6,11 +6,11 @@ For more information on how to methods to get AprilTag data, look {ref}`here ` for more information. + - Must configure the field properly in the UI, please see {ref}`here ` for more information. - Lowest Ambiguity (`estimateLowestAmbiguityPose`) - Choose the Pose with the lowest ambiguity. - Closest to Camera Height (`estimateClosestToCameraHeightPose`) diff --git a/docs/source/docs/simulation/simulation-java.md b/docs/source/docs/simulation/simulation-java.md index 96a191e69e..e759312deb 100644 --- a/docs/source/docs/simulation/simulation-java.md +++ b/docs/source/docs/simulation/simulation-java.md @@ -116,7 +116,7 @@ To use simulated object detection, you must provide an objDetClassId (zero-index visionSim.addVisionTargets(visionTarget); ``` -For convenience, an `AprilTagFieldLayout` can also be added to automatically create a target for each of its AprilTags. +For convenience, a `Field` can also be added to automatically create a target for each of its AprilTags. ```{eval-rst} .. tab-set-code:: @@ -124,7 +124,7 @@ For convenience, an `AprilTagFieldLayout` can also be added to automatically cre .. code-block:: java // The layout of AprilTags which we want to add to the vision system - AprilTagFieldLayout tagLayout = AprilTagFieldLayout.loadFromResource(AprilTagFields.kDefaultField.m_resourceFile); + Field tagLayout = Field.loadField(Fields.DEFAULT_FIELD); visionSim.addAprilTags(tagLayout); ``` diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 547cae7cac..42bb5ac978 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=permwrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/photon-client/src/components/settings/ApriltagControlCard.vue b/photon-client/src/components/settings/ApriltagControlCard.vue index 414136983f..600f2a1be9 100644 --- a/photon-client/src/components/settings/ApriltagControlCard.vue +++ b/photon-client/src/components/settings/ApriltagControlCard.vue @@ -1,9 +1,15 @@