Skip to content

Commit 2a429ed

Browse files
committed
merge upstream
2 parents b7dc63d + 4cf1c7e commit 2a429ed

File tree

235 files changed

+5114
-1901
lines changed

Some content is hidden

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

235 files changed

+5114
-1901
lines changed

.github/workflows/build.yml

Lines changed: 25 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,13 @@ jobs:
4848
fetch-depth: 0
4949
- name: Fetch tags
5050
run: git fetch --tags --force
51-
- name: Install RoboRIO Toolchain
52-
run: ./gradlew installRoboRioToolchain
5351
- name: Install Java 17
5452
uses: actions/setup-java@v4
5553
with:
5654
java-version: 17
5755
distribution: temurin
56+
- name: Install RoboRIO Toolchain
57+
run: ./gradlew installRoboRioToolchain
5858
# Need to publish to maven local first, so that C++ sim can pick it up
5959
# Still haven't figured out how to make the vendordep file be copied before trying to build examples
6060
- name: Publish photonlib to maven local
@@ -85,7 +85,7 @@ jobs:
8585
- name: Fetch tags
8686
run: git fetch --tags --force
8787
- name: Install Java 17
88-
uses: actions/setup-java@v3
88+
uses: actions/setup-java@v4
8989
with:
9090
java-version: 17
9191
distribution: temurin
@@ -115,6 +115,10 @@ jobs:
115115
- uses: actions/setup-python@v5
116116
with:
117117
python-version: '3.11'
118+
- name: Install graphviz
119+
run: |
120+
sudo apt-get update
121+
sudo apt-get -y install graphviz
118122
- name: Install dependencies
119123
working-directory: docs
120124
run: |
@@ -161,6 +165,7 @@ jobs:
161165
- run: |
162166
chmod +x gradlew
163167
./gradlew photon-targeting:build photon-lib:build -i
168+
name: Build with Gradle
164169
- run: ./gradlew photon-lib:publish photon-targeting:publish
165170
name: Publish
166171
env:
@@ -283,6 +288,9 @@ jobs:
283288
java-version: 17
284289
distribution: temurin
285290
architecture: ${{ matrix.architecture }}
291+
- name: Install Arm64 Toolchain
292+
run: ./gradlew installArm64Toolchain
293+
if: ${{ (matrix.artifact-name) == 'LinuxArm64' }}
286294
- run: |
287295
rm -rf photon-server/src/main/resources/web/*
288296
mkdir -p photon-server/src/main/resources/web/docs
@@ -301,7 +309,7 @@ jobs:
301309
path: photon-server/src/main/resources/web/docs
302310
- run: |
303311
chmod +x gradlew
304-
./gradlew photon-server:shadowJar -PArchOverride=${{ matrix.arch-override }}
312+
./gradlew photon-targeting:jar photon-server:shadowJar -PArchOverride=${{ matrix.arch-override }}
305313
if: ${{ (matrix.arch-override != 'none') }}
306314
- run: |
307315
chmod +x gradlew
@@ -311,6 +319,10 @@ jobs:
311319
with:
312320
name: jar-${{ matrix.artifact-name }}
313321
path: photon-server/build/libs
322+
- uses: actions/upload-artifact@v4
323+
with:
324+
name: photon-targeting_jar-${{ matrix.artifact-name }}
325+
path: photon-targeting/build/libs
314326

315327
run-smoketest-native:
316328
needs: [build-package]
@@ -344,7 +356,7 @@ jobs:
344356
- run: |
345357
sudo apt-get update
346358
sudo apt-get install --yes libcholmod3 liblapack3 libsuitesparseconfig5
347-
if: ${{ (matrix.os) == 'ubuntu-latest' }}
359+
if: ${{ (matrix.os) == 'ubuntu-22.04' }}
348360
# and actually run the jar
349361
- run: java -jar ${{ matrix.extraOpts }} *.jar --smoketest
350362
if: ${{ (matrix.os) != 'windows-latest' }}
@@ -400,46 +412,46 @@ jobs:
400412
- os: ubuntu-22.04
401413
artifact-name: LinuxArm64
402414
image_suffix: RaspberryPi
403-
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-4/photonvision_raspi.img.xz
415+
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-6/photonvision_raspi.img.xz
404416
cpu: cortex-a7
405417
image_additional_mb: 0
406418
- os: ubuntu-22.04
407419
artifact-name: LinuxArm64
408420
image_suffix: limelight2
409-
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-4/photonvision_limelight.img.xz
421+
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-6/photonvision_limelight.img.xz
410422
cpu: cortex-a7
411423
image_additional_mb: 0
412424
- os: ubuntu-22.04
413425
artifact-name: LinuxArm64
414426
image_suffix: limelight3
415-
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-4/photonvision_limelight3.img.xz
427+
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-6/photonvision_limelight3.img.xz
416428
cpu: cortex-a7
417429
image_additional_mb: 0
418430
- os: ubuntu-22.04
419431
artifact-name: LinuxArm64
420432
image_suffix: orangepi5
421-
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-3/photonvision_opi5.img.xz
433+
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-6/photonvision_opi5.img.xz
422434
cpu: cortex-a8
423435
image_additional_mb: 1024
424436
- os: ubuntu-22.04
425437
artifact-name: LinuxArm64
426438
image_suffix: orangepi5b
427-
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-3/photonvision_opi5b.img.xz
439+
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-6/photonvision_opi5b.img.xz
428440
cpu: cortex-a8
429441
image_additional_mb: 1024
430442
- os: ubuntu-22.04
431443
artifact-name: LinuxArm64
432444
image_suffix: orangepi5plus
433-
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-3/photonvision_opi5plus.img.xz
445+
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-6/photonvision_opi5plus.img.xz
434446
cpu: cortex-a8
435447
image_additional_mb: 1024
436448
- os: ubuntu-22.04
437449
artifact-name: LinuxArm64
438450
image_suffix: orangepi5pro
439-
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-3/photonvision_opi5pro.img.xz
451+
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-6/photonvision_opi5pro.img.xz
440452
cpu: cortex-a8
441453
image_additional_mb: 1024
442-
- os: ubuntu-latest
454+
- os: ubuntu-22.04
443455
artifact-name: LinuxArm64
444456
image_suffix: orangepi5max
445457
image_url: https://github.com/PhotonVision/photon-image-modifier/releases/download/v2025.0.0-beta-6/photonvision_opi5max.img.xz

.github/workflows/lint-format.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,14 @@ jobs:
5757
- uses: actions/checkout@v3
5858
with:
5959
fetch-depth: 0
60-
- uses: actions/setup-java@v3
60+
- uses: actions/setup-java@v4
6161
with:
6262
java-version: 17
6363
distribution: temurin
6464
- run: |
6565
chmod +x gradlew
6666
./gradlew spotlessCheck
67+
name: Run spotless
6768
6869
client-lint-format:
6970
name: "PhotonClient Lint and Formatting"

.github/workflows/photon-code-docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959
- name: Fetch tags
6060
run: git fetch --tags --force
6161
- name: Install Java 17
62-
uses: actions/setup-java@v3
62+
uses: actions/setup-java@v4
6363
with:
6464
java-version: 17
6565
distribution: temurin

.github/workflows/photonvision-docs.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ jobs:
2626
- name: Install and upgrade pip
2727
run: python -m pip install --upgrade pip
2828

29+
- name: Install graphviz
30+
run: |
31+
sudo apt-get update
32+
sudo apt-get -y install graphviz
33+
2934
- name: Install Python dependencies
3035
working-directory: docs
3136
run: |

.github/workflows/python.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ on:
2121

2222
jobs:
2323
buildAndDeploy:
24-
runs-on: ubuntu-latest
24+
runs-on: ubuntu-22.04
2525

2626
steps:
2727
- name: Checkout code

.readthedocs.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ build:
99
os: ubuntu-22.04
1010
tools:
1111
python: "3.11"
12+
apt_packages:
13+
- graphviz
1214
jobs:
1315
post_checkout:
1416
# Cancel building pull requests when there aren't changed in the docs directory or YAML file.

README.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -23,28 +23,31 @@ If you are interested in contributing code or documentation to the project, plea
2323

2424
## Building
2525

26-
Gradle is used for all C++ and Java code, and NPM is used for the web UI. Instructions to compile PhotonVision yourself can be found [in our docs](https://docs.photonvision.org/en/latest/docs/contributing/photonvision/build-instructions.html?highlight=npm%20install#compiling-instructions).
26+
Gradle is used for all C++ and Java code, and NPM is used for the web UI. Instructions to compile PhotonVision yourself can be found [in our docs](https://docs.photonvision.org/en/latest/docs/contributing/building-photon.html#compiling-instructions).
2727

28-
You can run one of the many built in examples straight from the command line, too! They contain a fully featured robot project, and some include simulation support. The projects can be found inside the [`photonlib-java-examples`](photonlib-java-examples) and [`photonlib-cpp-examples`](photonlib-cpp-examples) subdirectories, respectively. Instructions for running these examples directly from the repo are found [in the docs](https://docs.photonvision.org/en/latest/docs/contributing/photonvision/build-instructions.html#running-examples).
28+
You can run one of the many built in examples straight from the command line, too! They contain a fully featured robot project, and some include simulation support. The projects can be found inside the [`photonlib-java-examples`](photonlib-java-examples) and [`photonlib-cpp-examples`](photonlib-cpp-examples) subdirectories, respectively. Instructions for running these examples directly from the repo are found [in the docs](https://docs.photonvision.org/en/latest/docs/contributing/building-photon.html#running-examples).
2929

3030
## Gradle Arguments
3131

3232
Note that these are case sensitive!
3333

34-
* `-PArchOverride=foobar`: builds for a target system other than your current architecture. Valid overrides are:
35-
* linuxathena
34+
* `-PArchOverride=foobar`: builds for a target system other than your current architecture. [Valid overrides](https://github.com/wpilibsuite/wpilib-tool-plugin/blob/main/src/main/java/edu/wpi/first/tools/NativePlatforms.java) are:
35+
* winx32
36+
* winx64
37+
* winarm64
38+
* macx64
39+
* macarm64
40+
* linuxx64
3641
* linuxarm64
37-
* arm64
38-
* x86-64
39-
* x86
42+
* linuxathena
4043
- `-PtgtIP`: Specifies where `./gradlew deploy` should try to copy the fat JAR to
4144
- `-Pprofile`: enables JVM profiling
4245

4346
If you're cross-compiling, you'll need the wpilib toolchain installed. This can be done via Gradle: for example `./gradlew installArm64Toolchain` or `./gradlew installRoboRioToolchain`
4447

4548
## Out-of-Source Dependencies
4649

47-
PhotonVision uses the following additonal out-of-source repositories for building code.
50+
PhotonVision uses the following additional out-of-source repositories for building code.
4851

4952
- Base system images for Raspberry Pi & Orange Pi: https://github.com/PhotonVision/photon-image-modifier
5053
- C++ driver for Raspberry Pi CSI cameras: https://github.com/PhotonVision/photon-libcamera-gl-driver

build.gradle

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@ plugins {
44
id "java"
55
id "cpp"
66
id "com.diffplug.spotless" version "6.24.0"
7-
id "edu.wpi.first.NativeUtils" version "2024.6.1" apply false
87
id "edu.wpi.first.wpilib.repositories.WPILibRepositoriesPlugin" version "2020.2"
9-
id "edu.wpi.first.GradleRIO" version "2024.3.2"
8+
id "edu.wpi.first.GradleRIO" version "2025.1.1-beta-1"
109
id 'edu.wpi.first.WpilibTools' version '1.3.0'
11-
id 'com.google.protobuf' version '0.9.4' apply false
10+
id 'com.google.protobuf' version '0.9.3' apply false
1211
id 'edu.wpi.first.GradleJni' version '1.1.0'
1312
}
1413

@@ -31,14 +30,15 @@ ext.allOutputsFolder = file("$project.buildDir/outputs")
3130
apply from: "versioningHelper.gradle"
3231

3332
ext {
34-
wpilibVersion = "2024.3.2"
33+
wpilibVersion = "2025.1.1-beta-1"
3534
wpimathVersion = wpilibVersion
36-
openCVversion = "4.8.0-2"
35+
openCVYear = "2024"
36+
openCVversion = "4.8.0-4"
3737
joglVersion = "2.4.0"
3838
javalinVersion = "5.6.2"
3939
libcameraDriverVersion = "dev-v2023.1.0-14-g787ab59"
4040
rknnVersion = "dev-v2024.0.1-4-g0db16ac"
41-
frcYear = "2024"
41+
frcYear = "2025"
4242
mrcalVersion = "dev-v2024.0.0-24-gc1efcf0";
4343

4444

docs/source/conf.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
"sphinxcontrib.ghcontributors",
3737
"sphinx_design",
3838
"myst_parser",
39+
"sphinx.ext.mathjax",
40+
"sphinx.ext.graphviz",
3941
]
4042

4143
# Configure OpenGraph support

docs/source/docs/contributing/building-docs.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ The built documentation is located at `docs/build/html/index.html` relative to t
2626

2727
## Docs Builds on Pull Requests
2828

29-
Pre-merge builds of docs can be found at: `https://photonvision-docs--PRNUMBER.org.readthedocs.build/en/PRNUMBER/index.html`. These docs are republished on every commit to a pull request made to PhotonVision/photonvision-docs. For example, PR 325 would have pre-merge documentation published to `https://photonvision-docs--325.org.readthedocs.build/en/325/index.html`. Additionally, the pull requrest will have a link directly to the pre-release build of the docs. This build only runs when there is a change to files in the docs sub-folder.
29+
Pre-merge builds of docs can be found at: `https://photonvision-docs--PRNUMBER.org.readthedocs.build/en/PRNUMBER/index.html`. These docs are republished on every commit to a pull request made to PhotonVision/photonvision-docs. For example, PR 325 would have pre-merge documentation published to `https://photonvision-docs--325.org.readthedocs.build/en/325/index.html`. Additionally, the pull request will have a link directly to the pre-release build of the docs. This build only runs when there is a change to files in the docs sub-folder.
3030

3131
## Style Guide
3232

0 commit comments

Comments
 (0)