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

[NOT YET] All of Leo: code review #29

Closed
wants to merge 167 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
75b1e15
legalities
Jul 11, 2017
531ddf0
gitignore
Jul 11, 2017
f2ca14d
placeholder initial route and test
Jul 12, 2017
8a43494
hello travis
Jul 12, 2017
54aee79
rename travis
Jul 12, 2017
c3be7ea
coveralls
Jul 12, 2017
a1f508b
add build badges
helgridly Jul 12, 2017
87626dd
coveralls fixes
Jul 12, 2017
0ce4830
Get coveralls working
helgridly Jul 12, 2017
f67298e
update coveralls badge
helgridly Jul 13, 2017
59f62aa
adding simple Dockerfile
asingh7115 Jul 20, 2017
3cb25a8
add scripts to build jar/docker image
jacmrob Jul 20, 2017
420f443
oops
jacmrob Jul 20, 2017
57e7713
add git_model_hash back in
jacmrob Jul 20, 2017
dbcc9e1
Merge pull request #4 from broadinstitute/dockerfile_as
jacmrob Jul 20, 2017
030a2dc
GAWB-2339 Add swagger (#3)
helgridly Jul 21, 2017
00ec0de
Pulled in workbench-libs, removed ErrorReport copypasta (#5)
helgridly Jul 31, 2017
4f8d7ef
GAWB-2000: first try, jam some files in
asingh7115 Jul 21, 2017
1a9224b
GAWB-2000: changes to put route
asingh7115 Jul 25, 2017
49ed394
GAWB-2000: googleutilites for now
asingh7115 Jul 25, 2017
b06d7ba
GAWB-2000: util for now
asingh7115 Jul 25, 2017
d135cd2
GAWB-2000: dependencies for now, leo service, model, servicespec
asingh7115 Jul 25, 2017
29c7a7f
GAWB-2000: more changes
asingh7115 Jul 31, 2017
2528393
rebase fixes
Jul 31, 2017
9f7f3b3
GAWB-2000: tests
asingh7115 Aug 2, 2017
3cd1e77
GAWB-2000: fix swagger
asingh7115 Aug 2, 2017
28ad75b
GAWB-2000: ClusterResponse, review suggestions
asingh7115 Aug 3, 2017
014a354
GAWB-2000: change variable nameg
asingh7115 Aug 3, 2017
7224807
GAWB-2000: adding labels to clusters + test dummy conf
asingh7115 Aug 3, 2017
4661d71
GAWB-2000: fixing test conf
asingh7115 Aug 3, 2017
66d27d1
GAWB-2000: fixing swagger desc
asingh7115 Aug 3, 2017
05692a1
remove actor implicits where not needed
jmthibault79 Aug 4, 2017
94a76d3
Merge pull request #7 from broadinstitute/jt_implicits
ansingh7115 Aug 4, 2017
a9dd146
GAWB-2000: review suggestions
asingh7115 Aug 4, 2017
6e773ad
Merge pull request #6 from broadinstitute/gawb2000_as
ansingh7115 Aug 4, 2017
63e4a02
Leo code and dependency cleanup (#8)
rtitle Aug 4, 2017
5e6cb42
Removed excludeAllAkka() exclusion now that akka deps are not transit…
rtitle Aug 9, 2017
5ab8ac4
Store created clusters in a DB
jmthibault79 Aug 4, 2017
9c3fe0f
Merge pull request #10 from broadinstitute/jt_db
jmthibault79 Aug 11, 2017
41da956
GAWB-2268: dockerfile and attending configs
asingh7115 Aug 14, 2017
c5f08b0
GAWB-2268: serving up cluster url
asingh7115 Aug 14, 2017
4c10f1b
GAWB-2268: adding url to test config
asingh7115 Aug 14, 2017
48e6d7f
GAWB-2268: review suggestion changes
asingh7115 Aug 15, 2017
92e64b3
Merge pull request #14 from broadinstitute/gawb2268_2
ansingh7115 Aug 15, 2017
ec04623
GAWB-2268: fixing dockerfile
asingh7115 Aug 16, 2017
569bc61
GAWB-2268: final
asingh7115 Aug 16, 2017
d882708
GAWB-2472: changing jackson version
asingh7115 Aug 16, 2017
48991bb
Merge pull request #17 from broadinstitute/gawb2472
ansingh7115 Aug 16, 2017
1d3edbd
Need to specify the MySQL driver for HikariCP to work (#16)
rtitle Aug 16, 2017
5113e4d
lowercase for user name
ansingh7115 Aug 16, 2017
eec2a44
[GAWB-2384] Notebook Service: Scala code to proxy websocket connectio…
rtitle Aug 16, 2017
b453f1c
Merge pull request #15 from broadinstitute/gawb2268_2
ansingh7115 Aug 18, 2017
25ef6d7
leo build fix
asingh7115 Aug 22, 2017
7538ee4
different stratgey
asingh7115 Aug 22, 2017
59bc11a
fiddling
asingh7115 Aug 22, 2017
198ad91
this one worked before
asingh7115 Aug 22, 2017
7aecee6
add test mysql for jenkins build job
jacmrob Aug 22, 2017
4f822d3
fix name
jacmrob Aug 22, 2017
63d105a
add mysql host and port
jacmrob Aug 22, 2017
d978704
duh add mysql container link
jacmrob Aug 22, 2017
69f526a
make test db name consistent
jacmrob Aug 22, 2017
bf0dadf
Merge pull request #18 from broadinstitute/leo-build-fix
ansingh7115 Aug 22, 2017
8abb80d
reshuffled database things into DataAccess class (#19)
helgridly Aug 25, 2017
3eb1dd3
Build script updates
jmthibault79 Aug 29, 2017
9505159
Merge pull request #23 from broadinstitute/jt_build_scripts
jmthibault79 Aug 29, 2017
8e679d8
fix mysql build issue
jacmrob Aug 29, 2017
2afcbdb
fix
jacmrob Aug 29, 2017
b1c134d
fix container link
jacmrob Aug 29, 2017
54d32c1
oops
jacmrob Aug 29, 2017
ee74d9c
put it back
jacmrob Aug 29, 2017
54a7f29
another oops
jacmrob Aug 29, 2017
b31cdaa
oops 3
jacmrob Aug 29, 2017
0bd54b5
Merge pull request #24 from broadinstitute/jr-fix-test-mysql
jacmrob Aug 29, 2017
ea1084a
GET cluster details endpoint that users can poll to see if they're re…
helgridly Aug 30, 2017
d08f0e8
change mysql port #
jacmrob Aug 30, 2017
2701061
Merge pull request #25 from broadinstitute/jr_change_mysql_port
jacmrob Aug 30, 2017
ea56b82
make swagger know about auth (#26)
helgridly Aug 31, 2017
7631fe8
Fix swagger auth (#27)
helgridly Aug 31, 2017
2424044
GAWB-2271 - Delete cluster endpoint for leonardo (#22)
vkumra-broad Sep 1, 2017
ddf5a04
GIT_MODEL_HASH is the wrong word (#30)
helgridly Sep 1, 2017
7b1acdf
[GAWB-2263] Notebook Service: Implement the GET /clusters endpoint fo…
rtitle Sep 1, 2017
0bf8327
New-style PR checkboxes (#31)
helgridly Sep 1, 2017
0f3913a
GAWB-2287: Cluster Initialization and support for GET (#28)
ansingh7115 Sep 12, 2017
208634e
Us gawb 2354 (#34)
UrsaStutsman Sep 13, 2017
a0467ed
[GAWB-2498] Notebook Service: poll Dataproc to get cluster IP (#33)
rtitle Sep 14, 2017
deb5f13
Add log statement for failed Google requests for easier debugging
rtitle Sep 14, 2017
7c9fb38
Update README.md
UrsaStutsman Sep 14, 2017
958b2e0
Use cookie-based auth for the Jupyter proxy (#35)
rtitle Sep 15, 2017
8ead68a
[GAWB-2535] Notebook Service: support user-defined notebook extension…
rtitle Sep 18, 2017
7ae732e
[GAWB-2002] Implement the GET /clusters endpoint to list notebook ser…
rtitle Sep 20, 2017
c707006
GAWB-2613 Upgrade Hail version (#38)
helgridly Sep 25, 2017
4327268
GAWB-2611 Add leo-demo app credentials (#39)
vkumra-broad Sep 26, 2017
42e3540
[GAWB-2629] Delete the init bucket once the Leo cluster is ready (#41)
rtitle Oct 2, 2017
304d7e6
GAWB-2623: Endpoint to GET a list of clusters that are not deleted (#40)
ansingh7115 Oct 3, 2017
9edf7cf
add status enums to swagger (#43)
helgridly Oct 3, 2017
8ca54bf
Use value classes instead of strings
jmthibault79 Oct 3, 2017
6e6bc8a
GAWB-2624: adding build/push for leo notebooks docker image (#44)
ansingh7115 Oct 5, 2017
276fe1f
Hello-World integration tests using the automation infrastructure
jmthibault79 Oct 3, 2017
4fbda84
Potential fix for jupyter docker build (#48)
rtitle Oct 10, 2017
9cba12c
Save the init bucket in the db (#50)
helgridly Oct 12, 2017
1280a40
fix for conf fail (#51)
helgridly Oct 12, 2017
db1cfcf
Don't need to info log on every request (#52)
rtitle Oct 12, 2017
214c3f0
GAWB - 2627 - Allow multiple clusters with same name (#49)
vkumra-broad Oct 12, 2017
8e84bae
GAWB-2621, GAWB-2628: default cluster labels and dividing config
asingh7115 Oct 6, 2017
4e1b521
Update README.md
rtitle Oct 16, 2017
70478c9
update third-party dependency versions based on security scans (#53)
davidangb Oct 16, 2017
c0266da
Add basic UserInfo checking to Leo. This is not actually used yet. (#54)
rtitle Oct 16, 2017
feb6dae
Set OAuth2 scopes on cluster creation, and don't send the sa key json…
rtitle Oct 17, 2017
225baf5
Swintegration update to work with QA and recent changes (#57)
jmthibault79 Oct 19, 2017
b2e308b
Run integration tests in Jenkins (#59)
jmthibault79 Oct 23, 2017
4e4e107
GAWB-2665: Whitelisting Endpoints (#56)
ansingh7115 Oct 25, 2017
f68611b
Fix bug with cookie auth expiration (#61)
rtitle Oct 25, 2017
a67664f
[GAWB-2648] Leo call sam to create pet service account at cluster cre…
rtitle Oct 27, 2017
e91ae5d
GAWB-2653 Set init bucket acl to user specified SA and leo only (#60)
helgridly Nov 2, 2017
9be544d
run integration tests in docker (#67)
jmthibault79 Nov 2, 2017
a907af7
[GAWB-2696] Leo: make /status endpoint (#65)
rtitle Nov 2, 2017
dafd0ef
Fix swagger indentation and improve StatusService logging (#69)
rtitle Nov 3, 2017
e2c6697
GAWB-2662: Configurable clusters (#63)
ansingh7115 Nov 5, 2017
1064b42
GAWB-2799, GAWB-2823: Leo multi project support (#68)
rtitle Nov 6, 2017
2898585
FCToken -> FCtoken (#70)
helgridly Nov 8, 2017
e12d988
Fix NPEs in health checker (#72)
rtitle Nov 13, 2017
df05fc4
[GAWB-2818] Leonardo: Fix cookie auth expiration using a notebook ext…
rtitle Nov 13, 2017
0c4798c
Put pet creds on master and workers (#73)
rtitle Nov 17, 2017
c44ff63
GAWB-2887 Set hadoop auth properties and Dataproc staging bucket ACLs…
jmthibault79 Nov 19, 2017
e62b79d
bad bucket! (#75)
helgridly Nov 20, 2017
aa152d4
GAWB-2617 Automated Jupyter notebook tests (#66)
jmthibault79 Nov 21, 2017
a826181
upgrade jackson version (#76)
davidangb Nov 22, 2017
a0f3647
more than two executor instances, please (#77)
helgridly Nov 22, 2017
3f58462
Attempt to de-flake GAWB-2617 tests (#78)
jmthibault79 Nov 28, 2017
d60831b
Big libs update (#82)
rtitle Nov 29, 2017
163993f
Use GoogleProject from workbench-libs (#84)
jmthibault79 Nov 29, 2017
71e851c
GoogleServiceAccount -> WorkbenchEmail (#85)
jmthibault79 Nov 30, 2017
c612861
Delete the SA key when the cluster errors out in ClusterMonitorActor.…
rtitle Dec 4, 2017
c1e8142
first pass leo blurb (#88)
helgridly Dec 4, 2017
ba103cb
GAWB 2778 - Delete error clusters (#83)
vkumra-broad Dec 6, 2017
b47e432
GAWB-2895 Auth provider interface (#81)
helgridly Dec 6, 2017
009a29b
link out to overview on wiki
helgridly Dec 7, 2017
b54a872
GAWB-2797: Make ready clusters immediately proxy-able (#87)
jmthibault79 Dec 7, 2017
91be516
Minor updates to repo documentation (#91)
Dec 8, 2017
d8b38f9
Update LICENSE.txt
Dec 8, 2017
e3492a7
3 + 2 = fix
helgridly Dec 11, 2017
b2ec3ec
[GAWB-2942] Leo pets per project: Make ServiceAccountProvider interfa…
rtitle Dec 11, 2017
7cb3eb1
fix for minor swagger lies (#96)
helgridly Dec 14, 2017
0406950
Leo pets per project (#95)
rtitle Dec 14, 2017
41d48cf
Multiline keys must be indented (#97)
rtitle Dec 14, 2017
34601da
Dataproc Worker concurrency bug (#99)
rtitle Dec 18, 2017
50346da
added cluster creator to default set of labels (#98)
helgridly Dec 19, 2017
ec6ee59
Selenium upgrade to fix download issues (#100)
jmthibault79 Dec 20, 2017
b4ad84d
GAWB-2386 stub /localize endpoint in Jupyter API (#101)
helgridly Dec 30, 2017
e94bbe4
remove dependency on dsde-toolbox (#106)
helgridly Jan 2, 2018
ddf7869
GAWB-2386, GAWB-2407 loc/deloc (#104)
helgridly Jan 4, 2018
cfc455a
Ccross-domain cookie auth (#105)
rtitle Jan 5, 2018
d261216
GAWB 2608 - add AoU client library (#107)
vkumra-broad Jan 5, 2018
d066831
GAWB 3026 - give clusterserviceaccount access to dataproc bucket (#111)
vkumra-broad Jan 11, 2018
148aab0
s/FCtoken/LeoToken (#109)
rtitle Jan 11, 2018
6d404ab
GAWB-2838: BigQuery inside notebooks (#113)
jmthibault79 Jan 11, 2018
3fdd99b
GAWB-3023 Create new billing project for every new-cluster test (#114)
jmthibault79 Jan 17, 2018
0c46b3f
Slimmer Jupyter docker image (#119)
rtitle Jan 19, 2018
0b51524
GAWB-3082: Fix intermittent unit test failure in ProxyRoutesSpec (#124)
rtitle Jan 23, 2018
98dd9ef
Fix ProxyRoutesSpec for real (#125)
rtitle Jan 24, 2018
c55f81b
GAWB-2896: Do Sam Auth (#117)
ansingh7115 Jan 24, 2018
17a7b92
GAWB-3041 make notebooky tests reuse the same cluster (#121)
helgridly Jan 24, 2018
09167fe
Moving automation into workbench libs (#134)
UrsaStutsman Jan 25, 2018
e043ffd
Update README.md
rtitle Jan 25, 2018
f04c6e9
configurable providers are live now
helgridly Jan 26, 2018
99bacf5
Leo/Sam auth: handle Sam API exceptions in SamAuthProvider (#138)
rtitle Jan 29, 2018
5258227
GAWB-3108 Defer Deletion of Sam Cluster Resources (#139)
jmthibault79 Jan 30, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .coveralls.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
service_name: travis-ci
14 changes: 14 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
\<your comments for this PR go here\>

Have you read [CONTRIBUTING.md](../CONTRIBUTING.md) lately? If not, do that first.

I, the developer opening this PR, do solemnly pinky swear that:

- [ ] I've documented my API changes in Swagger

In all cases:

- [ ] Get two thumbsworth of review and PO signoff if necessary
- [ ] Verify all tests go green
- [ ] Squash and merge; you can delete your branch after this
- [ ] Test this change deployed correctly and works on dev environment after deployment
23 changes: 23 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
.idea/
/project/boot/
/project/plugins/project
target/
lib_managed/
src_managed/
test-output/
*.iml
.classpath_nb
.cache
.classpath
.project
/.settings/
/bin/
*.log
/config/
*.pid

# Automation exclusions
automation/chrome/
automation/failure_screenshots/
automation/src/test/resources/application.conf
automation/src/test/resources/firecloud-account.pem
25 changes: 25 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
jdk:
- oraclejdk8

language: scala

scala:
- 2.12.2

sudo: required

services:
- docker

before_install:
- docker rm -f mysql || true # in case the after_success step does not run
- docker pull mysql/mysql-server:5.6
# port 3306 is not available because Travis runs its own MySQL after 2006-12-01
- docker run -p 3307:3306 --name mysql -e MYSQL_ROOT_PASSWORD=leonardo-test -e MYSQL_USER=leonardo-test -e MYSQL_PASSWORD=leonardo-test -e MYSQL_DATABASE=leotestdb -d mysql/mysql-server:5.6

script:
- SBT_OPTS=-Xmx3g sbt -Denv.type=test -Dmysql.host=localhost -Dmysql.port=3307 clean coverage test coverageReport

after_success:
- SBT_OPTS=-Xmx3g sbt coveralls
- docker rm -f mysql
30 changes: 30 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Contributing

## External Contributions
External contribution guidelines coming soon. In the interim, comments and questions are welcome in the [Issues](https://github.com/DataBiosphere/leonardo/issues).

## Opening a Pull Request

You most likely want to do your work on a feature branch based on develop. There is no explicit naming convention; we usually use some combination of the JIRA issue number and something alluding to the work we're doing.

When you open a pull request, add the JIRA issue number (e.g. `GAWB-1234`) to the PR title. This will make a reference from JIRA to the GitHub issue. Add a brief description of your changes above the PR checkbox template.

This is also a good opportunity to check that the acceptance criteria for your JIRA ticket exists and is met. Check with your PO if you have any questions there. You should also fill out a summary to go in the release notes and some instructions on what QA should be looking at.

The checkboxes in the PR are important reminders to you, the developer. Please be conscientious and run through them when you open a PR.

## PR approval process

If your PR is particularly complex it can be helpful to add some commentary, either in the description or line-by-line in the GitHub PR view. In the latter case, consider whether those comments should be in the code itself.

You should get review from two people (either through GitHub's request-review feature, or by assigning the PR to them); one of them should probably be your tech lead, though ask. Do chase your reviewers (or find others) if they're slow; we don't like to let PRs linger. If you get PR feedback it's back to you to address it and then nudge your reviewers for re-review.

Your PR is ready to merge when all of the following things are true:

1. Two reviewers have thumbed (or otherwise approved) your PR
2. If your change is user-facing, your PO has seen it and signed off
3. All tests pass, including coverage

## API changes

All changes to the API _must_ be documented in Swagger.
12 changes: 12 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
FROM openjdk:8

EXPOSE 8080
EXPOSE 5050

ENV GIT_HASH $GIT_HASH

RUN mkdir /leonardo
COPY ./leonardo*.jar /leonardo

# Add Leonardo as a service (it will start when the container starts)
CMD java $JAVA_OPTS -jar $(find /leonardo -name 'leonardo*.jar')
177 changes: 177 additions & 0 deletions LICENSE-ASL-2.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,177 @@

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

1. Definitions.

"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.

"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.

"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.

"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.

"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.

"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.

"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).

"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.

"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."

"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.

2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.

3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.

4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:

(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and

(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and

(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and

(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.

You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.

5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.

6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.

7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.

8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.

9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.

END OF TERMS AND CONDITIONS
27 changes: 27 additions & 0 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
Copyright (c) 2017, Broad Institute, Inc., Verily Life Sciences LLC
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
Loading