-
Notifications
You must be signed in to change notification settings - Fork 360
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Version bumps BT-332 #6456
Version bumps BT-332 #6456
Conversation
- Wait longer for containers to download and startup - Use the latest PostgreSQL jdbc driver - Updated liquibase and schema comparison tests - Empty LOBs are always stored as null - Fixed test description for empty lobs - Test the various databases with centaur local - Don't start a db when CI checking publishing - Help liquibase by using valid location of S3FSP - Longer leeway for logging events for longer liquibase
- sbt 1.5.3 - sbt-assembly 1.0.0 - more assembly merging workarounds - disabled test log buffering - removed some intellij warnings and false-errors - only set dockerCustomSettings when required
ecdccd7
to
2856d87
Compare
Just OOO, is this mostly complementary, orthogonal, or replacing-of, the scala steward update PRs? |
I haven't gone through the various other PRs yet to see what they're fixing or not. Over weekends I've been experimenting with updating various subsystems I'm already familiar with and seeing if Travis likes the changes. If I had to guess, there's probably a bit of overlap with the version bumps here and the scala steward PRs. Things done here, and may or may not have been addressed in the stewarded PRs:
Btw, as it's not a blocker (yet) some weekend I or someone else will have to dive into statsd and deal with those libs plus whatever our bespoke statsd-proxy is doing... 🤔 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 assuming Jenkins is okay with the AWS changes
- >- | ||
BUILD_TYPE=centaurPapiUpgradePapiV2alpha1 | ||
BUILD_MYSQL=5.7 | ||
- >- | ||
BUILD_TYPE=centaurPapiUpgradeNewWorkflowsPapiV2alpha1 | ||
BUILD_MYSQL=5.7 | ||
- >- | ||
BUILD_TYPE=centaurLocal | ||
BUILD_MARIADB=10.3 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
2 horicromtal papis for a local seems like a deal
@@ -0,0 +1,2 @@ | |||
# Quiet warnings about missing sentry DSNs by providing an empty string | |||
dsn= |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🏆
// It's possible that after updating all other dependencies in Cromwell we might purge the transitive dependencies on | ||
// javax.activation and then be able to upgrade to jaxb-impl 2.3.3 or beyond, but some of those other dependencies | ||
// such as googleCloudNioV have already been pinned for Scala Steward so this might not be a trivial undertaking. | ||
private val jaxbV = "2.3.2" // scala-steward:off |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🥳
private val MariadbColumnMapping = | ||
ColumnMapping( | ||
typeMapping = Map( | ||
HsqldbTypeBigInt -> ColumnType("BIGINT"), |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
these key names look kind of surprising given this is a Mariadb map...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The keys in the map are what HSQLDB calls the column. The values are what the other RDBMS calls the column. In this case MariaDB.
The way the matching works, at the start of the test an HSQLDB schema is created with Slick instead of Liquibase. Then one by one each RDBMS type is initialized, liquibased, and then the resulting schema is compared to the HSQLDB-Slick schema. Any mismatches in column type are an error. Except sometimes there are minor differences.
In this line HSQLDB has columns that are ColumnType("BIGINT", Option(64))
while MariaDB doesn't return sizes for "BIGINT" so its equivalent column type is a CoulmnType("BIGINT", None)
.
private val apacheHttpClientV = "4.5.13" | ||
private val awsSdkV = "2.15.41" // scala-steward:off (CROM-6776) | ||
private val awsSdkV = "2.17.29" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
kicked off AWS build 104 to get Jenkins' opinion before merge
// latest date via: https://mvnrepository.com/artifact/com.google.apis/google-api-services-cloudkms | ||
private val googleCloudKmsV = "v1-rev20210812-1.32.1" | ||
private val googleCloudMonitoringV = "3.0.2" | ||
private val googleCloudNioV = "0.123.8" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oof. This goes back to last August: https://github.com/broadinstitute/cromwell/pull/5708/files#diff-ad2642dc77b3679e4ad2c7d3b2f59a2dcf48c1bf5b93a558a4fa44828315a34cR35. Maybe this one required code changes?
// latest date via: https://mvnrepository.com/artifact/com.google.apis/google-api-services-lifesciences | ||
private val googleLifeSciencesServicesV2BetaApiV = "v2beta-rev20210813-1.32.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🤷
// It's possible that after updating all other dependencies in Cromwell we might purge the transitive dependencies on | ||
// javax.activation and then be able to upgrade to jaxb-impl 2.3.3 or beyond, but some of those other dependencies | ||
// such as googleCloudNioV have already been pinned for Scala Steward so this might not be a trivial undertaking. | ||
private val jaxbV = "2.3.2" // scala-steward:off |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If this all works, I love getting rid of pinned versions like this.
private val owlApiV = "5.1.16" // scala-steward:off (CROM-6677) | ||
private val mockserverNettyV = "5.11.2" | ||
private val mouseV = "1.0.4" | ||
private val mysqlV = "8.0.26" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some stuff about character sets: https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/news-8-0-26.html#connector-j-8-0-26-feature. Anything to note here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Character encodings, like date-times, are definitely something to keep an eye out for.
In general anyone not using UTC time and 7-bit ASCII may run into issues 😦
That said, we generally hope that any egregious encoding bugs are caught in centaur. For the curious, bugs in the past have popped up when validating and storing values of length "255" in our liquibased tables. What unit is that: bytes, characters, encoded characters in bytes?? If my memory is correct, the issues manifested as strings suddenly being too long to store in some of the tables.
private val refinedV = "0.9.22" | ||
private val postgresV = "42.2.23" | ||
private val pprintV = "0.6.6" | ||
private val rdf4jV = "3.7.1" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ugh. Their link to the "release and upgrade notes" (https://rdf4j.org/release-notes#3-0-0) for 3.0.0 doesn't go to a useful place anymore so I don't know what to look for. I also don't know what RDF is or how we might use it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- RDF: https://en.wikipedia.org/wiki/Resource_Description_Framework
- It's one of the specs used by the CWL spec (example)
- This repo only uses rdf4j transitively. However, there was a vulnerability detected in an earlier version, and the OWL API dependency (yet another W3C spec) we use was slow to update their dependencies.
- For the curious about these libs in general there are more external links regarding dependencies here
private val scoptV = "4.0.1" | ||
private val sentryLogbackV = "1.7.30" // scala-steward:off (CROM-6640) | ||
private val shapelessV = "2.3.3" | ||
private val sentryLogbackV = "5.1.2" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This feels like a huge jump and I wouldn't even know where to start, so... just saying that I'm leaving this one alone and assuming that any problems would be caught by compilation, tests, or general operations.
private val snakeyamlV = "1.28" | ||
private val specs2MockV = "4.10.6" | ||
private val snakeyamlV = "1.29" | ||
private val specs2MockV = "4.12.3" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I care about this, but I cannot find any reliable documentation links about specs2-mock or any version history. I hope they didn't change anything that will cause any of our tests to pass when they should fail.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I care too. The reason it's hard to find docs on specs2-mock
is that it seems to be End Of Life. See the cromwell sibling PR that kills this dependency off 😉🔪💀
As for some sort of docs:
- 4.12.0 mentions specs2's
specs2-mock
extension: https://etorreborre.github.io/specs2/guide/SPECS2-4.12.0/org.specs2.guide.Installation.html#other-dependencies - 5.0 (in RC) no longer mentions the extensions and instead refers to
scalamock
: https://etorreborre.github.io/specs2/guide/5.0.0-RC-01/org.specs2.guide.Installation.html#other-dependencies
private val workbenchModelV = "0.14-27810079-SNAP" | ||
private val workbenchUtilV = "0.6-27810079-SNAP" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-SNAP
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Desperate times... (and not waiting for releases) 🤷
@@ -57,7 +57,10 @@ case class OssBatchDeleteCommand( | |||
override val file: OssPath, | |||
override val swallowIOExceptions: Boolean | |||
) extends IoDeleteCommand(file, swallowIOExceptions) with OssBatchIoCommand[Unit, Void] { | |||
def operation: Unit = file.ossClient.deleteObject(file.bucket, file.key) | |||
def operation: Unit = { | |||
file.ossClient.deleteObject(file.bucket, file.key) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this not return void
anymore? Should we be paying attention to what it does return?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we be paying attention to what it does return?
No. It returns a VoidResult
: https://github.com/aliyun/aliyun-oss-java-sdk/blob/3.13.1/src/main/java/com/aliyun/oss/OSSClient.java#L665
@@ -98,6 +98,7 @@ trait OssNioUtilSpec extends AnyFlatSpecLike with CromwellTimeoutSpec with Mocki | |||
OssStorageRetry.from( | |||
() => ossClient.deleteObject(path.bucket, path.key) | |||
) | |||
() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same question as in OssBatchIoCommand.scala
above.
@@ -27,7 +27,7 @@ import scala.concurrent.{Await, Promise} | |||
class WorkflowExecutionActorSpec extends CromwellTestKitSpec with AnyFlatSpecLike with Matchers with BeforeAndAfter with WorkflowDescriptorBuilderForSpecs { | |||
|
|||
override implicit val actorSystem = system | |||
implicit val DefaultDuration = 20.seconds.dilated | |||
implicit val DefaultDuration = 60.seconds.dilated |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why this change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This spec, like others, effectively runs its own entire Cromwell instance. When run on Travis it sometimes takes longer than 20 seconds for the lazy-loaded in-memory DB to start up, especially when other tests don't clean 100% clean up leading to GC pauses etc.
See the comment "Yes, this might be slow..." further down below in this file for more slightly more context.
@@ -35,7 +35,7 @@ class LobSpec extends AnyFlatSpec with CromwellTimeoutSpec with Matchers with Sc | |||
containerOpt.foreach { _.start } | |||
} | |||
|
|||
it should "fail to store and retrieve empty blobs" taggedAs DbmsTest in { | |||
it should "store empty blobs" taggedAs DbmsTest in { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Was this just always incorrectly named?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not "always". At some point the body of the test was updated and the name of the test wasn't.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, as far as I can tell. I've done what I can to validate version bumps, and I'm trusting that the code changes are largely fallout from that. I also don't know the newer sbt stuff, so I'm trusting that that's all correct. Definitely glad there are other eyes on reviewing this.
No description provided.