Permalink
Browse files

Merge branch 'develop'

  • Loading branch information...
2 parents 4480026 + f63a9e6 commit 48411bf7129a8376b724cd3b3f4c496691cf748a @Horneth Horneth committed Jun 30, 2017
Showing with 4,388 additions and 1,448 deletions.
  1. +12 −0 .travis.yml
  2. +108 −0 CHANGELOG.md
  3. +382 −45 README.md
  4. +3 −1 backend/src/main/scala/cromwell/backend/standard/StandardAsyncExecutionActor.scala
  5. +6 −6 backend/src/main/scala/cromwell/backend/standard/StandardInitializationActor.scala
  6. +151 −47 backend/src/main/scala/cromwell/backend/standard/callcaching/StandardCacheHitCopyingActor.scala
  7. +1 −0 backend/src/main/scala/cromwell/backend/validation/CpuValidation.scala
  8. +15 −15 backend/src/main/scala/cromwell/backend/validation/MemoryValidation.scala
  9. +4 −4 backend/src/main/scala/cromwell/backend/validation/RuntimeAttributesValidation.scala
  10. +2 −2 backend/src/test/scala/cromwell/backend/BackendSpec.scala
  11. +14 −4 core/src/main/resources/reference.conf
  12. +4 −0 core/src/main/scala/cromwell/core/WorkflowMetadataKeys.scala
  13. +20 −21 core/src/main/scala/cromwell/core/WorkflowSourceFilesCollection.scala
  14. +9 −1 core/src/main/scala/cromwell/core/callcaching/HashResultMessage.scala
  15. +25 −0 core/src/main/scala/cromwell/core/io/DefaultIoCommand.scala
  16. +5 −1 core/src/main/scala/cromwell/core/io/IoClientHelper.scala
  17. +13 −6 core/src/main/scala/cromwell/core/io/IoCommand.scala
  18. +9 −6 core/src/main/scala/cromwell/core/io/IoCommandBuilder.scala
  19. +22 −51 core/src/main/scala/cromwell/core/labels/Label.scala
  20. +16 −3 core/src/main/scala/cromwell/core/labels/Labels.scala
  21. +21 −0 core/src/main/scala/cromwell/core/package.scala
  22. +3 −1 core/src/main/scala/cromwell/core/path/DefaultPathBuilderFactory.scala
  23. +3 −1 core/src/main/scala/cromwell/core/path/PathBuilderFactory.scala
  24. +35 −0 core/src/test/scala/cromwell/core/callcaching/HashKeySpec.scala
  25. +4 −3 core/src/test/scala/cromwell/core/io/IoClientHelperSpec.scala
  26. +26 −22 core/src/test/scala/cromwell/core/labels/LabelSpec.scala
  27. +46 −34 core/src/test/scala/cromwell/util/SampleWdl.scala
  28. +17 −3 cromwellApiClient/src/main/scala/cromwell/api/CromwellClient.scala
  29. +9 −0 cromwellApiClient/src/main/scala/cromwell/api/model/CromwellVersion.scala
  30. +4 −3 cromwellApiClient/src/main/scala/cromwell/api/model/Label.scala
  31. +12 −6 cromwellApiClient/src/main/scala/cromwell/api/model/WorkflowSubmission.scala
  32. +1 −0 database/migration/src/main/resources/changelog.xml
  33. +17 −0 database/migration/src/main/resources/changesets/workflow_store_type_and_version.xml
  34. +18 −8 database/sql/src/main/scala/cromwell/database/slick/CallCachingSlickDatabase.scala
  35. +18 −8 database/sql/src/main/scala/cromwell/database/slick/MetadataSlickDatabase.scala
  36. +11 −6 ...base/sql/src/main/scala/cromwell/database/slick/tables/CallCachingAggregationEntryComponent.scala
  37. +9 −0 database/sql/src/main/scala/cromwell/database/slick/tables/CallCachingEntryComponent.scala
  38. +63 −8 database/sql/src/main/scala/cromwell/database/slick/tables/MetadataEntryComponent.scala
  39. +5 −1 database/sql/src/main/scala/cromwell/database/slick/tables/WorkflowStoreEntryComponent.scala
  40. +5 −2 database/sql/src/main/scala/cromwell/database/sql/CallCachingSqlDatabase.scala
  41. +5 −4 database/sql/src/main/scala/cromwell/database/sql/MetadataSqlDatabase.scala
  42. +5 −0 database/sql/src/main/scala/cromwell/database/sql/joins/CallCachingDiffJoin.scala
  43. +18 −0 database/sql/src/main/scala/cromwell/database/sql/joins/MetadataJobQueryValue.scala
  44. +2 −0 database/sql/src/main/scala/cromwell/database/sql/tables/WorkflowStoreEntry.scala
  45. +23 −16 dockerHashing/src/main/scala/cromwell/docker/DockerImageIdentifier.scala
  46. +2 −2 dockerHashing/src/main/scala/cromwell/docker/local/DockerCliFlow.scala
  47. +2 −2 dockerHashing/src/main/scala/cromwell/docker/registryv2/DockerRegistryV2AbstractFlow.scala
  48. +11 −13 dockerHashing/src/test/scala/cromwell/docker/DockerImageIdentifierSpec.scala
  49. +138 −14 engine/src/main/resources/swagger/cromwell.yaml
  50. +30 −17 engine/src/main/scala/cromwell/engine/EngineFilesystems.scala
  51. +5 −0 engine/src/main/scala/cromwell/engine/io/nio/NioFlow.scala
  52. +28 −16 engine/src/main/scala/cromwell/engine/workflow/WorkflowActor.scala
  53. +0 −2 engine/src/main/scala/cromwell/engine/workflow/WorkflowManagerActor.scala
  54. +70 −43 engine/src/main/scala/cromwell/engine/workflow/lifecycle/MaterializeWorkflowDescriptorActor.scala
  55. +1 −1 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/CallMetadataHelper.scala
  56. +117 −23 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/EngineJobExecutionActor.scala
  57. +15 −7 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/ExecutionStore.scala
  58. +1 −1 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/WorkflowExecutionActor.scala
  59. +56 −14 engine/src/main/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/CallCache.scala
  60. +266 −0 .../src/main/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/CallCacheDiffActor.scala
  61. +52 −0 .../scala/cromwell/engine/workflow/lifecycle/execution/callcaching/CallCacheDiffQueryParameter.scala
  62. +7 −7 ...ain/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/CallCacheHashingJobActor.scala
  63. +23 −8 .../src/main/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/CallCacheReadActor.scala
  64. +1 −6 ...src/main/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/CallCacheWriteActor.scala
  65. +24 −10 ...c/main/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/EngineJobHashingActor.scala
  66. +10 −6 engine/src/main/scala/cromwell/engine/workflow/workflowstore/SqlWorkflowStore.scala
  67. +0 −1 engine/src/main/scala/cromwell/engine/workflow/workflowstore/WorkflowStoreActor.scala
  68. +0 −10 engine/src/main/scala/cromwell/engine/workflow/workflowstore/WorkflowStoreEngineActor.scala
  69. +11 −4 engine/src/main/scala/cromwell/engine/workflow/workflowstore/WorkflowStoreSubmitActor.scala
  70. +3 −3 engine/src/main/scala/cromwell/jobstore/JobStoreActor.scala
  71. +13 −3 engine/src/main/scala/cromwell/jobstore/SqlJobStore.scala
  72. +3 −1 engine/src/main/scala/cromwell/server/CromwellRootActor.scala
  73. +10 −9 engine/src/main/scala/cromwell/webservice/CromwellApiHandler.scala
  74. +135 −31 engine/src/main/scala/cromwell/webservice/CromwellApiService.scala
  75. +67 −0 engine/src/main/scala/cromwell/webservice/LabelsManagerActor.scala
  76. +4 −4 engine/src/main/scala/cromwell/webservice/WorkflowJsonSupport.scala
  77. +20 −107 engine/src/main/scala/cromwell/webservice/metadata/MetadataBuilderActor.scala
  78. +120 −14 engine/src/main/scala/cromwell/webservice/metadata/MetadataComponent.scala
  79. +1 −1 engine/src/test/scala/cromwell/ArrayWorkflowSpec.scala
  80. +7 −1 engine/src/test/scala/cromwell/CromwellTestKitSpec.scala
  81. +1 −1 engine/src/test/scala/cromwell/DeclarationWorkflowSpec.scala
  82. +1 −1 engine/src/test/scala/cromwell/MapWorkflowSpec.scala
  83. +12 −9 engine/src/test/scala/cromwell/RestartWorkflowSpec.scala
  84. +11 −4 engine/src/test/scala/cromwell/SimpleWorkflowActorSpec.scala
  85. +1 −1 engine/src/test/scala/cromwell/engine/WorkflowAbortSpec.scala
  86. +33 −32 engine/src/test/scala/cromwell/engine/WorkflowStoreActorSpec.scala
  87. +2 −2 engine/src/test/scala/cromwell/engine/io/IoActorGcsBatchSpec.scala
  88. +24 −6 engine/src/test/scala/cromwell/engine/io/IoActorSpec.scala
  89. +3 −3 engine/src/test/scala/cromwell/engine/workflow/WorkflowActorSpec.scala
  90. +1 −1 engine/src/test/scala/cromwell/engine/workflow/WorkflowDockerLookupActorSpec.scala
  91. +134 −49 ...ne/src/test/scala/cromwell/engine/workflow/lifecycle/MaterializeWorkflowDescriptorActorSpec.scala
  92. +6 −3 engine/src/test/scala/cromwell/engine/workflow/lifecycle/execution/ExecutionStoreBenchmark.scala
  93. +241 −0 .../test/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/CallCacheDiffActorSpec.scala
  94. +6 −6 ...scala/cromwell/engine/workflow/lifecycle/execution/callcaching/CallCacheHashingJobActorSpec.scala
  95. +82 −0 ...scala/cromwell/engine/workflow/lifecycle/execution/callcaching/CallCachingSlickDatabaseSpec.scala
  96. +12 −1 ...st/scala/cromwell/engine/workflow/lifecycle/execution/callcaching/EngineJobHashingActorSpec.scala
  97. +2 −2 ...ala/cromwell/engine/workflow/lifecycle/execution/ejea/EjeaBackendIsCopyingCachedOutputsSpec.scala
  98. +44 −0 ...scala/cromwell/engine/workflow/lifecycle/execution/ejea/EjeaCheckingCacheEntryExistenceSpec.scala
  99. +5 −5 ...e/src/test/scala/cromwell/engine/workflow/lifecycle/execution/ejea/EjeaCheckingJobStoreSpec.scala
  100. +5 −5 ...test/scala/cromwell/engine/workflow/lifecycle/execution/preparation/JobPreparationActorSpec.scala
  101. +7 −1 engine/src/test/scala/cromwell/subworkflowstore/SubWorkflowStoreSpec.scala
  102. +260 −44 engine/src/test/scala/cromwell/webservice/CromwellApiServiceSpec.scala
  103. +93 −43 filesystems/gcs/src/main/scala/cromwell/filesystems/gcs/GcsPathBuilder.scala
  104. +14 −1 filesystems/gcs/src/main/scala/cromwell/filesystems/gcs/GcsPathBuilderFactory.scala
  105. +39 −12 filesystems/gcs/src/main/scala/cromwell/filesystems/gcs/auth/GoogleAuthMode.scala
  106. +5 −0 filesystems/gcs/src/main/scala/cromwell/filesystems/gcs/batch/GcsBatchCommandBuilder.scala
  107. +4 −0 filesystems/gcs/src/main/scala/cromwell/filesystems/gcs/batch/GcsBatchIoCommand.scala
  108. +7 −6 filesystems/gcs/src/test/scala/cromwell/filesystems/gcs/GcsPathBuilderSpec.scala
  109. +2 −4 filesystems/gcs/src/test/scala/cromwell/filesystems/gcs/auth/GoogleAuthModeSpec.scala
  110. +2 −2 project/Dependencies.scala
  111. +2 −2 project/Publishing.scala
  112. +2 −2 project/Settings.scala
  113. +1 −1 project/Version.scala
  114. +2 −2 release/release_workflow.wdl
  115. +4 −4 scripts/test_upgrade/test_upgrade.sh
  116. +12 −0 services/src/main/scala/cromwell/services/metadata/CallMetadataKeys.scala
  117. +11 −3 services/src/main/scala/cromwell/services/metadata/MetadataQuery.scala
  118. +6 −1 services/src/main/scala/cromwell/services/metadata/MetadataService.scala
  119. +11 −6 services/src/main/scala/cromwell/services/metadata/impl/MetadataDatabaseAccess.scala
  120. +4 −3 services/src/main/scala/cromwell/services/metadata/impl/MetadataServiceActor.scala
  121. +28 −6 services/src/main/scala/cromwell/services/metadata/impl/WriteMetadataActor.scala
  122. +46 −10 services/src/test/scala/cromwell/services/ServicesStoreSpec.scala
  123. +2 −2 services/src/test/scala/cromwell/services/metadata/WorkflowQueryParametersSpec.scala
  124. +4 −4 services/src/test/scala/cromwell/services/metadata/impl/MetadataDatabaseAccessSpec.scala
  125. +1 −0 services/src/test/scala/cromwell/services/metadata/impl/MetadataServiceActorSpec.scala
  126. +1 −0 src/bin/travis/resources/centaur.inputs
  127. +23 −2 src/bin/travis/resources/centaur.wdl
  128. +10 −0 src/bin/travis/resources/funnel.conf
  129. +7 −0 src/bin/travis/resources/local_centaur.conf
  130. +0 −19 src/bin/travis/resources/tes.conf
  131. +9 −1 src/bin/travis/resources/tes_centaur.conf
  132. +45 −15 src/bin/travis/test.sh
  133. +45 −7 src/bin/travis/testCentaurJes.sh
  134. +8 −0 src/bin/travis/testCentaurLocal.sh
  135. +40 −10 src/bin/travis/testCentaurTes.sh
  136. +19 −2 src/main/scala/cromwell/CromwellCommandLine.scala
  137. +3 −3 src/test/scala/cromwell/CromwellCommandLineSpec.scala
  138. +3 −5 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/GenomicsFactory.scala
  139. +55 −0 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/GoogleLabels.scala
  140. +1 −0 ...ortedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesAsyncBackendJobExecutionActor.scala
  141. +12 −5 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesAttributes.scala
  142. +7 −5 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesExpressionFunctions.scala
  143. +41 −19 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesInitializationActor.scala
  144. +34 −1 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesJobCachingActorHelper.scala
  145. +1 −7 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesJobPaths.scala
  146. +19 −8 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/JesWorkflowPaths.scala
  147. +2 −22 supportedBackends/jes/src/main/scala/cromwell/backend/impl/jes/Run.scala
  148. +60 −1 ...nds/jes/src/main/scala/cromwell/backend/impl/jes/callcaching/JesBackendCacheHitCopyingActor.scala
  149. +6 −0 ...nds/jes/src/main/scala/cromwell/backend/impl/jes/callcaching/JesCacheHitDuplicationStrategy.scala
  150. +37 −0 supportedBackends/jes/src/test/scala/cromwell/backend/impl/jes/GoogleLabelsSpec.scala
  151. +14 −13 ...dBackends/jes/src/test/scala/cromwell/backend/impl/jes/JesAsyncBackendJobExecutionActorSpec.scala
  152. +14 −8 supportedBackends/jes/src/test/scala/cromwell/backend/impl/jes/JesCallPathsSpec.scala
  153. +1 −1 supportedBackends/jes/src/test/scala/cromwell/backend/impl/jes/JesInitializationActorSpec.scala
  154. +3 −2 supportedBackends/jes/src/test/scala/cromwell/backend/impl/jes/JesWorkflowPathsSpec.scala
  155. +6 −2 ...ortedBackends/sfs/src/main/scala/cromwell/backend/impl/sfs/config/ConfigInitializationActor.scala
  156. +5 −5 supportedBackends/sfs/src/main/scala/cromwell/backend/impl/sfs/config/ConfigWdlNamespace.scala
  157. +16 −14 supportedBackends/sfs/src/main/scala/cromwell/backend/sfs/SharedFileSystemInitializationActor.scala
  158. +2 −2 supportedBackends/spark/src/test/scala/cromwell/backend/impl/spark/SparkJobExecutionActorSpec.scala
  159. +2 −2 supportedBackends/spark/src/test/scala/cromwell/backend/impl/spark/SparkRuntimeAttributesSpec.scala
  160. +27 −24 ...ortedBackends/tes/src/main/scala/cromwell/backend/impl/tes/TesAsyncBackendJobExecutionActor.scala
  161. +0 −21 supportedBackends/tes/src/main/scala/cromwell/backend/impl/tes/TesBackendFileHashing.scala
  162. +38 −8 supportedBackends/tes/src/main/scala/cromwell/backend/impl/tes/TesInitializationActor.scala
  163. +11 −13 supportedBackends/tes/src/main/scala/cromwell/backend/impl/tes/TesJobPaths.scala
  164. +11 −15 supportedBackends/tes/src/main/scala/cromwell/backend/impl/tes/TesResponseJsonFormatter.scala
  165. +10 −77 supportedBackends/tes/src/main/scala/cromwell/backend/impl/tes/TesRuntimeAttributes.scala
  166. +82 −89 supportedBackends/tes/src/main/scala/cromwell/backend/impl/tes/TesTask.scala
  167. +9 −10 supportedBackends/tes/src/test/scala/cromwell/backend/impl/tes/TesRuntimeAttributesSpec.scala
