Skip to content
This repository has been archived by the owner on Nov 20, 2024. It is now read-only.

Commit

Permalink
release 0.7.0 - SARSCov2 Illumina Full support In Terra (#440)
Browse files Browse the repository at this point in the history
* Snapshot creation uses datetime rather than date (#355)

* Snapshot creation uses datetime rather than date

* Making the name of the column used for datetime interval variable

Co-authored-by: rhiananthony <[email protected]>

* bump develop to 0.7.0 (#360)

* util/do-or-nil-silently should move to build.clj (#367)

* util/do-or-nil-silently should move to build.clj

* Fixed indentation to match standard

* GH-1226 Support entity set creation when creating submissions. (#353)

* First pass: create-submissions generates one submission per entity.

* Cleaned up TODOs for first pass attempt, reformatted tests to pass lint step in build.

* Second pass: support entity set creation when specifying >1 entity for a submission.

Refactored bigquery table dump to pull out now-common code.

* Address PR feedback

To simplify, will generate an entity set even for the singleton input.
Removed firecloud/consolidate-entities-to-set as a result.
Need to pass in 'expression' to submission creation payload when specifying an entity set.
Supplemented integration and unit tests.

* Create an interface all COVID work can build on top of. (#369)

* Create an interface all hornets work on top of.

* Apply suggestions from code review

* Update readme.md

Build Boad.

* GH-1272: Lists are not imported correctly into a Terra Workspace Entity (#368)

* Boad -=> Board
* Still doesn't round-trip on doubles and values like "19A".
* Unit test wfl.tsv.
* Ensure TSV mappability.
* Ensure TSV is tabulatable.
* Fix bug in assert-mapulatable!.

* Add wfl.service/rawls.clj for interacting directly with Rawls API (#370)

* Rename rawls/create-snapshot -> create-snapshot-reference (#373)

We create the snapshot in the TDR, and link to it in the workspace via Rawls.

* [GH-1215] Add snapshot_reference_id to Sarscov2IlluminaFull table schema (#375)

* Add snapshot_reference_id to Sarscov2IlluminaFull table schema

Because schema update hasn't run, altering existing table definition in place.

* Documentation changes from local Postgres debugging, onboarding

- Clarified order of operations when installing, using local Postgres
- Fixed broken intra-doc links
- Added docs readme with instruction for launching local documentation site

* Add instruction for recreating wfl DB to development docs

* Remove references to undefined documentation files

* [GH-1293] fix test-create-submissions-for-entity-set (#378)

Simply getting the submission again is not sufficient to guarantee that
the workflow has been queued for execution. Poll instead.

* Update documentation and infrastructure for release candidates (#377)

* Update documentation and infrastructure for release candidates
- creating release candiates
- bashing release candidates

Restore version override in cli.py.
Re-tag latest docker images in cli.py so that version can be
overwritten.

Update IMAGES target in Makefile to add the :latest tag.
Clean up :latest images on distclean target.

* fix whitespace

* Bump ssri from 6.0.1 to 6.0.2 in /ui (#382)

Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2.
- [Release notes](https://github.com/npm/ssri/releases)
- [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md)
- [Commits](npm/ssri@v6.0.1...v6.0.2)

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* add interactive script ahead of covid-19 demo  (#380)

* add interactive script ahead of covid-19 demo tomorrow

* fix rawls test failure

* reformat test

* share demo remources with cdc-covid-surveillance firecloud group

* corrections from review

* format for consistency

* clone a dev workspace instead of the prod one

* fix test-import-snapshot - workspace changed

* fix arrays test failures

* [GH-1213] Update DB schema for COVID workload creation (#381)

* changelog changes

* Link workload with source, sink and executor tables.

* Update the p-keys to bigint.

* SQL has reserved table.

* Initial creat covid workload commit

* Verifies dataset as well

* Update DB schema.

* Address comments.

* v0.6.0 Release (#359)

* [GH-1278] Fix SG update-workload! implementation from updating Clio multiple times (#358)

[GH-1278] Fix SG update-workload! implementation from trying to update the
clio BAM records for each Succeeded workflow repeatedly by restoring the
:finished guard for register-workload-in-clio.
Introducted in https://broadinstitute.atlassian.net/browse/GH-1277.

* GH-1188: Bump GDCWholeGenomeSomaticSingleSample Version When Lantern Release (#351)

* Restore inputs processing hacks.
* GDCWholeGenomeSomaticSingleSample moved.
* Run off of /develop/ branch instead.
* clojure -M:format
* Use the GDCWholeGenomeSomaticSingleSample_v1.1.0 release.
* Remove the Rich Comment.

* GitHub `develop` infrastructure + release changes (#356)

Update test actions to only run on PRs.
Update release action to only run on new commits into main.
Update + format docs about branching off develop and releasing into main.
Restore tag-and-push-images in cli.py

* GH-1282: Document WFL's support for Somatic Genomes. (#361)

* Draft doc module for SG.
* Update navigation Camel^H^H^H^H^HYAML.

* Update CHANGELOG.md for v0.6.0, including previous patches

Co-authored-by: Tom Lyons <[email protected]>
Co-authored-by: Tom Lyons <[email protected]>

* Resolve merge conflicts.

* Fix issues generated from rebasing.

* Fix the failing integration tests.

Co-authored-by: rhiananthony <[email protected]>
Co-authored-by: Edmund Higham <[email protected]>
Co-authored-by: Tom Lyons <[email protected]>
Co-authored-by: Tom Lyons <[email protected]>

* Add multimethods for source, executor and sink operations (#383)

* Add multimethods for source, executor and sink operations
Add skeleton implementations for tdr-source

* make use of `!` more consistent?

* add create operations for source, executor and sink

* [GH-1215] Import snapshots within COVID workload (#376)

- Data model change: a snapshot_reference_id is linked to a workspace and should be associated with the executor, not the source (TDR in our use case)
- Added covid/get-imported-snapshot-reference - nil or snapshot reference from Rawls for snapshot_reference_id in executor details instance (to be created from TerraExecutorDetails)
- Added covid/import-snapshot! - import snapshot to workspace, writing to DB if successful
- Added integration tests (incomplete coverage)

* [GH-1295] Use Rawls to Import Workflow Outputs (#384)

RR: https://broadinstitute.atlassian.net/browse/GH-1295

firecloud's flexibleImportEntities has a size limit on the TSV file you POST. Unfortunately, one sarscov2_illumina_full workflow's outputs exceeds this. We can work around this issue by using Rawl's batchUpsert. This is slightly different as it takes a list of operations on how to construct the entity rather than the entity serialised to TSV.

In this PR, I've demonstrated how we can use Rawls to import the workflow's outputs into the workspace. I've also updated the demo to do this for a workflow that has already passed.

* GH-1285: [COVID] Launch submissions through Rawls, and keep track of them (#372)

* Simplify day intervals.
* Document wfl.tools.snapshots.
* Map name over keyword arguments.
* Force the production Rawls.
* Checkpoint groups getters.
* Patch rebase conflict.
* Implement start-covid-workload! kinda.
* Checkpoint start-covid-workload! test.
* Add covid-workload-request to support unit.
* clojure -M:format
* Move Rich comment into a unit test.
* Respond to comments and tidy up a little
* Remove unit test now covered by integration.
* Document clojure.test/test-vars to remind me.

* Bump url-parse from 1.4.7 to 1.5.1 in /ui (#388)

Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.4.7 to 1.5.1.
- [Release notes](https://github.com/unshiftio/url-parse/releases)
- [Commits](unshiftio/url-parse@1.4.7...1.5.1)

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update db schema again based on lasted discussions. (#387)

* Update db schemas.

* Make the names more clear.

* Address comments.

* Switch to SQL syntax from XML.

* Address more comments.

* one more update.

* Bump y18n from 4.0.0 to 4.0.1 in /ui (#352)

Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1.
- [Release notes](https://github.com/yargs/y18n/releases)
- [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/yargs/y18n/commits)

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [GH-1301] Notify Workload Watchers when "User Visible" Exceptions Occur (#386)

RR: https://broadinstitute.atlassian.net/browse/GH-1301
Introduce wfl.util.UserVisibleException - a new type of exception that we should handle to throw and handle errors that users are meant to see.
Re-wire the background loop to handle UserVisibleException and also be more exception safe. Start to plumb in email notifications.

* Bump hosted-git-info from 2.8.8 to 2.8.9 in /ui (#392)

Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9.
- [Release notes](https://github.com/npm/hosted-git-info/releases)
- [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md)
- [Commits](npm/hosted-git-info@v2.8.8...v2.8.9)

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Bump lodash from 4.17.19 to 4.17.21 in /ui (#390)

Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](lodash/lodash@4.17.19...4.17.21)

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* [GH-1311]: Create/Load COVID workloads (#389)

RR: https://broadinstitute.atlassian.net/browse/GH-1311
Add support for loading and creating COVID workloads
Add PR test hook for database/ directory
Tweak database schema to make it a bit easier to create workloads

* [GH-1313] TerraWorkspaceSink/update-sink! (#394)

* Add implementation for TerraWorkspaceSink/update-sink!
Rework temporary-postresql-database fixture to override wfl-db-config

* integration test passes

* add make-queue-from-list to be clearer

* fix test

* use max(id) + 1 for new output row instead of table length + 1

* [GH-1215] COVID TerraExecutor/update-executor!

Added update-terra-executor and required helpers:
- coerce an available snapshot from source queue to a snapshot reference
- add entry point for submission creation
- write new workflows to executor details instance

Refined queue peek and pop for source and executor.  Notably, queue peeks return a meaningful object (snapshot for source, workflow for executor) rather than a database record.

Removed now-deprecated code from earlier update loop design.
Added integration test.

* [GH-1306] Add `workflows` multimethod for workloads (#396)

RR: https://broadinstitute.atlassian.net/browse/GH-1306
Add workflows multimethod
Change all locations where workflows are accessed via the :workflows keyword to use this function.
Implement workflows for COVID

I've added a simple test to make sure the SQL is correct
Awaiting executor implementation to test with more than 0 workflows.

* [GH-1222] Check for new work in TDR (#371)

* v0.6.0 Release (#359)

* [GH-1278] Fix SG update-workload! implementation from updating Clio multiple times (#358)

[GH-1278] Fix SG update-workload! implementation from trying to update the
clio BAM records for each Succeeded workflow repeatedly by restoring the
:finished guard for register-workload-in-clio.
Introducted in https://broadinstitute.atlassian.net/browse/GH-1277.

* GH-1188: Bump GDCWholeGenomeSomaticSingleSample Version When Lantern Release (#351)

* Restore inputs processing hacks.
* GDCWholeGenomeSomaticSingleSample moved.
* Run off of /develop/ branch instead.
* clojure -M:format
* Use the GDCWholeGenomeSomaticSingleSample_v1.1.0 release.
* Remove the Rich Comment.

* GitHub `develop` infrastructure + release changes (#356)

Update test actions to only run on PRs.
Update release action to only run on new commits into main.
Update + format docs about branching off develop and releasing into main.
Restore tag-and-push-images in cli.py

* GH-1282: Document WFL's support for Somatic Genomes. (#361)

* Draft doc module for SG.
* Update navigation Camel^H^H^H^H^HYAML.

* Update CHANGELOG.md for v0.6.0, including previous patches

Co-authored-by: Tom Lyons <[email protected]>
Co-authored-by: Tom Lyons <[email protected]>

* Release v0.6.1 Patch (#365)

* [GH-1284] Fix docker image generation (#363)

The `Dockerfile` is being invoked in the root directory - we don't need
to add the parent directory, just the current one.

* [GH-1277] Prevent update loop from terminating (#364)

Catch all throwables to make sure a workload failure doesn't bring down
workflow-launcher.

* update changelog + bump patch to v0.6.1

* Remove outdated test code.

* Remove unused utilities code.

* Checkpoint.

* Bump timeout for system tests, as it takes longer to finish now.

* Update docs to include how to override envs for local testing.

* Commit what I had before surgery.

* Wrap up.

* Add a protocol extension for psql array.

* Update DB schema to store row ids for TDR.

* Also store TDR row-ids and query interval info in DB.

* Move protocol test to integration.

* Update utc-now util also randomize the snapshot name with request datetime.

* Resolve merge conflicts.

* Fix weirdness during rebasing...

* Move the logic into the multimethod interface.

* Take out the utc-now util function.

* Move protocol test to jdbc_test and reformat code.

* Remove duplicate code.

* Remove comment blocks.

* Fix broken MD during rebasing.

* Crazy formats.

* Fix a bug with the snapshot naming.

* Add the snapshot_id back to DB schema.

* Include job-status in Source Details table.

* update TDR jobs that are still running as part of source update loop.

* Fix timestamp formatting.

* Exclude the problematic test.

* Fix a hiccup.

* Fix formatting and a small issue with job-result from TDR.

* Minor fixes around covid module.

* Add unit and integration tests.

* Lint.

* Let DB control the primary key auto increment.

* Fix the issues identified by the tests.

* Fix an issue with the jdbc protocol test.

* Update unit tests.

* Call the multi-method in covid test to make sure everything is plumbed correctly.

* Log when TDR snapshot creation job failed.

* Address comments.

* Increase the interval of system test polling.

Co-authored-by: Edmund Higham <[email protected]>
Co-authored-by: Tom Lyons <[email protected]>
Co-authored-by: Tom Lyons <[email protected]>

* [GH-1314] expose workflows via `GET /api/v1/workload/{uuid}/workflows` (#397)

RR: https://broadinstitute.atlassian.net/browse/GH-1314
Adding a separate workflows selector will allow us to decouple the workload representation from serialisation artefacts that aren’t useful for a user.

In this PR, I'm changing the workload data model such that `GET /api/v1/workloads`
to only return workload metadata (everything but the workflows) and adding
`GET /api/v1/workloads/{uuid}/workflows`
to fetch the workflows in the workload.

* [GH-1317] start the workload source (#399)

RR: https://broadinstitute.atlassian.net/browse/GH-1317

The source of the workload needs to be told that the workload has been started so it can start looking in he datarepo for new data.
I've added a new multi-method for the source to start it, called on start-workload!. This writes last_checked to be the time when we should start listening for new data.

* TerraExecutor/update-executor should update active, failed workflow statuses (#398)

1. Within a single tx, fetch executor details workflow records with active or failed status.
2. For each record, use Firecloud to fetch up-to-date workflow object. Update the record with the corresponding new workflow status.
3. Within a single tx, write new record statuses to DB.

Updated integration tests.

* GH-1307 GH-1312 Update method configuration using snapshot reference (#402)

In new method `update-method-configuration!`:

1. GET the method configuration from Firecloud
2. If the Firecloud-derived mc version doesn't match our DB record, throw
3. Update the method configuration with the snapshot reference name and POST to Firecloud
4. Increment our DB record's mc version

Supplemented integration tests.

* [GH-1322] TDR Snapshots Source (#403)

RR: https://broadinstitute.atlassian.net/browse/GH-1322
Adding a new source to workflow-launcher that's a list of snapshots.

* [GH-1318] Stop Workload Source (#400)

RR: https://broadinstitute.atlassian.net/browse/GH-1318
Add `stop-source` multimethod and implement for the TerraDataRepoSource.
When stopped, the source will stop looking for new rows to snaphot in
the TDR.

Also added logic for when the workload is finished. In this case, once
started the workload is finished when it has been stopped and both
source and executor queues are empty. To do this, I added another
multimethod to return the length of the queues.

For the executor, the length of the queue is the number of workflows
that have not been consumed or aborted.

For the source, the length of the queue is the number of unconsumed
records whose snapshot job is not 'failed'.

Note that this is slightly at odds with peek, where peek is meant to
return objects that are ready to be consumed.

* GH-1216: [TDR New Work Detection] Extend System Tests for COVID processing (#395)

* Update vault to work around NoClassDefFoundError.
* Checkpoint failing with PSQLException: FATAL: database ... does not exist 
   database "wfltest147f1cbf976046e68e6beb5eef728674" does not exist
* Spec validation still losing sink and source keys.
* Update most dependencies.
* Restore batch or covid request.
* Checkpoint "working" spec.clj.
* Lift strip-internals out of endpoint API transaction.
* New system test passing again.
* Use Ed's strip-internals fix.
* clojure -M:format
* Respond to comments but now there is no :name in response.
* clojure -M:format
* Make ::name optional for now.

* [GH-1320] add `snapshotReaders` to tdr source (#405)

RR: https://broadinstitute.atlassian.net/browse/GH-1320
Adding a list of people who want to access to the snapshots we create to the source request.

* Remove liquibase-core from build dependencies. (#407)

* [GH-1213] Create covid workload verifications (#379)

* Update the specs.

* Commit pair programming results.

* Commit updated implementation (WIP).

* organizing the keyworrds in spec.clj

* It seems spec/or requires ky-value pairs! Fix it.

* Added start of workflow-request for create-covid-workload function

* changelog changes

* Link workload with source, sink and executor tables.

* Update the p-keys to bigint.

* SQL has reserved table.

* We cannot use table as col name in SQL.

* Checkpoint.

* More.

* Initial creat covid workload commit

* Verifies dataset as well

* Verifications of the source, executor and sink

* More verification of sink and executor

* Verification of source, sink, executor pre review

* Fixing broken test and docstrings instead of comments

* Update api/src/wfl/service/rawls.clj

* Fix and rewrite the test.

* Fix the test part II.

* Adding more tests for the create-covid-workload and adding messages for the cause of a thrown exception

* Updated tests and create covid workload verifications

* removing commente3d out code

* removing get-workspace function from rawls code since we use firecloud to make this call

* Adding lint changes

* split up tests. Added verification of dataset table and columns

* Lint changes

* Fixing merge conflict and lint issue

* Fixing import

* Updated to base off of develop changes

* Adding validation to create workflow logic

* Updates to test, spec and create method

* Working validation tests

* linted. Also removed old Liquibase files no longer used

* cleanup of testing namespace

* removing try/catch since in verify source function

* Moving validation to top of function

* Moving docstrings for two functions

* Fixing two broken integration tests for covid

* Using variables bound in the TDR section for validation

* Moving some code within file to group liike code together

* Fixed all integration tests. Reorganized location of workload methods in covid module

* Fixed all integration tests. Reorganized location of workload methods in covid module

* Removing extraneous description for integration tests relating to create workload method

* Removing extraneous description for integration tests relating to create workload method

* linted

* Converted verification methods to multimethods dispatched off name

* Updated name of validate source, executor, sink functions

* Fixed merge conflicts and linted

* removing unnecessary changeset

* reverted spec.clj to develop branch. Also cleaned up some cruft

* reverted spec.clj to develop branch. Also cleaned up some cruft

* Making get-workspace-json function private and adding a public function which checks the workload. Also cleaned up the create verification methods and removed some unnecessary variables. Also moved source/sink/executor verification functions to the source/sink/executor sections

* Adding default implementations for the create validation functions

* linted

* fixing firecloud method and tests

* Fixing merge conflicts with develop branch

* Adding flags for skipping validation of source, executor and sink in requests (#404)

* Adding flags for skipping validation to source, executor and sink

* linted

* Fixing merge conflict

Co-authored-by: rhiananthony <[email protected]>

* linting fixes

* linted and fixes some nits

* Fixing nits

* Fixing nits

* lint fixes

Co-authored-by: Rex <[email protected]>
Co-authored-by: rhiananthony <[email protected]>
Co-authored-by: Chengchen(Rex) Wang <[email protected]>

* GH-1316 Create submission within TerraExecutor update (#406)

GH-1316 Create submission within TerraExecutor update

Fully implemented `create-submission!` stub, pulling in existing `update-method-configuration!`.
Simplified code which previously passed around updated executor with incremented method configuration version.
Docstrings converted to use backticked parameter names to preserve camel case.
Expanded integration testing.

* [GH-1323] to-edn (#409)

RR: https://broadinstitute.atlassian.net/browse/GH-1323 https://broadinstitute.atlassian.net/browse/GH-1321 

Added util/to-edn a general :type dispatch function to coerce an object into a user-friendly EDN view that gets returned to the user.
Allow terra executor to update details table with workflow IDs between update calls
Introduce `done?` to test when the workload should be marked `:finished`
Fetch workflow inputs/outputs from firecloud and transform them into a more workable form
Fix jdbc double exaludations

* GH-1298: TerraWorkspaceSink - verify target entity columns exist (#410)

* Worried that :missing will get swamped by :attributes though.

* [GH-1327] Fix Start After Stop (#411)

[GH-1327] Fix Start After Stop
In this change I'm fixing the strange behaviour were we can start a
covid workload after it was stopped. To do this, I've made it illegal to
stop a workload before it's been started.

I've done this because stop before start seems strange to me too. The
purpose of stop was to stop getting new data from the source but allow
all data in the workload pipeline to get flushed (ie. consume all
created snapshots and write all worklfows back). Stop was not meant for
aborting a workload and cancelling/aborting all active prossessing. If
there is a use case for such a thing (and i think there is) - I think we
should expose a new endpoint called `POST /api/v1/abort` or something.

Of course this PR is pretty small so if the team feels strongly about
stop before start I can find another solution/

* [GH-1327] update system tests after /stop changes (#412)

[GH-1327] update system tests after /stop changes removing verification that we can stop before starting and no workflows are run,

* [GH-1333] Fix NullPointerException in TDR Source (#418)

RR: https://broadinstitute.atlassian.net/browse/GH-1333
Caused by database changes not propagated to source code. Destructing
old keys for the source lead to null values.

* [GH-1336] Fix continual snapshot creation (#419)

Our BigQuery query was wong as we were simply calling `toString` on a
java.sql.Timestamp. This lead to intervals like
`['2021-05-26 15:31:18.287641' '2021-05-26T20:00:13']`
The space was causing the problem and BigQuery interpreted that as a
date. The fix is to ensure the lower and upper bound of our query-between
interval is of the same type by coercing java.sql.Timestamp `last_checked`
into a java.time.OffsetDateTime.

* [GH-1337] fix create snapshot job always failing
RR: https://broadinstitute.atlassian.net/browse/GH-1337
Caused by destructuring the tdr job response with the wrong key.

* [GH-1338] Fix wfl not discovering new dataset rows
RR: https://broadinstitute.atlassian.net/browse/GH-1338
This isn't a complete fix sadly but it at least solves the problem for
low ingest rate projects like COVID. For now, only updating
`last_checked` when we successfully found new rows in the dataset.

* [GH-1339] Prevent Snapshot Job IDs from being clobbered with nils
RR: https://broadinstitute.atlassian.net/browse/GH-1339
When we update the status of snapshot creation jobs, we only get the
job metadata when the job is complete.As a consequence, `nil`s are
propagated up the call stack and the database record is clobbered with
nils, including the `snapshot_creation_job_id` column.

To fix this, always return the metadata and log the failure should one occur.

* [GH-1331] document `/stop` and `/workflows` (#417)

[GH-1331] Document `/stop` and `/workflows` endpoints
RR: https://broadinstitute.atlassian.net/browse/GH-1331
Updating documentation for changes in v0.7.0:
- workload-response no longer returning workflows
- `GET /api/v1/workload/{uuid}/workflows`
- `POST /api/v1/stop`

Co-authored-by: Chengchen(Rex) Wang <[email protected]>

* Add test-covid-workload to parallel test group (#424)

… and fix method configuration namespace.

* [GH-1341] Fix accepting malformed labels in workload request
RR: https://broadinstitute.atlassian.net/browse/GH-1341
Enforce labels are of the form "name:value" where
- name starts with a letter followed by any combination of letters,
  numbers, underscores and dashes
- value is any non-blank string not containing `:`

I had to include labels in the batch workload request as the coercion
layer got confused when you gave it bad labels.

* [GH-1344] Enforce valid email addresses in workload `watchers`

* [GH-1348] Remove :pipeline from COVID workload request (#426)

RR: https://broadinstitute.atlassian.net/browse/GH-1348
The :pipeline attribute of the workload request is meaningless for COVID-type workloads. Note that these workloads aren't even specific to COVID-19 processing, rather a generalisation.
In this PR, I've removed the :pipeline attribute. To do this, all workload operations on maps with a nil :pipeline will be implemented by the functions in the covid namespace.

* [GH-1350] fix Terra Workspace sink validation (#427)

RR: https://broadinstitute.atlassian.net/browse/GH-1350
The "Terra Workspace" sink validation did not validate that the
attributes listed in fromOutputs exist in the specified entity
type in the workspace. This PR fixes this.

* Bump dns-packet from 1.3.1 to 1.3.4 in /ui

Bumps [dns-packet](https://github.com/mafintosh/dns-packet) from 1.3.1 to 1.3.4.
- [Release notes](https://github.com/mafintosh/dns-packet/releases)
- [Changelog](https://github.com/mafintosh/dns-packet/blob/master/CHANGELOG.md)
- [Commits](mafintosh/dns-packet@v1.3.1...v1.3.4)

Signed-off-by: dependabot[bot] <[email protected]>

* [GH-1325] Get or import snapshot (#422)

Within rawls namespace:
- get-snapshot-references: lazily paginate through all snapshot references in a workspace.
- create-or-get-snapshot-reference: if importing the snapshot fails with a 409, find the first existing snapshot reference matching the snapshot id.

* [GH-1354] Enforce `snapshotReaders` are email addresses (#428)

RR: https://broadinstitute.atlassian.net/browse/GH-1354
This guards against erroring while creating snapshots if a user
makes a typo.

* [GH-1356] Fix Coercion Failure for TDR Snapshots Source (#429)

RR: https://broadinstitute.atlassian.net/browse/GH-1356
Caused by metosin/reitit#494
Fix as per https://broadinstitute.atlassian.net/browse/GH-1348

Included integration test for reitit coercions to catch this sooner.

* [GH-1357] Fix failure to sink workflow outputs (#431)

RR: https://broadinstitute.atlassian.net/browse/GH-1357
I assumed (wrongly) the way Rawls represented workflows in a submission
was the same as how cromwell represented workflows. I also mocked these
representations incorrectly in tests. To fix this, only use the submission
to fetch workflow IDs, then use firecloud's workflow and workflow/outputs
endpoints so we don't have to adapt/mock multiple data models.

* [GH-1359] Overwrite Workspace Entity On Sink (#432)

RR: https://broadinstitute.atlassian.net/browse/GH-1359
When sinking a resubmitted workflow, the TerraWorkspaceSink would
append to the existing entity in the workspace. This leaves the entity
in an even more wrong state than the reason the sample was reanalysed.
Our fix (as agreed with cloreth) is to clobber the entity in the
workspace by deleting the entity if it exists then upserting the new one.

* Fix broken requirement install command in docs readme (#434)

* Move docstring and document when true. (#436)

The PR check fails in the test that Ed excludes on another branch.

* [GH-1361] Disable Failing Tests for v0.7.0 Release (#435)

RR: https://broadinstitute.atlassian.net/browse/GH-1361
This is a low risk change for v0.7.0 as this test doess not exercise
reachable product code.
Disabling:
- wfl.integration.modules.arrays-test/test-update-arrays-workload!

* [GH-1363] Fix Sporadic Firecloud Test Failures (#437)

RR: https://broadinstitute.atlassian.net/browse/GH-1363
Caused by firecloud returning "Launching" as a workflow status - we were
testing that the status was in #{"Queued" "Submitted"}.
Fix util/poll so logical FALSE can be returned from the action.

* Bump ws from 6.2.1 to 6.2.2 in /ui (#433)

Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/commits)

---
updated-dependencies:
- dependency-name: ws
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* update changelog for v0.7.0

Co-authored-by: Rhian Anthony <[email protected]>
Co-authored-by: rhiananthony <[email protected]>
Co-authored-by: Olivia Kotsopoulos <[email protected]>
Co-authored-by: Chengchen(Rex) Wang <[email protected]>
Co-authored-by: Tom Lyons <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Tom Lyons <[email protected]>
Co-authored-by: Rex <[email protected]>
  • Loading branch information
9 people authored Jun 9, 2021
1 parent 75dd604 commit 1705701
Show file tree
Hide file tree
Showing 96 changed files with 13,202 additions and 4,164 deletions.
1 change: 1 addition & 0 deletions .github/workflows/pr-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
pull_request:
paths:
- api/**
- database/**
- ui/**

jobs:
Expand Down
70 changes: 69 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,71 @@
# Release 0.7.0
- Bump ws from 6.2.1 to 6.2.2 in /ui ([#433](https://github.com/broadinstitute/wfl/pull/433))
- [GH-1363] Fix Sporadic Firecloud Test Failures ([#437](https://github.com/broadinstitute/wfl/pull/437))
- [GH-1361] Disable Failing Tests for v0.7.0 Release ([#435](https://github.com/broadinstitute/wfl/pull/435))
- Move docstring and document when true. ([#436](https://github.com/broadinstitute/wfl/pull/436))
- Fix broken requirement install command in docs readme ([#434](https://github.com/broadinstitute/wfl/pull/434))
- [GH-1359] Overwrite Workspace Entity On Sink ([#432](https://github.com/broadinstitute/wfl/pull/432))
- [GH-1357] Fix failure to sink workflow outputs ([#431](https://github.com/broadinstitute/wfl/pull/431))
- [GH-1356] Fix Coercion Failure for TDR Snapshots Source ([#429](https://github.com/broadinstitute/wfl/pull/429))
- [GH-1354] Enforce `snapshotReaders` are email addresses ([#428](https://github.com/broadinstitute/wfl/pull/428))
- [GH-1325] Get or import snapshot ([#422](https://github.com/broadinstitute/wfl/pull/422))
- Bump dns-packet from 1.3.1 to 1.3.4 in /ui
- [GH-1350] fix Terra Workspace sink validation ([#427](https://github.com/broadinstitute/wfl/pull/427))
- [GH-1348] Remove :pipeline from COVID workload request ([#426](https://github.com/broadinstitute/wfl/pull/426))
- [GH-1344] Enforce valid email addresses in workload `watchers`
- [GH-1341] Fix accepting malformed labels in workload request RR: https://broadinstitute.atlassian.net/browse/GH-1341 Enforce labels are of the form "name:value" where - name starts with a letter followed by any combination of letters, numbers, underscores and dashes - value is any non-blank string not containing `:`
- Add test-covid-workload to parallel test group ([#424](https://github.com/broadinstitute/wfl/pull/424))
- [GH-1331] document `/stop` and `/workflows` ([#417](https://github.com/broadinstitute/wfl/pull/417))
- [GH-1339] Prevent Snapshot Job IDs from being clobbered with nils RR: https://broadinstitute.atlassian.net/browse/GH-1339 When we update the status of snapshot creation jobs, we only get the job metadata when the job is complete.As a consequence, `nil`s are propagated up the call stack and the database record is clobbered with nils, including the `snapshot_creation_job_id` column.
- [GH-1338] Fix wfl not discovering new dataset rows RR: https://broadinstitute.atlassian.net/browse/GH-1338 This isn't a complete fix sadly but it at least solves the problem for low ingest rate projects like COVID. For now, only updating `last_checked` when we successfully found new rows in the dataset.
- [GH-1337] fix create snapshot job always failing RR: https://broadinstitute.atlassian.net/browse/GH-1337 Caused by destructuring the tdr job response with the wrong key.
- [GH-1336] Fix continual snapshot creation ([#419](https://github.com/broadinstitute/wfl/pull/419))
- [GH-1333] Fix NullPointerException in TDR Source ([#418](https://github.com/broadinstitute/wfl/pull/418))
- [GH-1327] update system tests after /stop changes ([#412](https://github.com/broadinstitute/wfl/pull/412))
- [GH-1327] Fix Start After Stop ([#411](https://github.com/broadinstitute/wfl/pull/411))
- GH-1298: TerraWorkspaceSink - verify target entity columns exist ([#410](https://github.com/broadinstitute/wfl/pull/410))
- [GH-1323] to-edn ([#409](https://github.com/broadinstitute/wfl/pull/409))
- GH-1316 Create submission within TerraExecutor update ([#406](https://github.com/broadinstitute/wfl/pull/406))
- [GH-1213] Create covid workload verifications ([#379](https://github.com/broadinstitute/wfl/pull/379))
- Remove liquibase-core from build dependencies. ([#407](https://github.com/broadinstitute/wfl/pull/407))
- [GH-1320] add `snapshotReaders` to tdr source ([#405](https://github.com/broadinstitute/wfl/pull/405))
- GH-1216: [TDR New Work Detection] Extend System Tests for COVID processing ([#395](https://github.com/broadinstitute/wfl/pull/395))
- [GH-1318] Stop Workload Source ([#400](https://github.com/broadinstitute/wfl/pull/400))
- [GH-1322] TDR Snapshots Source ([#403](https://github.com/broadinstitute/wfl/pull/403))
- GH-1307 GH-1312 Update method configuration using snapshot reference ([#402](https://github.com/broadinstitute/wfl/pull/402))
- TerraExecutor/update-executor should update active, failed workflow statuses ([#398](https://github.com/broadinstitute/wfl/pull/398))
- [GH-1317] start the workload source ([#399](https://github.com/broadinstitute/wfl/pull/399))
- [GH-1314] expose workflows via `GET /api/v1/workload/{uuid}/workflows` ([#397](https://github.com/broadinstitute/wfl/pull/397))
- [GH-1222] Check for new work in TDR ([#371](https://github.com/broadinstitute/wfl/pull/371))
- [GH-1306] Add `workflows` multimethod for workloads ([#396](https://github.com/broadinstitute/wfl/pull/396))
- [GH-1215] COVID TerraExecutor/update-executor!
- [GH-1313] TerraWorkspaceSink/update-sink! ([#394](https://github.com/broadinstitute/wfl/pull/394))
- [GH-1311]: Create/Load COVID workloads ([#389](https://github.com/broadinstitute/wfl/pull/389))
- Bump lodash from 4.17.19 to 4.17.21 in /ui ([#390](https://github.com/broadinstitute/wfl/pull/390))
- Bump hosted-git-info from 2.8.8 to 2.8.9 in /ui ([#392](https://github.com/broadinstitute/wfl/pull/392))
- [GH-1301] Notify Workload Watchers when "User Visible" Exceptions Occur ([#386](https://github.com/broadinstitute/wfl/pull/386))
- Bump y18n from 4.0.0 to 4.0.1 in /ui ([#352](https://github.com/broadinstitute/wfl/pull/352))
- Update db schema again based on lasted discussions. ([#387](https://github.com/broadinstitute/wfl/pull/387))
- Bump url-parse from 1.4.7 to 1.5.1 in /ui ([#388](https://github.com/broadinstitute/wfl/pull/388))
- GH-1285: [COVID] Launch submissions through Rawls, and keep track of them ([#372](https://github.com/broadinstitute/wfl/pull/372))
- [GH-1295] Use Rawls to Import Workflow Outputs ([#384](https://github.com/broadinstitute/wfl/pull/384))
- [GH-1215] Import snapshots within COVID workload ([#376](https://github.com/broadinstitute/wfl/pull/376))
- Add multimethods for source, executor and sink operations ([#383](https://github.com/broadinstitute/wfl/pull/383))
- [GH-1213] Update DB schema for COVID workload creation ([#381](https://github.com/broadinstitute/wfl/pull/381))
- add interactive script ahead of covid-19 demo ([#380](https://github.com/broadinstitute/wfl/pull/380))
- Bump ssri from 6.0.1 to 6.0.2 in /ui ([#382](https://github.com/broadinstitute/wfl/pull/382))
- Update documentation and infrastructure for release candidates ([#377](https://github.com/broadinstitute/wfl/pull/377))
- [GH-1293] fix test-create-submissions-for-entity-set ([#378](https://github.com/broadinstitute/wfl/pull/378))
- [GH-1215] Add snapshot_reference_id to Sarscov2IlluminaFull table schema ([#375](https://github.com/broadinstitute/wfl/pull/375))
- Rename rawls/create-snapshot -> create-snapshot-reference ([#373](https://github.com/broadinstitute/wfl/pull/373))
- Add wfl.service/rawls.clj for interacting directly with Rawls API ([#370](https://github.com/broadinstitute/wfl/pull/370))
- GH-1272: Lists are not imported correctly into a Terra Workspace Entity ([#368](https://github.com/broadinstitute/wfl/pull/368))
- Create an interface all COVID work can build on top of. ([#369](https://github.com/broadinstitute/wfl/pull/369))
- GH-1226 Support entity set creation when creating submissions. ([#353](https://github.com/broadinstitute/wfl/pull/353))
- util/do-or-nil-silently should move to build.clj ([#367](https://github.com/broadinstitute/wfl/pull/367))
- bump develop to 0.7.0 ([#360](https://github.com/broadinstitute/wfl/pull/360))
- Snapshot creation uses datetime rather than date ([#355](https://github.com/broadinstitute/wfl/pull/355))

# Release 0.6.1
- [GH-1277] Prevent update loop from terminating ([#364](https://github.com/broadinstitute/wfl/pull/364))
- [GH-1284] Fix docker image generation ([#363](https://github.com/broadinstitute/wfl/pull/363))
Expand Down Expand Up @@ -121,4 +189,4 @@
- [GH-1013] Item Nesting V2 ([#188](https://github.com/broadinstitute/wfl/pull/188))
- [GH-1034] Fix reference_fasta function ([#194](https://github.com/broadinstitute/wfl/pull/194))
- [GH-771] WGS updates ([#191](https://github.com/broadinstitute/wfl/pull/191))
- [GH-819] External Exome Reprocessing ([#139](https://github.com/broadinstitute/wfl/pull/139))
- [GH-819] External Exome Reprocessing ([#139](https://github.com/broadinstitute/wfl/pull/139))
60 changes: 31 additions & 29 deletions api/build/build.clj
Original file line number Diff line number Diff line change
@@ -1,42 +1,40 @@
(ns build
(:require [clojure.data.xml :as xml]
[clojure.java.io :as io]
[clojure.pprint :refer [pprint]]
[clojure.string :as str]
[wfl.module.aou :as aou]
[wfl.module.wgs :as wgs]
[wfl.module.xx :as xx]
[wfl.module.sg :as sg]
(:require [clojure.data.xml :as xml]
[clojure.java.io :as io]
[clojure.pprint :refer [pprint]]
[clojure.string :as str]
[wfl.service.firecloud :as firecloud]
[wfl.util :as util])
[wfl.util :as util])
(:import [java.time OffsetDateTime]
[java.time.temporal ChronoUnit]))

(defmacro do-or-nil-silently
"Value of `body` or `nil` if it throws, without logging exceptions.
See also [[wfl.util/do-or-nil]]."
[& body]
`(try (do ~@body)
(catch Exception x#)))

;; Java chokes on colons in the version string of the jarfile manifest.
;; And GAE chokes on everything else.
;;
(def the-version
"A map of version information."
(letfn [(frob [{:keys [release path]}] [(util/basename path) release])]
(delay
(let [built (-> (OffsetDateTime/now)
(.truncatedTo ChronoUnit/SECONDS)
.toInstant .toString)
commit (util/shell! "git" "rev-parse" "HEAD")
committed (->> commit
(util/shell! "git" "show" "-s" "--format=%cI")
OffsetDateTime/parse .toInstant .toString)
clean? (util/do-or-nil-silently
(util/shell! "git" "diff-index" "--quiet" "HEAD"))]
(into
{:version (or (System/getenv "WFL_VERSION") "devel")
:commit commit
:committed committed
:built built
:user (or (System/getenv "USER") "wfl")}
(map frob [aou/workflow-wdl
sg/workflow-wdl
wgs/workflow-wdl
xx/workflow-wdl])))))
(util/shell! "git" "show" "-s" "--format=%cI")
OffsetDateTime/parse .toInstant .toString)
clean? (do-or-nil-silently
(util/shell! "git" "diff-index" "--quiet" "HEAD"))]
{:version (or (System/getenv "WFL_VERSION") "devel")
:commit commit
:committed committed
:built built
:user (or (System/getenv "USER") "wfl")})))

(defn write-the-version-file
"Write VERSION.edn into the RESOURCES directory."
Expand All @@ -57,7 +55,7 @@
:groupId (namespace artifactId)
:name "WorkFlow Launcher"
:url "https://github.com/broadinstitute/wfl.git"
:version (:version the-version)}))
:version (:version @the-version)}))

(defn update-the-pom
"Update the Project Object Model (pom.xml) file for this program."
Expand Down Expand Up @@ -97,7 +95,11 @@
(let [derived (str/join "/" [".." "derived" "api"])
resources (io/file derived "resources")
test-resources (io/file derived "test" "resources")]
(pprint the-version)
(write-the-version-file resources the-version)
(run! #(write-workflow-description test-resources %) (find-wdls))
(System/exit 0)))
(try
(pprint @the-version)
(write-the-version-file resources @the-version)
(run! #(write-workflow-description test-resources %) (find-wdls))
(System/exit 0)
(catch Throwable t
(pprint t)
(System/exit 1)))))
75 changes: 42 additions & 33 deletions api/deps.edn
Original file line number Diff line number Diff line change
Expand Up @@ -5,39 +5,40 @@
"clojars" {:url "https://clojars.org/repo"}}

:deps
{org.clojure/clojure {:mvn/version "1.10.1"}
{org.clojure/clojure {:mvn/version "1.10.3"}
org.clojure/data.csv {:mvn/version "1.0.0"}
org.clojure/data.json {:mvn/version "0.2.6"}
org.clojure/data.json {:mvn/version "2.3.0"}
org.clojure/data.xml {:mvn/version "0.2.0-alpha6"}
org.clojure/data.zip {:mvn/version "0.1.3"}
org.clojure/java.jdbc {:mvn/version "0.7.8"}
org.clojure/data.zip {:mvn/version "1.0.0"}
org.clojure/java.jdbc {:mvn/version "0.7.12"}
org.clojure/tools.logging {:mvn/version "1.1.0"}
amperity/vault-clj {:mvn/version "1.0.1"}
clj-http/clj-http {:mvn/version "3.7.0"}
clj-time/clj-time {:mvn/version "0.15.1"}
amperity/vault-clj {:mvn/version "1.0.3"}
clj-http/clj-http {:mvn/version "3.9.1"}
clj-time/clj-time {:mvn/version "0.15.2"}
javax.servlet/servlet-api {:mvn/version "2.5"}
javax/javaee-api {:mvn/version "7.0"}
metosin/reitit {:mvn/version "0.5.10" :exclusions [metosin/ring-swagger-ui]}
metosin/ring-http-response {:mvn/version "0.9.1"}
mysql/mysql-connector-java {:mvn/version "8.0.12"}
javax/javaee-api {:mvn/version "8.0.1"}
metosin/reitit {:mvn/version "0.5.13" :exclusions [metosin/ring-swagger-ui]}
metosin/ring-http-response {:mvn/version "0.9.2"}
mysql/mysql-connector-java {:mvn/version "8.0.25"}
ojdbc14/ojdbc14 {:mvn/version "10.2.0.1.0"}
org.apache.tika/tika-core {:mvn/version "1.19.1"}
org.apache.logging.log4j/log4j-api {:mvn/version "2.13.3"}
org.apache.logging.log4j/log4j-core {:mvn/version "2.13.3"}
org.apache.logging.log4j/log4j-slf4j-impl {:mvn/version "2.13.3"}
org.postgresql/postgresql {:mvn/version "42.2.9"}
org.apache.commons/commons-lang3 {:mvn/version "3.8.1"}
org.apache.tika/tika-core {:mvn/version "1.26"}
org.apache.logging.log4j/log4j-api {:mvn/version "2.14.1"}
org.apache.logging.log4j/log4j-core {:mvn/version "2.14.1"}
org.apache.logging.log4j/log4j-slf4j-impl {:mvn/version "2.14.1"}
org.postgresql/postgresql {:mvn/version "42.2.20"}
org.slf4j/slf4j-api {:mvn/version "1.7.30"}
ring-oauth2/ring-oauth2 {:mvn/version "0.1.4"}
ring/ring-core {:mvn/version "1.7.1"}
ring-oauth2/ring-oauth2 {:mvn/version "0.1.5"}
ring/ring-core {:mvn/version "1.9.3"}
ring/ring-defaults {:mvn/version "0.3.2"}
ring/ring-devel {:mvn/version "1.7.1"}
ring/ring-jetty-adapter {:mvn/version "1.8.2"}
ring/ring-json {:mvn/version "0.5.0"}
ring/ring-servlet {:mvn/version "1.7.1"}
com.google.auth/google-auth-library-oauth2-http {:mvn/version "0.23.0"}
com.google.cloud.sql/mysql-socket-factory-connector-j-8 {:mvn/version "1.0.11"}
com.google.cloud.sql/postgres-socket-factory {:mvn/version "1.0.15"}
com.google.cloud.sql/jdbc-socket-factory-core {:mvn/version "1.0.15"}}
ring/ring-devel {:mvn/version "1.9.3"}
ring/ring-jetty-adapter {:mvn/version "1.9.3"}
ring/ring-json {:mvn/version "0.5.1"}
ring/ring-servlet {:mvn/version "1.9.3"}
com.google.auth/google-auth-library-oauth2-http {:mvn/version "0.25.5"}
com.google.cloud.sql/mysql-socket-factory-connector-j-8 {:mvn/version "1.2.3"}
com.google.cloud.sql/postgres-socket-factory {:mvn/version "1.2.3"}
com.google.cloud.sql/jdbc-socket-factory-core {:mvn/version "1.2.3"}}

;; derived/api/src must come first so environment.clj is found before
;; placeholder in src/.
Expand All @@ -56,15 +57,15 @@
:main-opts ["-m" "cljfmt.main" "fix"]}

:kondo
{:extra-deps {clj-kondo/clj-kondo {:mvn/version "2020.02.28-1"}}
{:extra-deps {clj-kondo/clj-kondo {:mvn/version "2021.04.23"}}
:main-opts ["-m" "clj-kondo.main"]}

:kibit
{:extra-deps {jonase/kibit {:mvn/version "0.1.6"}}
{:extra-deps {jonase/kibit {:mvn/version "0.1.8"}}
:main-opts ["-e" "(use,'kibit.driver),(external-run,[\"src\"],nil)"]}

:liquibase
{:extra-deps {org.liquibase/liquibase-core {:mvn/version "4.0.0"
{:extra-deps {org.liquibase/liquibase-core {:mvn/version "4.3.5"
:exclusions [ch.qos.logback/logback-classic]}}
:extra-paths ["test"]
:main-opts ["-m" "wfl.tools.liquibase"]}
Expand All @@ -73,20 +74,28 @@
{:main-opts ["-m" "wfl.main"]}

:test
{:extra-deps {lambdaisland/kaocha {:mvn/version "1.0.632"}
{:extra-deps {lambdaisland/kaocha {:mvn/version "1.0.829"}
org.apache.commons/commons-io {:mvn/version "1.3.2"}
org.liquibase/liquibase-core {:mvn/version "4.0.0"
org.liquibase/liquibase-core {:mvn/version "4.3.5"
:exclusions [ch.qos.logback/logback-classic]}}
:extra-paths ["test" "../derived/api/test/resources"]
:main-opts ["-m" "kaocha.runner"]}

:parallel-test
{:extra-deps {org.liquibase/liquibase-core {:mvn/version "4.0.0"
{:extra-deps {org.liquibase/liquibase-core {:mvn/version "4.3.5"
:exclusions [ch.qos.logback/logback-classic]}}
:extra-paths ["test"]
:main-opts ["-m" "wfl.tools.parallel-runner"]}

:uberjar {:extra-deps {uberdeps/uberdeps {:mvn/version "1.0.3"}}}
:demo
{:extra-deps
{org.apache.commons/commons-io {:mvn/version "1.3.2"}
org.liquibase/liquibase-core {:mvn/version "4.3.5"
:exclusions [ch.qos.logback/logback-classic]}}
:extra-paths ["test" "../derived/api/test/resources"]
:main-opts ["-m" "wfl.system.cdc-covid19-surveillance-demo"]}

:uberjar {:extra-deps {uberdeps/uberdeps {:mvn/version "1.0.4"}}}

:prebuild {:extra-paths ["./build"] :exec-fn build/prebuild}

Expand Down
13 changes: 10 additions & 3 deletions api/module.mk
Original file line number Diff line number Diff line change
Expand Up @@ -76,10 +76,17 @@ $(SYSTEM): $(TEST_SCM_SRC)
$(TEE) $(DERIVED_MODULE_DIR)/system.log
@$(TOUCH) $@

DOCKER_API_IMAGE := broadinstitute/workflow-launcher-$(MODULE):$(WFL_VERSION)
DOCKER_IMAGE_NAME := broadinstitute/workflow-launcher-$(MODULE)
$(IMAGES): $(MODULE_DIR)/Dockerfile $(MODULE_DIR)/.dockerignore
$(DOCKER) build --file $< --tag $(DOCKER_API_IMAGE) $(PROJECT_DIR)
$(DOCKER) build \
--file $< \
--tag $(DOCKER_IMAGE_NAME):latest \
--tag $(DOCKER_IMAGE_NAME):$(WFL_VERSION) \
$(PROJECT_DIR)
@$(TOUCH) $@

$(CLEAN):
-$(DOCKER) image rm -f $(DOCKER_API_IMAGE)
-$(DOCKER) image rm -f $(DOCKER_IMAGE_NAME):$(WFL_VERSION)

$(DISTCLEAN):
-$(DOCKER) image rm -f $(DOCKER_IMAGE_NAME):latest
Loading

0 comments on commit 1705701

Please sign in to comment.