Skip to content
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

[GH-1641] WFL Release v0.18.0 #599

Merged
merged 203 commits into from Apr 1, 2022
Merged

[GH-1641] WFL Release v0.18.0 #599

merged 203 commits into from Apr 1, 2022

Conversation

okotsopoulos
Copy link
Contributor

@okotsopoulos okotsopoulos commented Mar 31, 2022

Purpose

Create WFL v0.18.0 release with small Slack fixes / improvements, and all of the rest of my code before I transition fully to Jade Core team.

Changes

  • GH-1623 workloads/update-workload! should define own transactions (#597)
  • GH-1640 Broken Terra Submission links in completed workflow Slack messages (#598)
  • GH-1639 Pin jinja2 version for mkdocks compatibility (#596)
  • GH-1433 No TDR temporary snapshots in tests (#595)
  • GH-1619 Add workload info to sink logs (#594)
  • GH-1638 Disable link unfurling when Slacking watchers (#593)

System Tests

Passed:

wm111-e35:wfl okotsopo$ make TARGET=system
export CPCACHE=/Users/okotsopo/wfl/api/.cpcache;            \
	export WFL_WFL_URL=http://localhost:3000; \
	clojure  -M:parallel-test wfl.system.v1-endpoint-test | \
	tee /Users/okotsopo/wfl/derived/api/system.log
WARNING: Use of :paths external to the project has been deprecated, please remove: ../derived/api/src
WARNING: Use of :paths external to the project has been deprecated, please remove: ../derived/api/resources

Ran 33 tests containing 374 assertions.
0 failures, 0 errors.
api system finished on Thu Mar 31 12:33:43 EDT 2022
docs system finished on Thu Mar 31 12:33:43 EDT 2022
functions/aou system finished on Thu Mar 31 12:33:44 EDT 2022
functions/sg system finished on Thu Mar 31 12:33:44 EDT 2022
helm system finished on Thu Mar 31 12:33:44 EDT 2022
ui system finished on Thu Mar 31 12:33:44 EDT 2022

Review Instructions

@sjacobs146 -- please read through this section in its entirety: https://broadinstitute.atlassian.net/wiki/spaces/~206513899/pages/3020554245/WFL+v0.10.x+release+and+deployment+notes#:check_mark:-Release-v0.10.0

I made a few updates to it so that it reflects what I did to generate this release branch and PR.

Most notable is that I explicitly point out the funny smells and manual interventions I needed to take along the way!

We never had time to prioritize untangling our "gitflow" release process / squash merge issues that result in all of the commits from WFL v0.7.0 onward showing up in the Github history of the release :( we usually say, please disregard the commit list when reviewing a release PR which isn't great.

A note on merging release PRs

The "squash merge" behavior by default lists all 200+ commits as its commit message:

Screen Shot 2022-04-01 at 4 35 52 PM

I copy the contents of the v0.18.0 changelog as the commit message instead:

Screen Shot 2022-04-01 at 4 36 33 PM

rhiananthony and others added 30 commits April 7, 2021 11:00
* Snapshot creation uses datetime rather than date

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

Co-authored-by: rhiananthony <ranthony@broadinstitute.org>
…ultiple 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.
…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.
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
* Draft doc module for SG.
* Update navigation Camel^H^H^H^H^HYAML.
The `Dockerfile` is being invoked in the root directory - we don't need
to add the parent directory, just the current one.
Catch all throwables to make sure a workload failure doesn't bring down
workflow-launcher.
* util/do-or-nil-silently should move to build.clj

* Fixed indentation to match standard
* 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 hornets work on top of.

* Apply suggestions from code review

* Update readme.md

Build Boad.
…ty (#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!.
We create the snapshot in the TDR, and link to it in the workspace via Rawls.
…ema (#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
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
- 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
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* 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
* 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 <tbl3rd@gmail.com>
Co-authored-by: Tom Lyons <tbl@broadinstitute.org>

* Resolve merge conflicts.

* Fix issues generated from rebasing.

* Fix the failing integration tests.

Co-authored-by: rhiananthony <ranthony@broadinstitute.org>
Co-authored-by: Edmund Higham <ehigham@users.noreply.github.com>
Co-authored-by: Tom Lyons <tbl3rd@gmail.com>
Co-authored-by: Tom Lyons <tbl@broadinstitute.org>
* 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
- 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)
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.
…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.
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] <support@github.com>

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

* Make the names more clear.

* Address comments.

* Switch to SQL syntax from XML.

* Address more comments.

* one more update.
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] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ur (#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.
tbl3rd and others added 23 commits February 17, 2022 09:30
* Set the API's image pullPolicy to Always.
* Bump another random "semantic" version number.
* Update reitit.
* Reduce cleverness.
* Expose the logging_level API.
* Add logging_level endpoints.
* Fix bug in level-string? ... jeez.
* Add logging_level endpoint test.
* clojure -M:format` in this directory.
* Respond to OK's comments.
And remove unnecessary module imports in `wfl.api.handlers`:
previously WFL would complain about invalid pipelines when creating workloads without these imports,
but this no longer seems to be the case.
Define concise, consistent workload representations for logging.
Integrate into server, slack, and source (for staged workloads) logs.
…-filters. (#583)

* Look at only the first 7 workloads returned.
* Simplify.
Slack token now stored in environment variable, and propagated from Vault to GitHub Secrets via Atlantis.
…oud (#585)

And log warning instead of error on method config version mismatch.
GH-1629 TerraExecutor gets method configuration version from Firecloud (#585)
GH-1553 GH-1604 Add error handling to Slack service (#584)
GH-1628 Look at the first 7 workloads returned in test-workflows-by-filters. (#583)
GH-1617 Consistent workload representation for logs (#579)
GH-1624 Rename covid -> staged in code, docs (#580)
Now Slack notifications are always enabled.
#591)

And fix failing Firecloud integration tests by referencing a new unarchived workflow.
GH-1592 GH-1635 Notify Slack watchers on Terra submission creation (#591)
GH-1593 Notify Slack watchers on failed TDR snapshot jobs (#590)
GH-1618 Add workload info to executor logs (#589)
GH-1633 Remove WFL_SLACK_ENABLED feature switch (#587)
Instead, we can rely on temporary datasets which automatically delete any of their snapshots before the dataset.
@okotsopoulos okotsopoulos marked this pull request as ready for review March 31, 2022 20:23
Copy link
Contributor

@tbl3rd tbl3rd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The top and bottom look good.

@okotsopoulos okotsopoulos merged commit 8b59914 into main Apr 1, 2022
@okotsopoulos okotsopoulos deleted the release/0.18.0-rc branch April 1, 2022 20:37
okotsopoulos added a commit that referenced this pull request Apr 4, 2022
GH-1623 workloads/update-workload! should define own transactions (#597)
GH-1640 Broken Terra Submission links in completed workflow Slack messages (#598)
GH-1639 Pin jinja2 version for mkdocks compatibility (#596)
GH-1433 No TDR temporary snapshots in tests (#595)
GH-1619 Add workload info to sink logs (#594)
GH-1638 Disable link unfurling when Slacking watchers (#593)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants