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

Update latest main #2073

Open
wants to merge 43 commits into
base: prov_data_input_output
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
48cea18
prepare for mypy 1.12
mr-c Oct 4, 2024
75e073c
remove usage of ancient shellescape backport of Stdlib's shlex (#2041)
a-detiste Oct 4, 2024
04fd426
setuptools is not a install requirement
mr-c Oct 4, 2024
0056ca5
gh-actions: fail-fast false
mr-c Oct 4, 2024
18b8fdf
Bump sphinx-rtd-theme from 2.0.0 to 3.0.0
dependabot[bot] Oct 7, 2024
6970186
Handle spurious `ReceiveScatterOutput` callbacks (#2051)
GlassOfWhiskey Oct 8, 2024
83000ae
prepare for future mypy release and enable --local-partial-types now
mr-c Oct 8, 2024
c6ad93a
Bump sphinx-rtd-theme from 3.0.0 to 3.0.1
dependabot[bot] Oct 10, 2024
82f37d5
Update black requirement from ~=24.8 to ~=24.10
dependabot[bot] Oct 8, 2024
1a2c939
Update lint-requirements.txt
mr-c Oct 8, 2024
83def6a
Update lint-requirements.txt
mr-c Oct 8, 2024
05af6c1
Drop Python 3.8
mr-c Oct 4, 2024
a956766
add more docs
mr-c Oct 4, 2024
606ec26
Bump mypy from 1.11.2 to 1.12.0
dependabot[bot] Oct 15, 2024
74a08ca
Update rdflib requirement from <7.1,>=4.2.2 to >=4.2.2,<7.2
dependabot[bot] Oct 17, 2024
e3e6bf9
Bump mypy from 1.12.0 to 1.12.1 (#2057)
dependabot[bot] Oct 22, 2024
8dee8e9
Bump mypy from 1.12.1 to 1.13.0 (#2058)
dependabot[bot] Oct 23, 2024
e3f6cf7
build binary wheels
mr-c Oct 23, 2024
6cfef62
binary wheels: only build on main and other optimizations
mr-c Oct 24, 2024
d810958
Update flake8-bugbear requirement from <24.9 to <24.11
dependabot[bot] Nov 1, 2024
9cda157
cpu_count can be None, so fallback to 1
mr-c Nov 2, 2024
ee30368
add note on docker platform issue (#2064)
Brilator Nov 8, 2024
0b64935
Update ruamel-yaml requirement from <0.18,>=0.16.0 to >=0.16.0,<0.19 …
dependabot[bot] Nov 11, 2024
048eb55
use max_cores in taskQueue instead of system cores (#2038)
kmavrommatis Nov 11, 2024
1557c8d
Use "run" with singularity/apptainer instead of "exec", when possible
sameeul Nov 10, 2024
c3c92eb
conformances testing: no longer skip tests for singularity/apptainer
mr-c Nov 12, 2024
e4d42b8
Bump codecov/codecov-action from 4 to 5
dependabot[bot] Nov 15, 2024
6c86caa
make-template: fix type error
mr-c Nov 27, 2024
7fa57dd
--no-warnings includes schema-salad; --validate should complain to st…
mr-c Dec 9, 2024
604fd12
Append "_latest" to image id if no tag is present (#2085)
sameeul Dec 11, 2024
d3c7bd5
Fix `cwltool:Loop` extension definition (#2081)
GlassOfWhiskey Dec 12, 2024
37d8539
Update flake8-bugbear requirement from <24.11 to <24.13 (#2086)
dependabot[bot] Dec 13, 2024
56e159f
Bump cibuildwheel from 2.21.3 to 2.22.0 (#2077)
dependabot[bot] Dec 13, 2024
cc6772e
Bump sphinx-rtd-theme from 3.0.1 to 3.0.2 (#2069)
dependabot[bot] Dec 13, 2024
6b8f06a
Bump pypa/cibuildwheel from 2.21.3 to 2.22.0 (#2076)
dependabot[bot] Dec 13, 2024
f1d192d
argpase: colorize the --help output with rich-argparse
mr-c Nov 30, 2024
527884b
Proposal: Improved `ProvenanceProfile` definition (#2082)
fmigneault Dec 16, 2024
c6782ff
singularity: improve testing on version 4.x+
mr-c Dec 17, 2024
ae5fae4
README: Python supported versions list was outdated
mr-c Dec 20, 2024
6a61bed
docs: render the CLI groups too
mr-c Dec 20, 2024
f453cdc
Bump mypy from 1.13.0 to 1.14.0
dependabot[bot] Dec 23, 2024
baa668b
Bump mypy from 1.14.0 to 1.14.1
dependabot[bot] Dec 31, 2024
a67c898
Change caching pathmapper to respect the pathmapper factory
stxue1 Jan 9, 2025
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
101 changes: 101 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
version: 2.1

parameters:
REF:
type: string
default: ''
description: Optional tag to build

jobs:
arm-wheels:
parameters:
build:
type: string
image:
type: string

machine:
image: ubuntu-2404:current
resource_class: arm.medium # 2 vCPUs

environment:
CIBW_ARCHS: "aarch64"
CIBW_MANYLINUX_AARCH64_IMAGE: "<< parameters.image >>"
CIBW_MUSLLINUX_AARCH64_IMAGE: "<< parameters.image >>"
CIBW_BUILD: "<< parameters.build >>"

steps:
- checkout
- when:
condition: << pipeline.parameters.REF >>
steps:
- run:
name: Checkout branch/tag << pipeline.parameters.REF >>
command: |
echo "Switching to branch/tag << pipeline.parameters.REF >> if it exists"
git checkout << pipeline.parameters.REF >> || true
git pull origin << pipeline.parameters.REF >> || true
- run:
name: install cibuildwheel and other build reqs
command: |
python3 -m pip install --upgrade pip setuptools setuptools_scm[toml]
python3 -m pip install -rcibw-requirements.txt

- run:
name: pip freeze
command: |
python3 -m pip freeze

- run:
name: list wheels
command: |
python3 -m cibuildwheel . --print-build-identifiers

- run:
name: cibuildwheel
command: |
python3 -m cibuildwheel .

- store_test_results:
path: test-results/

- store_artifacts:
path: wheelhouse/

# - when:
# condition:
# or:
# - matches:
# pattern: ".+"
# value: "<< pipeline.git.tag >>"
# - << pipeline.parameters.REF >>
# steps:
# - run:
# environment:
# TWINE_NONINTERACTIVE: "1"
# command: |
# python3 -m pip install twine
# python3 -m twine upload --verbose --skip-existing wheelhouse/*

workflows:
wheels: # This is the name of the workflow, feel free to change it to better match your workflow.
# Inside the workflow, you define the jobs you want to run.
jobs:
- arm-wheels:
name: arm-wheels-manylinux_2_28
filters:
branches:
only: main
tags:
only: /.*/
build: "*manylinux*"
image: quay.io/pypa/manylinux_2_28_aarch64
- arm-wheels:
name: arm-wheels-musllinux_1_2
filters:
branches:
only: main
tags:
only: /.*/
build: "*musllinux*"
image: quay.io/pypa/musllinux_1_2_aarch64
35 changes: 18 additions & 17 deletions .github/workflows/ci-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ jobs:
strategy:
matrix:
py-ver-major: [3]
py-ver-minor: [8, 9, 10, 11, 12, 13]
py-ver-minor: [9, 10, 11, 12, 13]
step: [lint, unit, bandit, mypy]

env:
Expand All @@ -44,11 +44,11 @@ jobs:
with:
fetch-depth: 0

- name: Set up Singularity
- name: Set up Singularity and environment-modules
if: ${{ matrix.step == 'unit' || matrix.step == 'mypy' }}
run: |
wget --no-verbose https://github.com/sylabs/singularity/releases/download/v3.10.4/singularity-ce_3.10.4-focal_amd64.deb
sudo apt-get install -y ./singularity-ce_3.10.4-focal_amd64.deb
wget --no-verbose https://github.com/sylabs/singularity/releases/download/v4.2.1/singularity-ce_4.2.1-focal_amd64.deb
sudo apt-get install -y ./singularity-ce_4.2.1-focal_amd64.deb environment-modules

- name: Give the test runner user a name to make provenance happy.
if: ${{ matrix.step == 'unit' || matrix.step == 'mypy' }}
Expand Down Expand Up @@ -81,7 +81,7 @@ jobs:

- name: Upload coverage to Codecov
if: ${{ matrix.step == 'unit' }}
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
fail_ci_if_error: true
env:
Expand Down Expand Up @@ -132,10 +132,10 @@ jobs:
with:
fetch-depth: 0

- name: Set up Singularity
- name: Set up Singularity and environment-modules
run: |
wget --no-verbose https://github.com/sylabs/singularity/releases/download/v3.10.4/singularity-ce_3.10.4-focal_amd64.deb
sudo apt-get install -y ./singularity-ce_3.10.4-focal_amd64.deb
wget --no-verbose https://github.com/sylabs/singularity/releases/download/v4.2.1/singularity-ce_4.2.1-focal_amd64.deb
sudo apt-get install -y ./singularity-ce_4.2.1-focal_amd64.deb environment-modules

- name: Give the test runner user a name to make provenance happy.
run: sudo usermod -c 'CI Runner' "$(whoami)"
Expand All @@ -157,14 +157,15 @@ jobs:
chmod a-w .

- name: run tests
run: APPTAINER_TMPDIR=${RUNNER_TEMP} make test
run: APPTAINER_TMPDIR=${RUNNER_TEMP} make test PYTEST_EXTRA=-vvv


conformance_tests:
name: CWL conformance
runs-on: ubuntu-22.04

strategy:
fail-fast: false
matrix:
cwl-version: [v1.0, v1.1, v1.2]
container: [docker, singularity, podman]
Expand All @@ -179,11 +180,11 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up Singularity
- name: Set up Singularity and environment-modules
if: ${{ matrix.container == 'singularity' }}
run: |
wget --no-verbose https://github.com/sylabs/singularity/releases/download/v3.10.4/singularity-ce_3.10.4-jammy_amd64.deb
sudo apt-get install -y ./singularity-ce_3.10.4-jammy_amd64.deb
wget --no-verbose https://github.com/sylabs/singularity/releases/download/v4.2.1/singularity-ce_4.2.1-focal_amd64.deb
sudo apt-get install -y ./singularity-ce_4.2.1-focal_amd64.deb environment-modules

- name: Singularity cache
if: ${{ matrix.container == 'singularity' }}
Expand Down Expand Up @@ -216,7 +217,7 @@ jobs:
path: |
**/cwltool_conf*.xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
fail_ci_if_error: true
env:
Expand All @@ -228,10 +229,10 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up Singularity
- name: Set up Singularity and environment-modules
run: |
wget --no-verbose https://github.com/sylabs/singularity/releases/download/v3.10.4/singularity-ce_3.10.4-jammy_amd64.deb
sudo apt-get install -y ./singularity-ce_3.10.4-jammy_amd64.deb
wget --no-verbose https://github.com/sylabs/singularity/releases/download/v4.2.1/singularity-ce_4.2.1-focal_amd64.deb
sudo apt-get install -y ./singularity-ce_4.2.1-focal_amd64.deb environment-modules

- name: Set up Python
uses: actions/setup-python@v5
Expand Down Expand Up @@ -301,7 +302,7 @@ jobs:
- name: Test with tox
run: tox
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
uses: codecov/codecov-action@v5
with:
fail_ci_if_error: true
env:
Expand Down
127 changes: 127 additions & 0 deletions .github/workflows/wheels.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
name: Python package build and publish

on:
release:
types: [published]
workflow_dispatch: {}
repository_dispatch: {}
push:
branches:
- main

concurrency:
group: wheels-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
build_wheels:
name: ${{ matrix.image }} wheels
runs-on: ubuntu-24.04
strategy:
matrix:
include:
- image: manylinux_2_28_x86_64
build: "*manylinux*"
- image: musllinux_1_2_x86_64
build: "*musllinux*"

steps:
- uses: actions/checkout@v4
if: ${{ github.event_name != 'repository_dispatch' }}
with:
fetch-depth: 0 # slow, but gets all the tags
- uses: actions/checkout@v4
if: ${{ github.event_name == 'repository_dispatch' }}
with:
fetch-depth: 0 # slow, but gets all the tags
ref: ${{ github.event.client_payload.ref }}

# - name: Set up QEMU
# if: runner.os == 'Linux'
# uses: docker/setup-qemu-action@v2
# with:
# platforms: all

- name: Build wheels
uses: pypa/[email protected]
env:
CIBW_BUILD: ${{ matrix.build }}
CIBW_MANYLINUX_X86_64_IMAGE: quay.io/pypa/${{ matrix.image }}
CIBW_MUSLLINUX_X86_64_IMAGE: quay.io/pypa/${{ matrix.image }}
# configure cibuildwheel to build native 64-bit archs ('auto64'), and some
# emulated ones
# Linux arm64 wheels are built on circleci
CIBW_ARCHS_LINUX: auto64 # ppc64le s390x

- uses: actions/upload-artifact@v4
with:
name: artifact-${{ matrix.image }}
path: ./wheelhouse/*.whl

build_sdist:
name: Build source distribution
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4
if: ${{ github.event_name != 'repository_dispatch' }}
with:
fetch-depth: 0 # slow, but gets all the tags
- uses: actions/checkout@v4
if: ${{ github.event_name == 'repository_dispatch' }}
with:
fetch-depth: 0 # slow, but gets all the tags
ref: ${{ github.event.client_payload.ref }}

- name: Build sdist
run: pipx run build --sdist

- uses: actions/upload-artifact@v4
with:
name: artifact-source
path: dist/*.tar.gz

build_wheels_macos:
name: Build wheels on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
# macos-13 is an intel runner, macos-14 is apple silicon
os: [macos-13, macos-14]
steps:
- uses: actions/checkout@v4
if: ${{ github.event_name != 'repository_dispatch' }}
with:
fetch-depth: 0 # slow, but gets all the tags
- uses: actions/checkout@v4
if: ${{ github.event_name == 'repository_dispatch' }}
with:
fetch-depth: 0 # slow, but gets all the tags
ref: ${{ github.event.client_payload.ref }}

- name: Build wheels
uses: pypa/[email protected]

- uses: actions/upload-artifact@v4
with:
name: artifact-${{ matrix.os }}-${{ strategy.job-index }}
path: ./wheelhouse/*.whl

# upload_pypi:
# needs: [build_wheels, build_sdist]
# runs-on: ubuntu-24.04
# environment: deploy
# permissions:
# id-token: write
# if: (github.event_name == 'release' && github.event.action == 'published') || (github.event_name == 'repository_dispatch' && github.event.client_payload.publish_wheel == true)
# steps:
# - uses: actions/download-artifact@v4
# with:
# # unpacks default artifact into dist/
# pattern: artifact-*
# merge-multiple: true
# path: dist

# - name: Publish package distributions to PyPI
# uses: pypa/gh-action-pypi-publish@release/v1
# with:
# skip-existing: true
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ eggs/
*.egg
.tox/
.pytest_cache
*.so

# Editor Temps
.*.sw?
Expand Down
1 change: 1 addition & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ include tests/reloc/dir2/*
include tests/checker_wf/*
include tests/subgraph/*
include tests/input_deps/*
recursive-include tests/test_deps_env
include tests/trs/*
include tests/wf/generator/*
include cwltool/py.typed
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ MODULE=cwltool

# `SHELL=bash` doesn't work for some, so don't use BASH-isms like
# `[[` conditional expressions.
PYSOURCES=$(wildcard ${MODULE}/**.py cwltool/cwlprov/*.py tests/*.py) setup.py
PYSOURCES=$(wildcard ${MODULE}/**.py cwltool/cwlprov/*.py tests/*.py tests/cwl-conformance/*.py) setup.py
DEVPKGS=diff_cover pylint pep257 pydocstyle 'tox<4' tox-pyenv auto-walrus \
isort wheel autoflake pyupgrade bandit -rlint-requirements.txt\
-rtest-requirements.txt -rmypy-requirements.txt -rdocs/requirements.txt
Expand Down Expand Up @@ -190,7 +190,7 @@ shellcheck: FORCE
cwltool-in-docker.sh

pyupgrade: $(PYSOURCES)
pyupgrade --exit-zero-even-if-changed --py38-plus $^
pyupgrade --exit-zero-even-if-changed --py39-plus $^
auto-walrus $^

release-test: FORCE
Expand Down
Loading
Loading