View
@@ -16,10 +16,13 @@ before_cache:
- find $HOME/.ivy2 -name "ivydata-*.properties" -delete
- find $HOME/.sbt -name "*.lock" -delete
before_install:
+ # https://github.com/travis-ci/travis-ci/issues/7940#issuecomment-310759657
+ - sudo rm -f /etc/boto.cfg
- openssl aes-256-cbc -K "$encrypted_5ebd3ff04788_key" -iv "$encrypted_5ebd3ff04788_iv" -in src/bin/travis/resources/jesConf.tar.enc -out jesConf.tar -d || true
env:
global:
- CENTAUR_BRANCH=develop
+ - INTEGRATION_TESTS_DIR=src/main/resources/integrationTestCases
matrix:
# Setting this variable twice will cause the 'script' section to run twice with the respective env var invoked
- BUILD_TYPE=sbt
@@ -36,3 +39,12 @@ deploy:
script: src/bin/travis/publishRelease.sh
on:
tags: true
+notifications:
+ slack:
+ rooms:
+ - secure: B5KYcnhk/ujAUWlHsjzP7ROLm6MtYhaGikdYf6JYINovhMbVKnZCTlZEy7rqT3L2T5uJ25iefD500VQGk1Gn7puQ1sNq50wqjzQaj20PWEiBwoWalcV/nKBcQx1TyFT13LJv8fbFnVPxFCkC3YXoHedx8qAhDs8GH/tT5J8XOC8=
+ template:
+ - "Build <%{build_url}|#%{build_number}> (<%{compare_url}|%{commit}>) of %{repository}@%{branch} by %{author} %{result} in %{duration}"
+ on_success: change
+ on_failure: change
+ on_pull_requests: false
View
@@ -1,5 +1,113 @@
# Cromwell Change Log
+## 28
+
+### Bug Fixes
+
+#### WDL write_* functions add a final newline
+
+The following WDL functions now add a newline after the final line of output (the previous behavior of not adding this
+newline was inadvertent):
+- `write_lines`
+- `write_map`
+- `write_object`
+- `write_objects`
+- `write_tsv`
+
+For example:
+
+```
+task writer {
+ Array[String] a = ["foo", "bar"]
+ command {
+ # used to output: "foo\nbar"
+ # now outputs: "foo\nbar\n"
+ cat write_lines(a)
+ }
+}
+```
+
+#### `ContinueWhilePossible`
+
+A workflow utilizing the WorkflowFailureMode Workflow Option `ContinueWhilePossible` will now successfully reach a terminal state once all runnable jobs have completed.
+#### `FailOnStderr`
+When `FailOnStderr` is set to false, Cromwell no longer checks for the existence of a stderr file for that task.
+
+### WDL Functions
+
+#### New functions: floor, ceil and round:
+
+Enables the `floor`, `ceil` and `round` functions in WDL to convert floating point numbers to integers.
+
+For example we can now use the size of an input file to influence the amount of memory the task is given. In the example below a 500MB input file will result in a request for a VM with 2GB of memory:
+
+```
+task foo {
+ File in_file
+ command { ... }
+ runtime {
+ docker: "..."
+ memory: ceil(size(in_file)) * 4
+ }
+}
+```
+
+### Call Caching
+
+* Hash values calculated by Cromwell for a call when call caching is enabled are now published to the metadata.
+It is published even if the call failed. However if the call is attempted multiple times (because it has been preempted for example),
+since hash values are strictly identical for all attempts, they will only be published in the last attempt section of the metadata for this call.
+If the hashes fail to be calculated, the reason is indicated in a `hashFailures` field in the `callCaching` section of the call metadata.
+*Important*: Hashes are not retroactively published to the metadata. Which means only workflows run on Cromwell 28+ will have hashes in their metadata.
+
+See the [README](https://github.com/broadinstitute/cromwell#get-apiworkflowsversionidmetadata) for an example metadata response.
+
+* New endpoint returning the hash differential for 2 calls.
+
+`GET /api/workflows/:version/callcaching/diff`
+
+See the [README](https://github.com/broadinstitute/cromwell#get-apiworkflowsversioncallcachingdiff) for more details.
+
+### Workflow Submission
+
+* The workflow submission parameters `wdlSource` and `wdlDependencies` have been deprecated in favor of `workflowSource` and
+`workflowDependencies` respectively. The older names are still supported in Cromwell 28 with deprecation warnings but will
+be removed in a future version of Cromwell.
+
+### Labels
+* A new `/labels` endpoint has been added to update labels for an existing workflow. See the [README](README.md#patch-apiworkflowsversionidlabels) for more information.
+* Label formatting requirements have been updated, please check the [README](README.md#label-format) for more detailed documentation.
+
+
+### JES Backend
+
+The JES backend now supports a `filesystems.gcs.caching.duplication-strategy` configuration entry.
+It can be set to specify the desired behavior of Cromwell regarding call outputs when a call finds a hit in the cache.
+The default value is `copy` which will copy all output files to the new call directory.
+A second value is allowed, `reference`, that will instead point to the original output files, without copying them.
+
+
+```hocon
+filesystems {
+ gcs {
+ auth = "application-default"
+
+ caching {
+ duplication-strategy = "reference"
+ }
+ }
+}
+```
+
+A placeholder file will be placed in the execution folder of the cached call to explain the absence of output files and point to the location of the original ones.
+
+
+### Metadata Write Batching
+
+Metadata write batching works the same as in previous versions of Cromwell, but the default batch size has been changed from 1 to 200. It's possible that 200 is too high in some environments, but 200 is more likely to be an appropriate value
+than the previous default.
+
+
## 27
### Migration
Oops, something went wrong.

0 comments on commit 48411bf

Please sign in to comment.