Skip to content
Open
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
0210740
detections work
TheTripleV Dec 29, 2025
4af212d
zero copy
TheTripleV Dec 29, 2025
2c45546
cleanup stale dylibs before build
TheTripleV Dec 29, 2025
d3bbc35
fix building on non-mac?
TheTripleV Dec 29, 2025
f28c436
format
TheTripleV Dec 29, 2025
15d73ec
include photon-apple on all platforms
TheTripleV Dec 29, 2025
5a50d03
use macos 26 and java 24 on mac
TheTripleV Dec 29, 2025
8eb5d96
split java version - 17 for photonlib, 24 for photonvision
TheTripleV Dec 29, 2025
9d66eba
fix ci builds - java 24 for app, exclude swift samples, add stub
TheTripleV Dec 29, 2025
e270c17
force photon-apple stubs for photonlib builds
TheTripleV Dec 29, 2025
3d0e7e3
upgrade jacoco to 0.8.13 for java 24 support
TheTripleV Dec 29, 2025
bb41408
spotless
TheTripleV Dec 30, 2025
5c52cd9
upgrade to java 25 (lts) from java 24
TheTripleV Dec 30, 2025
a5cf88e
revert to java 24 and force swiftkit to use java 24
TheTripleV Dec 30, 2025
666a48a
use java 25 on macos, java 24 on linux/windows
TheTripleV Dec 30, 2025
74ff655
fix gradle 8 running on java 25 - install java 24 first
TheTripleV Dec 30, 2025
a41a4b7
fix java installation order - install 25 first, then 24
TheTripleV Dec 30, 2025
7be648b
fix photon-apple java 24/25 compatibility for dependency resolution
TheTripleV Dec 30, 2025
39baf38
exclude all swift-java samples from CI build
TheTripleV Dec 30, 2025
9f0e1ad
update docs with java 24/25 compatibility details
TheTripleV Dec 30, 2025
6822efc
the jar works
TheTripleV Dec 30, 2025
5436dc9
Update swift-java submodule to fe857f6
TheTripleV Dec 30, 2025
ac6d387
jar works locally
TheTripleV Dec 30, 2025
adf7076
some review comments
TheTripleV Dec 31, 2025
d1817eb
build fixes and docs
TheTripleV Dec 31, 2025
b701fe1
use java 17 for all non-macos
TheTripleV Dec 31, 2025
21134f4
dont hardcode java 24
TheTripleV Dec 31, 2025
6c49c07
stub memorysegment
TheTripleV Dec 31, 2025
e70d036
use swift 6.2
TheTripleV Dec 31, 2025
a58dfab
use arm64 java
TheTripleV Dec 31, 2025
4299732
update submodule
TheTripleV Dec 31, 2025
4ec3f9c
use java 25 for smoketest on macos
TheTripleV Dec 31, 2025
0103070
Add GitHub Actions caching for Swift build artifacts on macOS
claude Jan 1, 2026
f4c6616
Trigger second CI run to test Swift build cache
claude Jan 1, 2026
c3d32bf
Add debug output to inspect Swift build directory locations
claude Jan 1, 2026
44adc6e
cache path
TheTripleV Jan 1, 2026
61a539a
changes
TheTripleV Jan 1, 2026
eaa52e7
Optimize macOS CI build caching with architecture-specific keys
TheTripleV Jan 1, 2026
86e162c
build examples on old macos
TheTripleV Jan 1, 2026
0174b21
bump
TheTripleV Jan 1, 2026
dab64ef
yaml anchors
TheTripleV Jan 1, 2026
cc59c89
bump
TheTripleV Jan 1, 2026
111678b
don't spam from swift as much
TheTripleV Jan 2, 2026
25480bd
Merge remote-tracking branch 'origin/main' into mac
TheTripleV Feb 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 30 additions & 15 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ jobs:
include:
- os: windows-2022
architecture: x64
- os: macos-14
architecture: aarch64
- os: macos-26
architecture: arm64
- os: ubuntu-22.04

name: "Photonlib - Build Examples - ${{ matrix.os }}"
Expand All @@ -41,6 +41,7 @@ jobs:
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Fetch tags
run: git fetch --tags --force
- name: Install Java 17
Expand All @@ -57,7 +58,7 @@ jobs:
if: matrix.os == 'ubuntu-22.04'
# Need to publish to maven local first, so that C++ sim can pick it up
- name: Publish photonlib to maven local
run: ./gradlew photon-targeting:publishtomavenlocal photon-lib:publishtomavenlocal -x check
run: ./gradlew photon-targeting:publishtomavenlocal photon-lib:publishtomavenlocal -x check -PphotonAppleForceStubs
- name: Build Java examples
working-directory: photonlib-java-examples
run: |
Expand All @@ -80,10 +81,10 @@ jobs:
fetch-depth: 0
- name: Fetch tags
run: git fetch --tags --force
- name: Install Java 17
- name: Install Java 24
uses: actions/setup-java@v4
with:
java-version: 17
java-version: 24
distribution: temurin
- name: Install pnpm
uses: pnpm/action-setup@v4
Expand Down Expand Up @@ -121,10 +122,10 @@ jobs:
fetch-depth: 0
- name: Fetch tags
run: git fetch --tags --force
- name: Install Java 17
- name: Install Java 24
uses: actions/setup-java@v4
with:
java-version: 17
java-version: 24
distribution: temurin
- name: Install pnpm
uses: pnpm/action-setup@v4
Expand Down Expand Up @@ -205,7 +206,7 @@ jobs:
- os: windows-2022
artifact-name: Win64
architecture: x64
- os: macos-14
- os: macos-26
artifact-name: macOS
architecture: aarch64
- os: ubuntu-22.04
Expand All @@ -218,22 +219,23 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
- name: Install Java 17
uses: actions/setup-java@v4
with:
java-version: 17
distribution: temurin
architecture: ${{ matrix.architecture }}
- run: git fetch --tags --force
- run: ./gradlew photon-targeting:build photon-lib:build
- run: ./gradlew photon-targeting:build photon-lib:build -PphotonAppleForceStubs
name: Build with Gradle
- run: ./gradlew photon-lib:publish photon-targeting:publish
- run: ./gradlew photon-lib:publish photon-targeting:publish -PphotonAppleForceStubs
name: Publish
env:
ARTIFACTORY_API_KEY: ${{ secrets.ARTIFACTORY_API_KEY }}
if: github.event_name == 'push' && github.repository_owner == 'photonvision'
# Copy artifacts to build/outputs/maven
- run: ./gradlew photon-lib:publish photon-targeting:publish -PcopyOfflineArtifacts
- run: ./gradlew photon-lib:publish photon-targeting:publish -PcopyOfflineArtifacts -PphotonAppleForceStubs
- uses: actions/upload-artifact@v4
with:
name: maven-${{ matrix.artifact-name }}
Expand Down Expand Up @@ -340,10 +342,18 @@ jobs:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Install Java 17
submodules: recursive
- name: Install Java 25 (macOS toolchain for SwiftKit)
uses: actions/setup-java@v4
if: runner.os == 'macOS'
with:
java-version: 17
java-version: 25
distribution: temurin
architecture: ${{ matrix.architecture }}
- name: Install Java 24 (for Gradle)
uses: actions/setup-java@v4
with:
java-version: 24
distribution: temurin
architecture: ${{ matrix.architecture }}
- name: Install pnpm
Expand All @@ -356,6 +366,11 @@ jobs:
node-version: 22
cache: pnpm
cache-dependency-path: photon-client/pnpm-lock.yaml
- name: Publish SwiftKit to Maven Local (macOS only)
if: runner.os == 'macOS'
run: |
cd photon-apple/swift-java
./gradlew publishToMavenLocal -x :Samples:build
- name: Install Arm64 Toolchain
run: ./gradlew installArm64Toolchain
if: ${{ (matrix.artifact-name) == 'LinuxArm64' }}
Expand Down Expand Up @@ -396,10 +411,10 @@ jobs:
runs-on: ${{ matrix.os }}

steps:
- name: Install Java 17
- name: Install Java 24
uses: actions/setup-java@v4
with:
java-version: 17
java-version: 24
distribution: temurin
- uses: actions/download-artifact@v4
with:
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -156,3 +156,5 @@ photon-client/playwright-report/
photon-client/blob-report/
photon-client/playwright/.cache/
photon-client/playwright/.auth/

.build/
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "photon-apple/swift-java"]
path = photon-apple/swift-java
url = https://github.com/swiftlang/swift-java.git
3 changes: 3 additions & 0 deletions .wpiformat
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,7 @@ modifiableFileExclude {
photon-lib/py/photonlibpy/generated/
photon-targeting/src/generated/
photon-targeting/src/main/native/cpp/photon/constrained_solvepnp/generate/
.build/
photon-apple/.build/
photon-apple/swift-java/
}
Loading
Loading