mirror of
https://github.com/PhotonVision/photonvision
synced 2026-06-19 00:41:41 +00:00
## Description When we tagged `v2026.0.0-alpha-1`, we broke the versioning-helper logic. It doesn't expect `alpha` in the version string. This PR adds matching for lowercase alphanumeric to the versioning helper, which resolves that issue. Also turns out `getProviders()` is now broken as a gradle method. Sad. ## Meta Merge checklist: - [x] Pull Request title is [short, imperative summary](https://cbea.ms/git-commit/) of proposed changes - [x] The description documents the _what_ and _why_ - [ ] If this PR changes behavior or adds a feature, user documentation is updated - [ ] If this PR touches photon-serde, all messages have been regenerated and hashes have not changed unexpectedly - [ ] If this PR touches configuration, this is backwards compatible with settings back to v2025.3.2 - [ ] If this PR touches pipeline settings or anything related to data exchange, the frontend typing is updated - [ ] If this PR addresses a bug, a regression test for it is added
47 lines
1.8 KiB
Groovy
47 lines
1.8 KiB
Groovy
import java.nio.file.Path
|
|
import java.time.LocalDateTime
|
|
import java.time.format.DateTimeFormatter
|
|
|
|
gradle.allprojects {
|
|
ext.getCurrentVersion = {
|
|
->
|
|
def stdout = new ByteArrayOutputStream()
|
|
String tagIsh
|
|
try {
|
|
project.exec {
|
|
commandLine 'git', 'describe', '--tags', "--match=v*"
|
|
standardOutput = stdout
|
|
}
|
|
tagIsh = stdout.toString().trim().toLowerCase()
|
|
} catch (Exception e) {
|
|
tagIsh = "dev-Unknown"
|
|
}
|
|
|
|
// Dev tags: v2021.1.6-3-gf922466d
|
|
// We're specifically looking to capture the middle -3-
|
|
boolean isDev = tagIsh.matches(".*-[0-9a-z]*-g[0-9a-f]*")
|
|
if (isDev && !tagIsh.startsWith("dev-")) tagIsh = "dev-" + tagIsh
|
|
println("Picked up version: " + tagIsh)
|
|
return tagIsh
|
|
}
|
|
|
|
if (!ext.has("versionString")) {
|
|
ext.versionString = getCurrentVersion()
|
|
}
|
|
|
|
ext.writePhotonVersionFile = {File versionFileIn, Path path, String version ->
|
|
println("Writing " + version + " to " + path.toAbsolutePath().toString())
|
|
String date = DateTimeFormatter.ofPattern("yyyy-M-d hh:mm:ss").format(LocalDateTime.now())
|
|
File versionFileOut = new File(path.toAbsolutePath().toString())
|
|
versionFileOut.delete()
|
|
def read = versionFileIn.text.replace('${version}', version)
|
|
.replace('${date}', date)
|
|
.replace('${wpilibVersion}', wpilibVersion)
|
|
// Note that OpenCV is usually {VERSION}-{some suffix}, we just want the first bit
|
|
.replace('${opencvVersion}', openCVversion.split("-").first())
|
|
if (!versionFileOut.parentFile.exists()) versionFileOut.parentFile.mkdirs()
|
|
if (!versionFileOut.exists()) versionFileOut.createNewFile()
|
|
versionFileOut.write(read)
|
|
}
|
|
}
|