diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..aa208d4 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,4 @@ +wpiVersion = 2024.+ +ctreVersion = 5.+ +photonVisionVersion = v2024.+ +advantageKitVersion = 2.2.1 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index aa991fc..a595206 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/lib/build.gradle b/lib/build.gradle index 5b2288f..373f8be 100644 --- a/lib/build.gradle +++ b/lib/build.gradle @@ -1,6 +1,6 @@ /* * This file was generated by the Gradle 'init' task. - * +* * This generated file contains a sample Java library project to get you started. * For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle * User Manual available at https://docs.gradle.org/7.4.2/userguide/building_java_projects.html @@ -9,7 +9,7 @@ plugins { // Apply the java-library plugin for API and implementation separation. id 'java' - id 'edu.wpi.first.GradleRIO' version '2023.+' + id 'edu.wpi.first.GradleRIO' version "${wpiVersion}" } repositories { @@ -37,15 +37,15 @@ dependencies { // This dependency is used internally, and not exposed to consumers on their own compile classpath. implementation 'com.google.guava:guava:30.1.1-jre' - implementation 'edu.wpi.first.cscore:cscore-java:2023.+' - implementation 'edu.wpi.first.cameraserver:cameraserver-java:2023.+' - implementation 'edu.wpi.first.ntcore:ntcore-java:2023.+' - implementation 'edu.wpi.first.wpilibj:wpilibj-java:2023.+' - implementation 'edu.wpi.first.wpiutil:wpiutil-java:2023.+' - implementation 'edu.wpi.first.wpimath:wpimath-java:2023.+' - implementation 'edu.wpi.first.wpilibNewCommands:wpilibNewCommands-java:2023.+' - implementation 'edu.wpi.first.hal:hal-java:2023.+' - implementation "edu.wpi.first.apriltag:apriltag-java:2023.+" + implementation "edu.wpi.first.cscore:cscore-java:${wpiVersion}" + implementation "edu.wpi.first.cameraserver:cameraserver-java:${wpiVersion}" + implementation "edu.wpi.first.ntcore:ntcore-java:${wpiVersion}" + implementation "edu.wpi.first.wpilibj:wpilibj-java:${wpiVersion}" + implementation "edu.wpi.first.wpiutil:wpiutil-java:${wpiVersion}" + implementation "edu.wpi.first.wpimath:wpimath-java:${wpiVersion}" + implementation "edu.wpi.first.wpilibNewCommands:wpilibNewCommands-java:${wpiVersion}" + implementation "edu.wpi.first.hal:hal-java:${wpiVersion}" + implementation "edu.wpi.first.apriltag:apriltag-java:${wpiVersion}" implementation "org.ejml:ejml-simple:0.38" implementation "com.fasterxml.jackson.core:jackson-annotations:2.10.0" implementation "com.fasterxml.jackson.core:jackson-core:2.10.0" @@ -53,17 +53,17 @@ dependencies { implementation 'edu.wpi.first.thirdparty.frc2022.opencv:opencv-java:4.5.2-1' // CTRE Phoenix - implementation 'com.ctre.phoenix:api-java:5.30.3' - implementation 'com.ctre.phoenix:wpiapi-java:5.30.3' + implementation "com.ctre.phoenix:api-java:${ctreVersion}" + implementation "com.ctre.phoenix:wpiapi-java:${ctreVersion}" // PhotonVision - implementation "org.photonvision:PhotonLib-java:v2023.+" - implementation "org.photonvision:PhotonTargeting-java:v2023.+" + implementation "org.photonvision:PhotonLib-java:${photonVisionVersion}" + implementation "org.photonvision:PhotonTargeting-java:${photonVisionVersion}" // AdvantageKit - implementation "org.littletonrobotics.akit.junction:wpilib-shim:2.2.1" - implementation "org.littletonrobotics.akit.junction:junction-core:2.2.1" - implementation "org.littletonrobotics.akit.conduit:conduit-api:2.2.1" + implementation "org.littletonrobotics.akit.junction:wpilib-shim:${advantageKitVersion}" + implementation "org.littletonrobotics.akit.junction:junction-core:${advantageKitVersion}" + implementation "org.littletonrobotics.akit.conduit:conduit-api:${advantageKitVersion}" } tasks.named('test') { diff --git a/lib/publish.gradle b/lib/publish.gradle index 9722519..83f15bd 100644 --- a/lib/publish.gradle +++ b/lib/publish.gradle @@ -4,99 +4,17 @@ apply plugin: 'maven-publish' ext.licenseFile = files("$rootDir/LICENSE.txt") -def pubVersion = '2023.3.3' +def pubVersion = '2024.0.1' def outputsFolder = file("$buildDir/allOutputs") def versionFile = file("$outputsFolder/version.txt") -task outputVersions() { - description = 'Prints the versions of wpilib to a file for use by the downstream packaging project' - group = 'Build' - outputs.files(versionFile) - - doFirst { - buildDir.mkdir() - outputsFolder.mkdir() - } - - doLast { - versionFile.write pubVersion - } -} - -task libraryBuild() {} - -task pubLocal(dependsOn: 'publishAllPublicationsToFrcHomeRepository') {} - -build.dependsOn outputVersions - -task copyAllOutputs(type: Copy) { - destinationDir outputsFolder -} - -build.dependsOn copyAllOutputs -copyAllOutputs.dependsOn outputVersions - -ext.addTaskToCopyAllOutputs = { task -> - copyAllOutputs.dependsOn task - copyAllOutputs.inputs.file task.archivePath - copyAllOutputs.from task.archivePath -} - def artifactGroupId = 'org.fairportrobotics.poe' def baseArtifactId = 'potential-octo-eureka-library' def zipBaseName = "_GROUP_org_fairportrobotics_poe_ID_${baseArtifactId}-java_CLS" def javaBaseName = "_GROUP_org_fairportrobotics_poe_ID_${baseArtifactId}-java_CLS" -task sourcesJar(type: Jar, dependsOn: classes) { - classifier = 'sources' - from sourceSets.main.allSource -} - -task javadocJar(type: Jar, dependsOn: javadoc) { - classifier = 'javadoc' - from javadoc.destinationDir -} - -task outputJar(type: Jar, dependsOn: classes) { - archiveBaseName = javaBaseName - destinationDirectory = outputsFolder - from sourceSets.main.output -} - -task outputSourcesJar(type: Jar, dependsOn: classes) { - archiveBaseName = javaBaseName - destinationDirectory = outputsFolder - classifier = 'sources' - from sourceSets.main.allSource -} - -task outputJavadocJar(type: Jar, dependsOn: javadoc) { - archiveBaseName = javaBaseName - destinationDirectory = outputsFolder - classifier = 'javadoc' - from javadoc.destinationDir -} - -artifacts { - archives sourcesJar - archives javadocJar - archives outputJar - archives outputSourcesJar - archives outputJavadocJar -} - -addTaskToCopyAllOutputs(outputSourcesJar) -addTaskToCopyAllOutputs(outputJavadocJar) -addTaskToCopyAllOutputs(outputJar) - -build.dependsOn outputSourcesJar -build.dependsOn outputJavadocJar -build.dependsOn outputJar - -libraryBuild.dependsOn build - def releasesRepoUrl = "$buildDir/repos/releases" String frcYear = '2023' @@ -143,13 +61,11 @@ model { publishing { publications { java(MavenPublication) { - artifact jar - artifact sourcesJar - artifact javadocJar - artifactId = "${baseArtifactId}-java" groupId artifactGroupId version pubVersion + + from components.java } } }