diff --git a/.github/workflows/pypi.yml b/.github/workflows/pypi.yml index 71a57b0719..42fc17a097 100644 --- a/.github/workflows/pypi.yml +++ b/.github/workflows/pypi.yml @@ -1,33 +1,33 @@ name: pypi upload on: - create: - tags: - - '*' + create: + tags: + - "*" defaults: - run: - shell: bash -l {0} + run: + shell: bash -l {0} jobs: - pypi: - if: ${{ startsWith(github.ref, 'refs/tags/') }} - name: upload to pypi - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: '3.12' - cache: 'pip' - - name: build - run: | - pip install .[actions] - rm -f dist/* - python -m build - - name: upload - env: - TWINE_USERNAME: "__token__" - TWINE_PASSWORD: ${{ secrets.pypi_password }} - run: | - twine upload dist/* + pypi: + if: ${{ startsWith(github.ref, 'refs/tags/') }} + name: upload to pypi + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-python@v6 + with: + python-version: "3.12" + cache: "pip" + - name: build + run: | + pip install .[actions] + rm -f dist/* + python -m build + - name: upload + env: + TWINE_USERNAME: "__token__" + TWINE_PASSWORD: ${{ secrets.pypi_password }} + run: | + twine upload dist/* diff --git a/.github/workflows/test_planemo.yml b/.github/workflows/test_planemo.yml index dd5d0a413b..063ffb4046 100644 --- a/.github/workflows/test_planemo.yml +++ b/.github/workflows/test_planemo.yml @@ -2,59 +2,59 @@ name: tests_planemo on: [push, pull_request, workflow_dispatch] env: - GALAXY_BRANCH: release_24.1 + GALAXY_BRANCH: release_26.0 defaults: - run: - shell: bash -l {0} + run: + shell: bash -l {0} jobs: - planemo_test: - name: Planemo test - runs-on: ubuntu-latest - strategy: - matrix: - chunk: [1, 2, 3] - steps: - - uses: actions/checkout@v4 - - uses: conda-incubator/setup-miniconda@v3 - with: - miniconda-version: "latest" - auto-activate-base: true - python-version: "3.12" - - name: get samtools - run: | - conda install -c conda-forge -c bioconda samtools - - name: pip install - run: | - pip install .[actions] - - name: planemo - run: | - ./.planemo.sh ${{ matrix.chunk }} ${{ env.GALAXY_BRANCH }} - - uses: actions/upload-artifact@v4 - with: - name: 'Tool test output ${{ matrix.chunk }}' - path: upload - planemo_combine_outputs: - name: Combine chunked test results - needs: planemo_test - runs-on: ubuntu-latest - steps: - - uses: actions/download-artifact@v4 - with: - path: artifacts - - name: Combine outputs - uses: galaxyproject/planemo-ci-action@v1 - id: combine - with: - mode: combine - html-report: true - - uses: actions/upload-artifact@v4 - with: - name: 'All tool test results' - path: upload - - name: Check outputs - uses: galaxyproject/planemo-ci-action@v1 - id: check - with: - mode: check \ No newline at end of file + planemo_test: + name: Planemo test + runs-on: ubuntu-latest + strategy: + matrix: + chunk: [1, 2, 3] + steps: + - uses: actions/checkout@v7 + - uses: conda-incubator/setup-miniconda@v4 + with: + miniconda-version: "latest" + auto-activate-base: true + python-version: "3.12" + - name: get samtools + run: | + conda install -c conda-forge -c bioconda samtools + - name: pip install + run: | + pip install .[actions] + - name: planemo + run: | + ./.planemo.sh ${{ matrix.chunk }} ${{ env.GALAXY_BRANCH }} + - uses: actions/upload-artifact@v7 + with: + name: "Tool test output ${{ matrix.chunk }}" + path: upload + planemo_combine_outputs: + name: Combine chunked test results + needs: planemo_test + runs-on: ubuntu-latest + steps: + - uses: actions/download-artifact@v8 + with: + path: artifacts + - name: Combine outputs + uses: galaxyproject/planemo-ci-action@v1 + id: combine + with: + mode: combine + html-report: true + - uses: actions/upload-artifact@v7 + with: + name: "All tool test results" + path: upload + - name: Check outputs + uses: galaxyproject/planemo-ci-action@v1 + id: check + with: + mode: check diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 76c439767b..2a8dd339bc 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -3,200 +3,199 @@ name: build wheels # Also, see: https://github.com/jackh726/bigtools/blob/master/.github/workflows/release-python.yml on: - push: - pull_request: + push: + pull_request: permissions: - contents: read + contents: read jobs: + linux: + runs-on: ${{ matrix.platform.runner }} + strategy: + matrix: + platform: + - runner: ubuntu-22.04 + target: x86_64 + - runner: ubuntu-22.04 + target: aarch64 + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: --release --out dist --find-interpreter + # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} + manylinux: 2_28 + before-script-linux: | + set -ex + cat /etc/*release* + if [ "${{ matrix.platform.target }}" = "x86_64" ]; then + # maturin-action's manylinux switches to AlmaLinux 8 + dnf install -y epel-release && dnf update -y + dnf install -y gcc gcc-c++ make perl curl clang xz-devel pkgconfig + ## we've vendored openssl via Cargo.toml anyway, so this part is no longer used... + # dnf install -y openssl-devel + # export OPENSSL_INCLUDE_DIR=$(pkg-config --variable=includedir openssl) + # export OPENSSL_LIB_DIR=$(pkg-config --variable=libdir openssl) + # export OPENSSL_DIR="$OPENSSL_LIB_DIR/ssl" + elif [ "${{ matrix.platform.target }}" = "aarch64" ]; then + # cross-compiling on Ubuntu 22.04 + ## We're vendoring openssl because libssl-dev:aarch64 is not available! + apt-get update + apt-get install -y build-essential perl curl clang liblzma-dev pkg-config \ + gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libc6-dev-arm64-cross crossbuild-essential-arm64 + # export OPENSSL_LIB_DIR=/usr/lib/aarch64-linux-gnu + # export OPENSSL_INCLUDE_DIR=/usr/include/aarch64-linux-gnu + # export OPENSSL_DIR=/usr/lib/aarch64-linux-gnu + # export OPENSSL_NO_VENDOR=1 + fi + # export OPENSSL_NO_VENDOR=1 + # if [ -z "$OPENSSL_LIB_DIR" ] || [ -z "$OPENSSL_INCLUDE_DIR" ]; then + # echo "OpenSSL development files are not installed or pkg-config is not configured correctly." + # exit 1 + # fi + # env | grep SSL # for debugging when rust crate fails to find headers + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + name: wheels-linux-${{ matrix.platform.target }} + path: dist - linux: - runs-on: ${{ matrix.platform.runner }} - strategy: - matrix: - platform: - - runner: ubuntu-22.04 - target: x86_64 - - runner: ubuntu-22.04 - target: aarch64 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter - # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - manylinux: 2_28 - before-script-linux: | - set -ex - cat /etc/*release* - if [ "${{ matrix.platform.target }}" = "x86_64" ]; then - # maturin-action's manylinux switches to AlmaLinux 8 - dnf install -y epel-release && dnf update -y - dnf install -y gcc gcc-c++ make perl curl clang xz-devel pkgconfig - ## we've vendored openssl via Cargo.toml anyway, so this part is no longer used... - # dnf install -y openssl-devel - # export OPENSSL_INCLUDE_DIR=$(pkg-config --variable=includedir openssl) - # export OPENSSL_LIB_DIR=$(pkg-config --variable=libdir openssl) - # export OPENSSL_DIR="$OPENSSL_LIB_DIR/ssl" - elif [ "${{ matrix.platform.target }}" = "aarch64" ]; then - # cross-compiling on Ubuntu 22.04 - ## We're vendoring openssl because libssl-dev:aarch64 is not available! - apt-get update - apt-get install -y build-essential perl curl clang liblzma-dev pkg-config \ - gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libc6-dev-arm64-cross crossbuild-essential-arm64 - # export OPENSSL_LIB_DIR=/usr/lib/aarch64-linux-gnu - # export OPENSSL_INCLUDE_DIR=/usr/include/aarch64-linux-gnu - # export OPENSSL_DIR=/usr/lib/aarch64-linux-gnu - # export OPENSSL_NO_VENDOR=1 - fi - # export OPENSSL_NO_VENDOR=1 - # if [ -z "$OPENSSL_LIB_DIR" ] || [ -z "$OPENSSL_INCLUDE_DIR" ]; then - # echo "OpenSSL development files are not installed or pkg-config is not configured correctly." - # exit 1 - # fi - # env | grep SSL # for debugging when rust crate fails to find headers - - name: Upload wheels - uses: actions/upload-artifact@v4 - with: - name: wheels-linux-${{ matrix.platform.target }} - path: dist + musllinux: + runs-on: ${{ matrix.platform.runner }} + strategy: + matrix: + platform: + - runner: ubuntu-22.04 + target: x86_64 + - runner: ubuntu-22.04 + target: aarch64 + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: --release --out dist --find-interpreter + # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} + manylinux: musllinux_1_2 + before-script-linux: | + apt-get update + apt-get install -y musl-tools musl-dev + if [ "${{ matrix.platform.target }}" = "aarch64" ]; then + apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu + fi + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + name: wheels-musllinux-${{ matrix.platform.target }} + path: dist - musllinux: - runs-on: ${{ matrix.platform.runner }} - strategy: - matrix: - platform: - - runner: ubuntu-22.04 - target: x86_64 - - runner: ubuntu-22.04 - target: aarch64 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter - # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - manylinux: musllinux_1_2 - before-script-linux: | - apt-get update - apt-get install -y musl-tools musl-dev - if [ "${{ matrix.platform.target }}" = "aarch64" ]; then - apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu - fi - - name: Upload wheels - uses: actions/upload-artifact@v4 - with: - name: wheels-musllinux-${{ matrix.platform.target }} - path: dist + # windows: + # runs-on: ${{ matrix.platform.runner }} + # strategy: + # matrix: + # platform: + # - runner: windows-latest + # target: x64 + # - runner: windows-latest + # target: x86 + # steps: + # - uses: actions/checkout@v4 + # - uses: actions/setup-python@v5 + # with: + # python-version: 3.x + # architecture: ${{ matrix.platform.target }} + # - name: Install And Configure Dependencies + # env: + # VCPKG_DEFAULT_TRIPLET: ${{ matrix.platform.target }}-windows + # OPENSSL_DIR: ${{ github.workspace }}/vcpkg/installed/${{ matrix.platform.target }}-windows + # OPENSSL_ROOT: ${{ github.workspace }}/vcpkg/installed/${{ matrix.platform.target }}-windows + # LZMA_ROOT: ${{ github.workspace }}/vcpkg/installed/${{ matrix.platform.target }}-windows + # run: | + # vcpkg install openssl liblzma + # - name: Build wheels + # uses: PyO3/maturin-action@v1 + # with: + # target: ${{ matrix.platform.target }} + # args: --release --out dist --find-interpreter + # # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} + # - name: Upload wheels + # uses: actions/upload-artifact@v4 + # with: + # name: wheels-windows-${{ matrix.platform.target }} + # path: dist - # windows: - # runs-on: ${{ matrix.platform.runner }} - # strategy: - # matrix: - # platform: - # - runner: windows-latest - # target: x64 - # - runner: windows-latest - # target: x86 - # steps: - # - uses: actions/checkout@v4 - # - uses: actions/setup-python@v5 - # with: - # python-version: 3.x - # architecture: ${{ matrix.platform.target }} - # - name: Install And Configure Dependencies - # env: - # VCPKG_DEFAULT_TRIPLET: ${{ matrix.platform.target }}-windows - # OPENSSL_DIR: ${{ github.workspace }}/vcpkg/installed/${{ matrix.platform.target }}-windows - # OPENSSL_ROOT: ${{ github.workspace }}/vcpkg/installed/${{ matrix.platform.target }}-windows - # LZMA_ROOT: ${{ github.workspace }}/vcpkg/installed/${{ matrix.platform.target }}-windows - # run: | - # vcpkg install openssl liblzma - # - name: Build wheels - # uses: PyO3/maturin-action@v1 - # with: - # target: ${{ matrix.platform.target }} - # args: --release --out dist --find-interpreter - # # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - # - name: Upload wheels - # uses: actions/upload-artifact@v4 - # with: - # name: wheels-windows-${{ matrix.platform.target }} - # path: dist + macos: + runs-on: ${{ matrix.platform.runner }} + strategy: + matrix: + platform: + - runner: macos-latest + target: x86_64 + - runner: macos-latest + target: aarch64 + steps: + - uses: actions/checkout@v7 + - uses: actions/setup-python@v5 + with: + python-version: 3.x + - name: Build wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: --release --out dist --find-interpreter + # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + name: wheels-macos-${{ matrix.platform.target }} + path: dist - macos: - runs-on: ${{ matrix.platform.runner }} - strategy: - matrix: - platform: - - runner: macos-13 - target: x86_64 - - runner: macos-14 - target: aarch64 - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: 3.x - - name: Build wheels - uses: PyO3/maturin-action@v1 - with: - target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter - # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - - name: Upload wheels - uses: actions/upload-artifact@v4 - with: - name: wheels-macos-${{ matrix.platform.target }} - path: dist + sdist: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v7 + - name: Build sdist + uses: PyO3/maturin-action@v1 + with: + command: sdist + args: --out dist + # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} + - name: Upload sdist + uses: actions/upload-artifact@v4 + with: + name: wheels-sdist + path: dist - sdist: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: Build sdist - uses: PyO3/maturin-action@v1 - with: - command: sdist - args: --out dist - # sccache: ${{ !startsWith(github.ref, 'refs/tags/') }} - - name: Upload sdist - uses: actions/upload-artifact@v4 - with: - name: wheels-sdist - path: dist - - release: - name: Release - runs-on: ubuntu-latest - if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }} - needs: [linux, macos, sdist] - permissions: - id-token: write - contents: write - attestations: write - steps: - - uses: actions/download-artifact@v4 - - name: Generate artifact attestation - uses: actions/attest-build-provenance@v1 - with: - subject-path: 'wheels-*/*' - - name: Publish to PyPI - if: ${{ startsWith(github.ref, 'refs/tags/') }} - uses: PyO3/maturin-action@v1 - env: - MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} - with: - command: upload - args: --non-interactive --skip-existing wheels-*/* + release: + name: Release + runs-on: ubuntu-latest + if: ${{ startsWith(github.ref, 'refs/tags/') || github.event_name == 'workflow_dispatch' }} + needs: [linux, macos, sdist] + permissions: + id-token: write + contents: write + attestations: write + steps: + - uses: actions/download-artifact@v4 + - name: Generate artifact attestation + uses: actions/attest-build-provenance@v1 + with: + subject-path: "wheels-*/*" + - name: Publish to PyPI + if: ${{ startsWith(github.ref, 'refs/tags/') }} + uses: PyO3/maturin-action@v1 + env: + MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} + with: + command: upload + args: --non-interactive --skip-existing wheels-*/* diff --git a/galaxy/wrapper/test-data/bamCompare_result2.bw b/galaxy/wrapper/test-data/bamCompare_result2.bw index 75b87e5000..a25d50888e 100644 Binary files a/galaxy/wrapper/test-data/bamCompare_result2.bw and b/galaxy/wrapper/test-data/bamCompare_result2.bw differ diff --git a/galaxy/wrapper/test-data/bamCoverage_result1.bw b/galaxy/wrapper/test-data/bamCoverage_result1.bw index 695105d378..11273f5076 100644 Binary files a/galaxy/wrapper/test-data/bamCoverage_result1.bw and b/galaxy/wrapper/test-data/bamCoverage_result1.bw differ diff --git a/galaxy/wrapper/test-data/bamCoverage_result2.bw b/galaxy/wrapper/test-data/bamCoverage_result2.bw index 846ed84a57..a0e7e9f7ce 100644 Binary files a/galaxy/wrapper/test-data/bamCoverage_result2.bw and b/galaxy/wrapper/test-data/bamCoverage_result2.bw differ diff --git a/galaxy/wrapper/test-data/bamCoverage_result6.bw b/galaxy/wrapper/test-data/bamCoverage_result6.bw index 969d8052a5..e539b01669 100644 Binary files a/galaxy/wrapper/test-data/bamCoverage_result6.bw and b/galaxy/wrapper/test-data/bamCoverage_result6.bw differ diff --git a/galaxy/wrapper/test-data/bamPEFragmentSize_histogram_result1.png b/galaxy/wrapper/test-data/bamPEFragmentSize_histogram_result1.png index 25ae59a929..af9abe4216 100644 Binary files a/galaxy/wrapper/test-data/bamPEFragmentSize_histogram_result1.png and b/galaxy/wrapper/test-data/bamPEFragmentSize_histogram_result1.png differ diff --git a/galaxy/wrapper/test-data/plotCorrelation_result1.png b/galaxy/wrapper/test-data/plotCorrelation_result1.png index c2373582bb..535715ea09 100644 Binary files a/galaxy/wrapper/test-data/plotCorrelation_result1.png and b/galaxy/wrapper/test-data/plotCorrelation_result1.png differ diff --git a/galaxy/wrapper/test-data/plotCoverage_result1.png b/galaxy/wrapper/test-data/plotCoverage_result1.png index e22727ca52..6669cb87ae 100644 Binary files a/galaxy/wrapper/test-data/plotCoverage_result1.png and b/galaxy/wrapper/test-data/plotCoverage_result1.png differ diff --git a/galaxy/wrapper/test-data/plotEnrichment_output.png b/galaxy/wrapper/test-data/plotEnrichment_output.png index 6302d95453..94d402bc3c 100644 Binary files a/galaxy/wrapper/test-data/plotEnrichment_output.png and b/galaxy/wrapper/test-data/plotEnrichment_output.png differ diff --git a/galaxy/wrapper/test-data/profiler_result2.png b/galaxy/wrapper/test-data/profiler_result2.png index 2e67acf103..445da93b84 100644 Binary files a/galaxy/wrapper/test-data/profiler_result2.png and b/galaxy/wrapper/test-data/profiler_result2.png differ diff --git a/pydeeptools/deeptools/bamPEFragmentSize.py b/pydeeptools/deeptools/bamPEFragmentSize.py index 9569abbe66..362b118555 100755 --- a/pydeeptools/deeptools/bamPEFragmentSize.py +++ b/pydeeptools/deeptools/bamPEFragmentSize.py @@ -391,7 +391,6 @@ def main(args=None): parser.print_help() return args = parser.parse_args(args) - print(args) fraglengths = {} readlengths = {} of = None