Skip to content
Open
Show file tree
Hide file tree
Changes from 44 commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
746338c
Port ChoreoLib 2025.0.3 to SystemCore/WPILib 2027 (#1269)
shueja Jun 26, 2025
3cf259e
[Systemcore-alpha] Add Artifactory username and password as environme…
shueja Jun 27, 2025
dad2b50
[SystemCore-alpha] Install SystemCore toolchain before running Gradle…
calcmogul Jun 27, 2025
f5f57c9
Fix capitalization of draft release renaming (#1272)
shueja Jun 27, 2025
9a901f4
[SystemCore-Alpha] Temporarily remove Pypi publishing (#1273)
shueja Jun 27, 2025
6787cc9
[SystemCore-alpha] Fix setting of ChoreoLib publish version on Window…
shueja Jun 28, 2025
d56b0b4
[SystemCore-alpha] Host vendordep jsons in choreo.autos/lib (#1275)
shueja Jun 28, 2025
19c5540
[SystemCore-alpha] Add linuxsystemcore to binary platform list (#1281)
calcmogul Jul 4, 2025
ffcb378
oh boy, here we go... (pls dont break)
Daniel1464 May 8, 2026
b01a20b
update vendor json, remove state machine to move to separate PR
Daniel1464 May 9, 2026
d852825
first pass at cpp updates (still doesnt compile)
Daniel1464 May 9, 2026
bdaa56c
i think its fixed now? idk
Daniel1464 May 9, 2026
5e4b952
Everything works except for spotless, I think
Daniel1464 May 9, 2026
861eb7a
Apply spotless and fix commands v3 in tests
Daniel1464 May 9, 2026
04f8b28
Fix command test
Daniel1464 May 9, 2026
1fa0160
Changed coordinate system for cpp
Daniel1464 May 9, 2026
20aa7b9
Revert choreolib.yml changes
Daniel1464 May 9, 2026
ee9c470
Remove quotations
Daniel1464 May 9, 2026
9000fb0
Fix java-version
Daniel1464 May 9, 2026
86be329
Apply suggestions from code review
Daniel1464 May 9, 2026
6e03f97
Revert more choreolib.yml changes
Daniel1464 May 9, 2026
0ce0046
Fix systemcore capitalization
Daniel1464 May 9, 2026
0ecf065
Revert Cargo.lock changes
Daniel1464 May 9, 2026
e54d233
Attempted fix for CI
Daniel1464 May 9, 2026
ac8aaa0
CI fixes, pt. 2
Daniel1464 May 9, 2026
bb814bb
format
Daniel1464 May 9, 2026
78ead35
Fix lint and format CI task, potentially
Daniel1464 May 9, 2026
846a4eb
format pt. 2
Daniel1464 May 10, 2026
cd0dbe8
Stage cargo.lock changes
Daniel1464 May 10, 2026
877d71e
Change versioning, add gradle-wrapper.jar
Daniel1464 May 10, 2026
120f007
Update update_field_dimensions.py
Daniel1464 May 10, 2026
4cac45e
Apply suggestions from code review
Daniel1464 May 10, 2026
017a62d
Refactor include directives to use angle brackets for system headers
Daniel1464 May 10, 2026
d56d97d
Format
Daniel1464 May 10, 2026
f2c271e
Revert accidental svg field image changes
Daniel1464 May 10, 2026
9e2f2ca
Apply suggestions from code review
Daniel1464 May 10, 2026
dc62718
More code review suggestions
Daniel1464 May 10, 2026
acaad98
Cleanup dependencies
Daniel1464 May 10, 2026
e672b21
yet another CI fix
Daniel1464 May 11, 2026
40c232f
Switch all unit types to wpi::units::x instead of units::x, revert de…
Daniel1464 May 11, 2026
6c8414f
Apply suggestions from code review
Daniel1464 May 12, 2026
2167d36
Remove architecture from Java setup in workflow
Daniel1464 May 12, 2026
e693401
format attempt
Daniel1464 May 12, 2026
982bcd8
Apply suggestions from code review
Daniel1464 May 13, 2026
e9dbf05
Merge branch 'main' into 2027-update
calcmogul Jul 3, 2026
96b779d
Update Mechanism usage
calcmogul Jul 3, 2026
6f1950e
Fix vendordep
calcmogul Jul 3, 2026
534b2e3
Rename frcYear to wpilibYear
calcmogul Jul 3, 2026
68f4b84
Upgrade CI image
calcmogul Jul 3, 2026
3b4df4a
Use Debian containers for ChoreoLib build
calcmogul Jul 3, 2026
40b826e
Fix versions in Cargo.lock
calcmogul Jul 3, 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
35 changes: 11 additions & 24 deletions .github/workflows/choreolib.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,11 @@ jobs:
fail-fast: false
matrix:
include:
- container: wpilib/roborio-cross-ubuntu:2025-24.04
artifact-name: Athena
build-options: -Ponlylinuxathena
- container: wpilib/systemcore-cross-ubuntu:2027-24.04
artifact-name: Systemcore
build-options: -Ponlylinuxsystemcore

- container: wpilib/raspbian-cross-ubuntu:bookworm-24.04
artifact-name: Linux-arm32
build-options: -Ponlylinuxarm32

- container: wpilib/aarch64-cross-ubuntu:bookworm-24.04
- container: wpilib/aarch64-cross-ubuntu:2027-bookworm-24.04
artifact-name: Linux-arm64
build-options: -Ponlylinuxarm64

Expand All @@ -39,6 +35,11 @@ jobs:
run: |
git config --global --add safe.directory /__w/${{ github.event.repository.name }}/${{ github.event.repository.name }}

- uses: actions/setup-java@v5
with:
distribution: "temurin"
java-version: 25

- name: Set version (release)
if: github.repository_owner == 'SleipnirGroup' && startsWith(github.ref, 'refs/tags/v')
working-directory: choreolib
Expand Down Expand Up @@ -96,7 +97,7 @@ jobs:
- uses: actions/setup-java@v5
with:
distribution: "temurin"
java-version: 17
java-version: 25

# 6/27/25: an Actions issue makes GITHUB_REF unset on Windows
- name: Set version (Windows release)
Expand All @@ -115,7 +116,7 @@ jobs:

- name: Build with Gradle
working-directory: choreolib
run: ./gradlew build ${{ matrix.build-options }}
run: ./gradlew build -Pbuildalldesktop ${{ matrix.build-options }}

- name: Build with Gradle (release)
if: github.repository_owner == 'SleipnirGroup' && startsWith(github.ref, 'refs/tags/v')
Expand All @@ -130,20 +131,6 @@ jobs:
name: ${{ matrix.artifact-name }}
path: choreolib/build/allOutputs

vendordep:
Comment thread
calcmogul marked this conversation as resolved.
name: Upload vendordep JSON
runs-on: ubuntu-slim
steps:
- uses: actions/checkout@v6
with:
persist-credentials: false
token: ${{secrets.GITHUB_TOKEN}}

- uses: actions/upload-artifact@v7
with:
name: ChoreoLib-json
path: choreolib/ChoreoLib2026Beta.json
Comment thread
calcmogul marked this conversation as resolved.

build-python:
name: Python
runs-on: ubuntu-slim
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ jobs:
- uses: actions/setup-java@v5
with:
distribution: "temurin"
java-version: 17
java-version: 25

- name: Copy API docs
run: ./make-docs.sh
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint-format.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
- uses: actions/setup-java@v5
with:
distribution: "temurin"
java-version: 21
java-version: 25

- name: Make GCC 14 the default toolchain (Linux)
run: |
Expand Down
6 changes: 3 additions & 3 deletions Cargo.lock
Comment thread
Daniel1464 marked this conversation as resolved.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

60 changes: 36 additions & 24 deletions choreolib/build.gradle
Original file line number Diff line number Diff line change
@@ -1,28 +1,30 @@
import edu.wpi.first.toolchain.*
import org.wpilib.toolchain.*

plugins {
id 'cpp'
id 'java'
id 'java-library'
id 'google-test'
id 'edu.wpi.first.wpilib.repositories.WPILibRepositoriesPlugin' version '2025.0'
id 'edu.wpi.first.NativeUtils' version '2026.0.1'
id 'edu.wpi.first.GradleJni' version '1.1.0'
id 'edu.wpi.first.GradleVsCode' version '2.1.0'
id 'com.diffplug.spotless' version '8.0.0'
id 'org.wpilib.WPILibRepositoriesPlugin' version '2027.0.0'
id 'org.wpilib.NativeUtils' version '2027.7.1'
id 'org.wpilib.GradleJni' version '2027.0.0'
id 'org.wpilib.GradleVsCode' version '2027.0.0'
id 'com.diffplug.spotless' version '8.4.0'
id 'jacoco'
}

ext.wpilibVersion = "2027.+"
ext.getCurrentArch = {
return NativePlatforms.desktop
}

def systemArch = getCurrentArch()

java {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
sourceCompatibility = JavaVersion.VERSION_25
targetCompatibility = JavaVersion.VERSION_25
}
var javaVersion = "25"

repositories {
mavenCentral()
Expand All @@ -32,20 +34,22 @@ if (project.hasProperty('releaseMode')) {
} else {
wpilibRepositories.addAllDevelopmentRepositories(project)
}
wpilibRepositories.use2027Repos()

// Apply C++ configuration
apply from: 'config.gradle'

// Apply Java configuration
dependencies {
implementation 'edu.wpi.first.wpilibj:wpilibj-java:2026.1.1'
implementation 'edu.wpi.first.wpiutil:wpiutil-java:2026.1.1'
implementation 'edu.wpi.first.wpimath:wpimath-java:2026.1.1'
implementation 'edu.wpi.first.wpilibNewCommands:wpilibNewCommands-java:2026.1.1'
implementation 'edu.wpi.first.wpiunits:wpiunits-java:2026.1.1'
implementation 'edu.wpi.first.ntcore:ntcore-java:2026.1.1'
implementation 'edu.wpi.first.ntcore:ntcore-cpp:2026.1.1'
implementation 'edu.wpi.first.hal:hal-java:2026.1.1'
implementation 'org.wpilib.wpilibj:wpilibj-java:2027.+'
implementation 'org.wpilib.wpiutil:wpiutil-java:2027.+'
implementation 'org.wpilib.wpimath:wpimath-java:2027.+'
implementation 'org.wpilib:commands3-java:2027.+'
implementation 'org.wpilib:annotations-java:2027.+'
implementation 'org.wpilib.wpiunits:wpiunits-java:2027.+'
implementation 'org.wpilib.ntcore:ntcore-java:2027.+'
implementation 'org.wpilib.ntcore:ntcore-cpp:2027.+'
implementation 'org.wpilib.hal:hal-java:2027.+'

api "com.fasterxml.jackson.core:jackson-annotations:2.19.2"
api "com.fasterxml.jackson.core:jackson-core:2.19.2"
Expand All @@ -54,9 +58,9 @@ dependencies {
implementation 'com.google.code.gson:gson:2.13.1'

// This is needed to use wpilibj Filesystem class
testImplementation 'edu.wpi.first.cscore:cscore-java:2026.1.1'
testImplementation 'edu.wpi.first.cameraserver:cameraserver-java:2026.1.1'
testImplementation 'edu.wpi.first.hal:hal-java:2026.1.1'
testImplementation 'org.wpilib.cscore:cscore-java:2027.+'
testImplementation 'org.wpilib.cameraserver:cameraserver-java:2027.+'
testImplementation 'org.wpilib.hal:hal-java:2027.+'

testImplementation 'us.hebi.quickbuf:quickbuf-runtime:1.4'

Expand All @@ -73,11 +77,11 @@ test {
systemProperty 'junit.jupiter.extensions.autodetection.enabled', 'true'
testLogging {
events "failed"
exceptionFormat = "full"
exceptionFormat "full"
}
}

if (project.hasProperty('onlylinuxathena') || project.hasProperty('onlylinuxarm32') || project.hasProperty('onlylinuxarm64') || project.hasProperty('onlywindowsarm64')) {
if (project.hasProperty('onlylinuxarm64') || project.hasProperty('onlywindowsarm64') || project.hasProperty('onlylinuxsystemcore')) {
test.enabled = false
}

Expand Down Expand Up @@ -141,7 +145,7 @@ model {
}
}

nativeUtils.useRequiredLibrary(it, "wpilib_executable_shared", "googletest_static")
nativeUtils.useRequiredLibrary(it, "wpilib_shared", "googletest_static")

binaries.all {
def arch = it.targetPlatform.name
Expand Down Expand Up @@ -195,7 +199,7 @@ spotless {
}

javadoc {
options.links("https://docs.oracle.com/en/java/javase/17/docs/api/")
options.links("https://docs.oracle.com/en/java/javase/${javaVersion}/docs/api/")
options.links("https://github.wpilib.org/allwpilib/docs/release/java/")
options.addBooleanOption("Xdoclint:html,missing,reference,syntax", true)
options.addBooleanOption('html5', true)
Expand Down Expand Up @@ -228,10 +232,18 @@ test {
testLogging.showStandardStreams = true

finalizedBy jacocoTestReport

// For reflective access to continuation classes in unit tests
jvmArgs += [
"--add-opens",
"java.base/jdk.internal.vm=ALL-UNNAMED",
"--add-opens",
"java.base/java.lang=ALL-UNNAMED",
]
}

apply from: 'publish.gradle'

wrapper {
gradleVersion = '8.14.3'
gradleVersion '9.4.1'
}
13 changes: 3 additions & 10 deletions choreolib/config.gradle
Original file line number Diff line number Diff line change
@@ -1,15 +1,14 @@
import org.gradle.internal.os.OperatingSystem

nativeUtils.addWpiNativeUtils()
nativeUtils.withCrossRoboRIO()
nativeUtils.withCrossLinuxArm32()
nativeUtils.withCrossSystemCore()
nativeUtils.withCrossLinuxArm64()

nativeUtils {
wpi {
configureDependencies {
wpiVersion = "2026.1.1"
niLibVersion = "2026.1.0"
wpiVersion = wpilibVersion
opencvVersion = "4.13.0-3"
}
}
}
Expand All @@ -19,11 +18,6 @@ nativeUtils.wpi.addWarningsAsErrors()

nativeUtils.setSinglePrintPerPlatform()

nativeUtils.wpi.addVendorDeps()
nativeUtils.wpi.getVendorDeps().loadAll()
nativeUtils.wpi.getVendorDeps().getNativeVendor().initializeNativeDependencies()
nativeUtils.wpi.getVendorDeps().addVendorReposToMaven(false)

model {
components {
all {
Expand All @@ -33,7 +27,6 @@ model {
binaries {
withType(NativeBinarySpec).all {
nativeUtils.usePlatformArguments(it)
nativeUtils.wpi.getVendorDeps().getNativeVendor().cpp(it)
}
}
}
Expand Down
Binary file modified choreolib/gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion choreolib/gradle/wrapper/gradle-wrapper.properties
Comment thread
Daniel1464 marked this conversation as resolved.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
7 changes: 2 additions & 5 deletions choreolib/gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 10 additions & 22 deletions choreolib/gradlew.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading