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

Spark 3.3.0 - WIP. #7920

Closed
wants to merge 104 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
ec07eea
Attempt to build with Java 17 - WIP.
cmnbroad Jun 20, 2022
2770318
Upgrade gradle to 7.4.2.
cmnbroad Jun 20, 2022
02a15f8
Remove doclet code.
cmnbroad Jun 20, 2022
9e3c89c
Oh yeah remove the doclet tests too.
cmnbroad Jun 20, 2022
a9e252e
Temporarily pretend we don't need SecurityManager.
cmnbroad Jun 20, 2022
9b044c6
Spark 3.3.0.
cmnbroad Jun 21, 2022
866d91e
Suppress more deprecation warnings.
cmnbroad Jun 28, 2022
5c049e6
Remove guava lists.
cmnbroad Jun 28, 2022
098c6ce
Upgrade Scala - WIP.
cmnbroad Jul 6, 2022
3168672
More exports/opens clauses.
cmnbroad Jul 6, 2022
5ec48fc
Revert problematic Scala upgrade.
cmnbroad Jul 6, 2022
7a95da7
Open java.lang.invoke.
cmnbroad Jul 6, 2022
7285665
Open sun.nio.fs.
cmnbroad Jul 7, 2022
f41eee5
Support changd avro API.
cmnbroad Jul 11, 2022
d792d48
Upgrade jacoco for Java 17.
cmnbroad Jul 11, 2022
068c493
Add opens for jacoco.
cmnbroad Jul 11, 2022
014e101
Try running jacoco with --daemon.
cmnbroad Jul 11, 2022
294b10c
Temporarily update .seg files for ModelSegmentsIntegrationTest.
cmnbroad Jul 12, 2022
3741c42
Remove unused PosteriorSummary and friends.
cmnbroad Jul 12, 2022
92b7f16
I feel lucky.
cmnbroad Jul 12, 2022
56c8a09
Remove unnecessary github action job matrix entries.
cmnbroad Jul 12, 2022
65de87d
Update job matrix for remaining tasks.
cmnbroad Jul 12, 2022
a8fdca2
Fix expired google cloud key.
cmnbroad Jul 12, 2022
e1ad86e
You have to update ALL the job matrix entires.
cmnbroad Jul 12, 2022
3f97219
Update Docker file for google key.
cmnbroad Jul 12, 2022
789f5bd
Fix statement order.
cmnbroad Jul 12, 2022
5cff122
Not sudo.
cmnbroad Jul 12, 2022
e5bd651
Pin commons-math3 to 3.5 and revert changes to expected files for Mod…
cmnbroad Jul 12, 2022
0df59c4
Check for failures with scala 11.
cmnbroad Jul 12, 2022
c2640b6
Revert "Check for failures with scala 11."
cmnbroad Jul 13, 2022
ec3ea0c
Update ModelSegmentsIntegration test using values resulting for commo…
cmnbroad Jul 13, 2022
fb2a649
Fix Docker build.
cmnbroad Jul 13, 2022
5c5204c
Temporarily disable all gatkDoc dependencies.
cmnbroad Jul 18, 2022
0f9111b
Fix docker java path, fix gradle dependency prereqs.
cmnbroad Jul 18, 2022
b133ea4
Fix docker second stage.
cmnbroad Jul 18, 2022
bc4a917
Update order.
cmnbroad Jul 19, 2022
f73c9cf
Don't apt-upgrade again.
cmnbroad Jul 19, 2022
182fa95
Update gatk script.
cmnbroad Jul 19, 2022
91a20c0
Oh there is another gradle file too.
cmnbroad Jul 19, 2022
a612ee7
Remove unnecessary and problematic non-test closure.
cmnbroad Jul 20, 2022
0dffd93
Update jvmargs.
cmnbroad Jul 30, 2022
132ea7b
Revert "Update jvmargs."
cmnbroad Jul 30, 2022
d6b7745
Move jmvargs.
cmnbroad Jul 30, 2022
b18936e
Use open rather than export (--add-opens vs --add-export) for sun.nio.ch
cmnbroad Jul 30, 2022
5157c99
Use folder of classes rather than separate jars for the docker tests.
cmnbroad Aug 18, 2022
47818b7
Update docker build script.
cmnbroad Aug 22, 2022
b195ea2
Add docker trace.
cmnbroad Aug 22, 2022
e8a713a
Set file permissions.
cmnbroad Aug 22, 2022
f7c0c96
TEMP change to pre-create testclass dir.
cmnbroad Aug 22, 2022
9607336
Fix ls command.
cmnbroad Aug 22, 2022
c307253
Update file perms.
cmnbroad Aug 22, 2022
305fbb8
More permissions.
cmnbroad Aug 22, 2022
0bf0737
More updates.
cmnbroad Aug 22, 2022
789e797
Move test classes dir so it is onwed by root.
cmnbroad Aug 22, 2022
34b112d
Fix bad command.
cmnbroad Aug 22, 2022
c83795d
Check files post extract.
cmnbroad Aug 23, 2022
a0e2dbd
Smarter logging.
cmnbroad Aug 23, 2022
6ee5f2f
Update file logging command.
cmnbroad Aug 23, 2022
9be9332
Spill cromwell logs.
cmnbroad Aug 23, 2022
a3026d7
Fix last commit.
cmnbroad Aug 23, 2022
5438ef2
Fix the fix.
cmnbroad Aug 23, 2022
237a80b
update find.
cmnbroad Aug 23, 2022
b370a50
Try running the docker tests using an uber test jar.
cmnbroad Aug 23, 2022
9dca49d
Revert "Try running the docker tests using an uber test jar."
cmnbroad Aug 23, 2022
d97c108
Try utf-8 encoding with flat classes.
cmnbroad Aug 23, 2022
02b1b0f
Try filtering out the shapeless class entirely.
cmnbroad Aug 23, 2022
d238283
Set fileMode.
cmnbroad Aug 25, 2022
de037cd
Try an alternative file copy task.
cmnbroad Aug 29, 2022
b9f09f4
Exclude META_INF.
cmnbroad Aug 29, 2022
56d75d6
Set duplicatesStrategy.
cmnbroad Aug 29, 2022
c286883
Upgrade hadoop.
cmnbroad Aug 29, 2022
27ecf1a
Add the shapeless filter.
cmnbroad Aug 29, 2022
56c3fb7
Filter spire.
cmnbroad Aug 30, 2022
fbd8cfc
Update messages.
cmnbroad Aug 30, 2022
8e3b14a
Use the correct classpath.
cmnbroad Aug 30, 2022
6ad4ee5
Restore (incorrect) isJavaNN call.
cmnbroad Aug 30, 2022
7e46c0b
Add TODO comment.
cmnbroad Aug 30, 2022
d4d86f0
Revert to multiple jars.
cmnbroad Aug 30, 2022
77d5b16
Update CP_DIR.
cmnbroad Aug 30, 2022
df915ed
Try not caching.
cmnbroad Aug 30, 2022
7e15c4c
Revert "Try not caching."
cmnbroad Aug 30, 2022
65e2d89
Temporarily revert missing io redirection fixes.
cmnbroad Aug 30, 2022
69a747e
Revert unpackTestJars.
cmnbroad Aug 30, 2022
c0a7ee2
Export not open.
cmnbroad Aug 30, 2022
1972474
Use --add-opens instead of --add-exports.
cmnbroad Aug 31, 2022
f399f5a
More opens for spark test code.
cmnbroad Aug 31, 2022
c06cbed
Fix opens.
cmnbroad Aug 31, 2022
9c273c4
More opens.
cmnbroad Aug 31, 2022
fec786a
Upgrade kryo.
cmnbroad Aug 31, 2022
df9c068
Use older kryo.
cmnbroad Sep 1, 2022
7949651
More opens.
cmnbroad Sep 1, 2022
d5dddbb
More opens.
cmnbroad Sep 1, 2022
50a8766
Display jvm args.
cmnbroad Sep 1, 2022
8109c70
Set args directly.
cmnbroad Sep 1, 2022
389ba86
Remove jacoco jvm args.
cmnbroad Sep 1, 2022
63abfc6
Fix opens.
cmnbroad Sep 1, 2022
5e0adff
More opens.
cmnbroad Sep 2, 2022
b101656
Open java.lang.module.
cmnbroad Sep 2, 2022
21ebfae
Lambda serialization, try forcing jetty.
cmnbroad Sep 6, 2022
949cd5d
Upgrade gradle to 7.5.1.
cmnbroad Sep 6, 2022
d5cf9d7
Use gradle daemon.
cmnbroad Sep 7, 2022
cb66210
Use newest jetty.
cmnbroad Sep 7, 2022
34c96c4
Update opens.
cmnbroad Sep 7, 2022
6977dd8
Revert jetty.
cmnbroad Sep 7, 2022
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
6 changes: 3 additions & 3 deletions .github/actions/upload-gatk-test-results/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,10 @@ inputs:
description: 'The job-unique identifier to use for uploading the results of this run into a google bucket'
required: true
is-docker:
description: 'Whether to label the uplaod artifact as coming from a docker test'
description: 'Whether to label the upload artifact as coming from a docker test'
required: false
identifier:
description: 'Identifier to use for finding the unique name for jobs in order to determine html logs location (eg. "Java 8 build and test integration")'
description: 'Identifier to use for finding the unique name for jobs in order to determine html logs location (eg. "Java 17 build and test integration")'
required: true
## Secrets and token inputs
repo-token:
Expand All @@ -23,7 +23,7 @@ inputs:
bot-comment-key:
description: 'Key corresponding to the user account to be used for making comments on github about test failures'
required: false
## option to skip all but the artifact uplaod
## option to skip all but the artifact upload
only-artifact:
description: 'if "true" this will skip any uploading steps that require permissions and only upload the artifact file'
required: false
Expand Down
45 changes: 23 additions & 22 deletions .github/workflows/gatk-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,19 +73,10 @@ jobs:
needs: check-secrets
strategy:
matrix:
java: [ 8, 11 ]
java: [ 17 ]
experimental: [ false ]
scalaVersion: [ 2.11, 2.12 ]
scalaVersion: [ 2.12 ]
testType: [ cloud, integration, unit ]
exclude:
- java: 11
scalaVersion: 2.11
- java: 8
scalaVersion: 2.12
- java: 8
testType: integration
- java: 8
testType: unit
fail-fast: false
continue-on-error: ${{ matrix.experimental }}
env:
Expand All @@ -100,7 +91,7 @@ jobs:
uses: actions/setup-java@v2
with:
java-version: ${{ matrix.Java }}
distribution: 'adopt'
distribution: 'temurin'
cache: gradle

- name: 'Compile with Gradle'
Expand All @@ -120,6 +111,10 @@ jobs:
if: needs.check-secrets.outputs.google-credentials == 'true'
run: echo "HELLBENDER_JSON_SERVICE_ACCOUNT_KEY=${{ steps.auth.outputs.credentials_file_path }}" >> $GITHUB_ENV

# See https://cloud.google.com/compute/docs/troubleshooting/known-issues#ubuntu-systems
- name: "get the updated signature key for google cloud"
run: curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

- name: 'Set up Cloud SDK'
if: needs.check-secrets.outputs.google-credentials == 'true'
uses: google-github-actions/setup-gcloud@v0
Expand All @@ -134,7 +129,7 @@ jobs:
if: ${{ needs.check-secrets.outputs.google-credentials == 'true' || matrix.testType != 'cloud'}}
id: jacoco-tests
run: |
./gradlew -Dscala.version=${{ env.SCALA_VERSION }} jacocoTestReport
./gradlew --daemon -Dscala.version=${{ env.SCALA_VERSION }} jacocoTestReport

- uses: ./.github/actions/upload-gatk-test-results
if: always()
Expand All @@ -154,9 +149,9 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
java: [ 8 ]
java: [ 17 ]
experimental: [ false ]
scalaVersion: [ 2.11 ]
scalaVersion: [ 2.12 ]
testType: [ integration, unit, variantcalling, conda ]
fail-fast: false
continue-on-error: ${{ matrix.experimental }}
Expand All @@ -174,7 +169,7 @@ jobs:
uses: actions/setup-java@v2
with:
java-version: ${{ matrix.Java }}
distribution: 'adopt'
distribution: 'temurin'
cache: gradle

#Google Cloud stuff
Expand All @@ -190,6 +185,10 @@ jobs:
if: needs.check-secrets.outputs.google-credentials == 'true'
run: echo "HELLBENDER_JSON_SERVICE_ACCOUNT_KEY=${{ steps.auth.outputs.credentials_file_path }}" >> $GITHUB_ENV

# See https://cloud.google.com/compute/docs/troubleshooting/known-issues#ubuntu-systems
- name: "get the updated signature key for google cloud"
run: curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -

- name: 'Set up Cloud SDK'
if: needs.check-secrets.outputs.google-credentials == 'true'
uses: google-github-actions/setup-gcloud@v0
Expand Down Expand Up @@ -273,11 +272,11 @@ jobs:
- uses: actions/checkout@v2
with:
fetch: 0
- name: Set up java 8
- name: Set up java 17
uses: actions/setup-java@v2
with:
java-version: '8'
distribution: 'adopt'
java-version: '17'
distribution: 'temurin'
cache: gradle
- uses: ./.github/actions/install-cromwell
with:
Expand All @@ -300,11 +299,11 @@ jobs:
fetch-depth: 0
- name: pull lfs files
run: git lfs pull
- name: Set up java 8
- name: Set up java 17
uses: actions/setup-java@v2
with:
java-version: '8'
distribution: 'adopt'
java-version: '17'
distribution: 'temurin'
cache: gradle
- uses: ./.github/actions/install-cromwell
with:
Expand Down Expand Up @@ -335,6 +334,8 @@ jobs:
run: |
echo "Running CNV somatic workflows";
bash scripts/cnv_cromwell_tests/somatic/run_cnv_somatic_workflows.sh;
echo "Gather CNV somatic cromwell workflows logs";
bash -c "find /home/runner/work/gatk/gatk/scripts/cnv_cromwell_tests/somatic/cromwell-executions -exec cat {} \;";

- name: "M2_WDL_TEST"
if: ${{ matrix.wdlTest == 'RUN_M2_WDL' }}
Expand Down
54 changes: 52 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,41 @@ ADD . /gatk
WORKDIR /gatk

# Get an updated gcloud signing key, in case the one in the base image has expired
RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
RUN rm /etc/apt/sources.list.d/google-cloud-sdk.list
RUN apt update
RUN apt-key list
RUN curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key --keyring /usr/share/keyrings/cloud.google.gpg add -
#
##Get Java 17 temurin JDK
##RUN apt update && apt upgrade
#RUN apt install wget
#RUN wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.1%2B12/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz
#RUN tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.*.tar.gz
#RUN mv jdk-17.0.1+12 /opt/
#
#ENV JAVA_HOME /opt/jdk-17.0.1+12
#ENV PATH $JAVA_HOME/bin:$PATH
#RUN echo $JAVA_HOME
#RUN update-alternatives --install /usr/bin/java java /opt/jdk-17.0.1+12/bin/java 1
#RUN java -version

RUN add-apt-repository universe && apt update
RUN apt-get --assume-yes install git-lfs
RUN git lfs install --force

##Get Java 17 temurin JDK
#RUN apt update && apt upgrade
RUN apt install wget
RUN wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.1%2B12/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz
RUN tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.*.tar.gz
RUN mv jdk-17.0.1+12 /opt/
#
ENV JAVA_HOME /opt/jdk-17.0.1+12
ENV PATH $JAVA_HOME/bin:$PATH
RUN echo $JAVA_HOME
RUN update-alternatives --install /usr/bin/java java /opt/jdk-17.0.1+12/bin/java 1
RUN java -version

#Download only resources required for the build, not for testing
RUN git lfs pull --include src/main/resources/large

Expand All @@ -23,6 +53,23 @@ RUN unzip -o -j $( find /gatk/unzippedJar -name "gatkPython*.zip" ) -d /gatk/unz
# Using OpenJDK 8
FROM broadinstitute/gatk:gatkbase-2.3.0

RUN rm /etc/apt/sources.list.d/google-cloud-sdk.list
RUN apt update
RUN apt-key list

#Get Java 17 temurin JDK
#RUN apt update && apt upgrade
RUN apt install wget
RUN wget https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.1%2B12/OpenJDK17U-jdk_x64_linux_hotspot_17.0.1_12.tar.gz
RUN tar -xvf OpenJDK17U-jdk_x64_linux_hotspot_17.*.tar.gz
RUN mv jdk-17.0.1+12 /opt/

ENV JAVA_HOME /opt/jdk-17.0.1+12
ENV PATH $JAVA_HOME/bin:$PATH
RUN echo $JAVA_HOME
RUN update-alternatives --install /usr/bin/java java /opt/jdk-17.0.1+12/bin/java 1
RUN java -version

WORKDIR /gatk

# Location of the unzipped gatk bundle files
Expand All @@ -43,6 +90,9 @@ RUN mkdir .gradle

WORKDIR /gatk

# use UTF-8 encoding to get around (??) scala class name shapeless/$tilde$qmark$greater$?.class
ENV LANG="en_US.UTF-8" LANGUAGE="en_US:en" LC_ALL="en_US.UTF-8"

# Create a simple unit test runner
ENV CI true
RUN echo "source activate gatk" > /root/run_unit_tests.sh && \
Expand All @@ -58,7 +108,7 @@ RUN echo "source activate gatk" > /root/run_unit_tests.sh && \
echo "export CP_DIR=/gatk/testClasses" /root/run_unit_tests.sh && \
echo "ln -s /gatkCloneMountPoint/src/ /gatkCloneMountPoint/scripts/docker/src" >> /root/run_unit_tests.sh && \
echo "ln -s /gatkCloneMountPoint/build/ /gatkCloneMountPoint/scripts/docker/build" >> /root/run_unit_tests.sh && \
echo "cd /gatk/ && /gatkCloneMountPoint/gradlew -b /gatkCloneMountPoint/dockertest.gradle testOnPackagedReleaseJar jacocoTestReportOnPackagedReleaseJar -a -p /gatkCloneMountPoint" >> /root/run_unit_tests.sh
echo "cd /gatk/ && /gatkCloneMountPoint/gradlew -Dfile.encoding=UTF-8 -b /gatkCloneMountPoint/dockertest.gradle testOnPackagedReleaseJar jacocoTestReportOnPackagedReleaseJar -a -p /gatkCloneMountPoint" >> /root/run_unit_tests.sh

WORKDIR /root
RUN cp -r /root/run_unit_tests.sh /gatk
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ releases of the toolkit.

## <a name="requirements">Requirements</a>
* To run GATK:
* Java 8 is needed to run or build GATK.
* Java 17 is needed to run or build GATK.
We recommend either of the following:
* OpenJDK 8 with Hotspot from [AdoptOpenJdk](https://adoptopenjdk.net/)
* [OracleJDK 8](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html)
Expand All @@ -61,7 +61,7 @@ releases of the toolkit.
See [Python Dependencies](#python) for more information.
* R 3.2.5 (needed for producing plots in certain tools)
* To build GATK:
* A Java 8 JDK
* A Java 17 JDK
* Git 2.5 or greater
* [git-lfs](https://git-lfs.github.com/) 1.1.0 or greater. Required to download the large files used to build GATK, and
test files required to run the test suite. Run `git lfs install` after downloading, followed by `git lfs pull` from
Expand Down Expand Up @@ -454,7 +454,7 @@ We use [git-lfs](https://git-lfs.github.com/) to version and distribute test dat

#### <a name="intellij">Creating a GATK project in the IntelliJ IDE (last tested with version 2016.2.4):</a>

* Ensure that you have `gradle` and the Java 8 JDK installed
* Ensure that you have `gradle` and the Java 17 JDK installed

* You may need to install the TestNG and Gradle plugins (in preferences)

Expand All @@ -476,7 +476,7 @@ We use [git-lfs](https://git-lfs.github.com/) to version and distribute test dat

* After downloading project dependencies, IntelliJ should open a new window with your GATK project

* Make sure that the Java version is set correctly by going to File -> "Project Structure" -> "Project". Check that the "Project SDK" is set to your Java 1.8 JDK, and "Project language level" to 8 (you may need to add your Java 8 JDK under "Platform Settings" -> SDKs if it isn't there already). Then click "Apply"/"Ok".
* Make sure that the Java version is set correctly by going to File -> "Project Structure" -> "Project". Check that the "Project SDK" is set to your Java 1.17 JDK, and "Project language level" to 17 (you may need to add your Java 17 JDK under "Platform Settings" -> SDKs if it isn't there already). Then click "Apply"/"Ok".

#### <a name="debugging">Setting up debugging in IntelliJ</a>

Expand Down
Loading