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

Implementation of proposed syntax changes #768

Open
wants to merge 345 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
345 commits
Select commit Hold shift + click to select a range
137965b
reworking docs CI
tclose Dec 27, 2024
2574d8e
touching up docs deps
tclose Dec 27, 2024
be5d8b5
more docs deps
tclose Dec 27, 2024
6491756
fixed docs ci
tclose Dec 27, 2024
571ba9c
docs ci touch up
tclose Dec 27, 2024
c4d7468
removed restriction on release for docs deploy
tclose Dec 27, 2024
4a8c42d
include ipython in docs deps
tclose Dec 27, 2024
1a6b067
renamed Outputs to TaskOutputs
tclose Dec 27, 2024
a8ed05e
finished workflow tutorial and reworked some of the docs structure
tclose Dec 28, 2024
8e88ed2
finished off the workflow tutorial for now
tclose Dec 28, 2024
6f1c8e3
restructuring new docs
tclose Dec 28, 2024
03546ed
more restructuring of new docs
tclose Dec 29, 2024
35641b1
writing getting-starting notebook
tclose Dec 29, 2024
ffdfce1
renamed Spec and specification to Def and definition
tclose Dec 29, 2024
e317e8e
finished getting-started (apart from debugging) tutorial
tclose Dec 29, 2024
720efdb
imported examples from tutorials
tclose Dec 29, 2024
7a7cffd
touched up errors in first-level-glm
tclose Dec 29, 2024
edd682f
reinstated changes to getting-started
tclose Dec 29, 2024
f5276b9
touched up getting-started
tclose Dec 29, 2024
8170777
converted two-level glm to new syntax
tclose Dec 30, 2024
02f6a1c
more touching up of documentation
tclose Dec 31, 2024
4502260
finished python task and canonical form tuts
tclose Dec 31, 2024
d71542f
added dependencies required for examples
tclose Dec 31, 2024
70edf85
touching up tutorials
tclose Dec 31, 2024
9594e75
renamed spec to definition across the board
tclose Dec 31, 2024
940f004
fixed mrtrix import
tclose Dec 31, 2024
e15cb35
finished playing with tutorials for now
tclose Dec 31, 2024
96e0b92
fixed doc dependency
tclose Dec 31, 2024
3495b50
download tags to docs build
tclose Dec 31, 2024
ec669e1
more fixes to docs CI
tclose Dec 31, 2024
e95e8ff
commented out pydra-mrtrix3 dep for docs until new release
tclose Jan 1, 2025
b5b95d3
combined typing and hashing
tclose Jan 1, 2025
1e81774
renamed help_string to help
tclose Jan 1, 2025
ac7ab7f
renamed make_task_spec to make_task_def
tclose Jan 4, 2025
7c47eef
touch up docs
tclose Jan 6, 2025
83cbbb6
touching up docs
tclose Jan 7, 2025
e6c488f
renamed tutorials to give natural order
tclose Jan 7, 2025
88a05bb
filled out explanation sections with subheadings
tclose Jan 7, 2025
efa668a
more docs touch ups
tclose Jan 9, 2025
9f7aa2b
connecting workflow logic to new api syntax
tclose Jan 14, 2025
5cbb4df
added section on workers
tclose Jan 17, 2025
f639b21
renamed execution options
tclose Jan 17, 2025
69b72c9
debugging workflow and shell architecture refactoring
tclose Jan 21, 2025
abcf93f
moved run into PythonDef
tclose Jan 21, 2025
e5c2556
implemented non-asynchronous "debug" worker that avoids async/await f…
tclose Jan 23, 2025
03c7438
touching up typing of tasks to include TaskDef template
tclose Jan 23, 2025
076dc84
debugged getting-started tutorial
tclose Jan 23, 2025
c3a144e
debugging workflow execution internals
tclose Jan 24, 2025
6a590e9
moved resolution of lazy fields to point where tasks are initialised
tclose Jan 24, 2025
e3418b3
got concurrent futures worker to work
tclose Jan 24, 2025
e59d86e
debugging cf worker
tclose Jan 24, 2025
834024e
debugging cf execution within notebooks, implemented byte-code hashin…
tclose Jan 25, 2025
142a58d
added troubleshooting tutorial stub
tclose Jan 27, 2025
544bbc2
touched up getting started tutorial
tclose Jan 29, 2025
7d89bb4
cleaning up new docs
tclose Jan 29, 2025
94cee3e
fixed test import errors
tclose Jan 29, 2025
2d37331
fixing broken unittests pt1
tclose Jan 29, 2025
4da2eef
debugging unittests
tclose Jan 29, 2025
0a32bfa
more debugging of unittests
tclose Jan 29, 2025
4ff7303
fixed up setting of state in workflow constructors
tclose Jan 29, 2025
0e0a02d
changed under_construction so it investigates the call stack instead …
tclose Jan 29, 2025
9c11add
implemented AST based function bytes_repr
tclose Jan 30, 2025
b8ba7f8
trimmed some unnecessary attributes from the byte-code based function…
tclose Jan 30, 2025
1cacaa0
debugging test_functions
tclose Jan 30, 2025
2da62fd
debugging test_helpers_file
tclose Jan 30, 2025
ff8069f
debugged test_helpers_file
tclose Jan 30, 2025
290bdca
renamed test tasks and workflows to PascalCase
tclose Jan 30, 2025
d584074
debugged test_hash and test_typing
tclose Jan 30, 2025
e015f8c
fixed test_hash error
tclose Jan 30, 2025
61e6439
debugging test_tasks
tclose Jan 30, 2025
3cc5232
debugging workflows
tclose Jan 31, 2025
d2ab96f
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jan 31, 2025
e2337f9
moved telemetry check into submitter from task
tclose Feb 3, 2025
30d0a7c
created pydra.task.testing sub-package
tclose Feb 3, 2025
54dc092
working on troubleshooting tutorial
tclose Feb 3, 2025
bf11151
more touch ups to troubleshooting tutorial
tclose Feb 3, 2025
dd606f8
debugging new syntax in unittests
tclose Feb 5, 2025
db3cd4c
removed python output order attribute
tclose Feb 5, 2025
ac80065
finished troubleshooting tutorial for now
tclose Feb 5, 2025
830abb5
finished changes to docs for now. Not all tutorials are working though
tclose Feb 5, 2025
927d4a8
made all outputs and defs slots classes
tclose Feb 5, 2025
9c4d007
fixed up typing errors and made all attributes of lazy fields "privat…
tclose Feb 6, 2025
8415d80
fixed up workflow caching and type hashing
tclose Feb 6, 2025
812d7b4
added nboutput clear to pre-commit
tclose Feb 6, 2025
5c9986c
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Feb 6, 2025
33ef3d4
updated upload/download artifact versions to v4
tclose Feb 6, 2025
d7f1b0b
added python kernel install to docs build
tclose Feb 6, 2025
bc4b373
added ipykernel to docs deps
tclose Feb 6, 2025
e1eae66
updated print_help
tclose Feb 6, 2025
6bb494a
added fileformats-medimage to docs deps
tclose Feb 6, 2025
fe41b99
debugging unittests after syntax changes
tclose Feb 6, 2025
8906e8f
debugged test_helpers
tclose Feb 6, 2025
d761613
cleaned up print_help
tclose Feb 6, 2025
92cf378
debugging task tests
tclose Feb 6, 2025
6a72657
added definition to Result attributes that need to be cloudpickled
tclose Feb 6, 2025
6ed002f
added module bytes_repr serializer
tclose Feb 9, 2025
151c325
debugged up python, workflow design unittests
tclose Feb 10, 2025
b8a0f1d
debugging test_tasks
tclose Feb 10, 2025
8bfbe8c
updated fileformats dependency
tclose Feb 11, 2025
27a0404
fixed support for multi-input objs
tclose Feb 11, 2025
d056d53
fixing support for multInputObjs
tclose Feb 11, 2025
f0fbb66
handle the formatting of optional types in command_pos_args
tclose Feb 11, 2025
783656e
handle previous errors in update_status
tclose Feb 11, 2025
f217502
removed erroneous signature in format_arg
tclose Feb 11, 2025
8969b3f
upped test dependency to alpha versions with updated syntax
tclose Feb 12, 2025
5ee9c68
debugging test_tasks
tclose Feb 12, 2025
a368c40
updated tutorial deps
tclose Feb 12, 2025
713939b
debugged test_tasks
tclose Feb 12, 2025
d9ce707
added fileformats-extras to doc dependencies
tclose Feb 12, 2025
1c0f42c
added fileformats-extras to tutorial deps
tclose Feb 12, 2025
7f4dc31
dropped py 3.10 from ci matrices
tclose Feb 12, 2025
7352a17
debugged test_state
tclose Feb 12, 2025
7c97e55
added mrtrix to docs build ci
tclose Feb 12, 2025
d6ae5ea
moved hooks arguments into single TaskHooks object in run methods
tclose Feb 12, 2025
d5a6587
moved mrtrix install into docs build-new
tclose Feb 12, 2025
01d50e2
changed order in docs cd
tclose Feb 12, 2025
128a3e9
added avoid_clashes option to copy_nested_files to ensure names don't…
tclose Feb 13, 2025
6f60ae1
debugged advanced execution tutorial
tclose Feb 13, 2025
6237368
fixed up docs cd
tclose Feb 13, 2025
072fae6
debugging tutorials
tclose Feb 13, 2025
9481f30
added medimage-extras to tutorial deps
tclose Feb 14, 2025
b0b45b9
re-implementing docker/singularity environments after refactor
tclose Feb 14, 2025
d4ce1d3
fixed up toy environments example, all docs should build now
tclose Feb 14, 2025
b55ef24
fixed bug in multi-input typing
tclose Feb 16, 2025
1488ccc
upped fileformats dep versions
tclose Feb 16, 2025
377ab07
debugging environments unittests
tclose Feb 16, 2025
dddf8a2
upped requirement on pydra-mrtrix to 3.0.4a17
tclose Feb 17, 2025
b9221d7
more dep version changes
tclose Feb 17, 2025
c8e25b1
cleaned up deps and added ipywidgets to docs build
tclose Feb 17, 2025
dc9e638
upped fileformats dep version
tclose Feb 17, 2025
799a384
added favicon to conf.py
tclose Feb 17, 2025
8c62ea7
relaxed fileformats dep version
tclose Feb 17, 2025
bbdf072
setup virtual desktop to accept notifications
tclose Feb 17, 2025
8f1623c
trying to get desktop notifications to work
tclose Feb 17, 2025
76feb69
added additional comment to toymedianThreshold example
tclose Feb 17, 2025
de83727
attempting to get virtual desktop notifications to work
tclose Feb 17, 2025
8bae6d3
nbsphinx errors will fail docs build
tclose Feb 17, 2025
e99f083
dropped 2nd level GLM as too complex for now
tclose Feb 17, 2025
dcecbf3
removed .python-version file
tclose Feb 17, 2025
c422033
allow graceful failure of workflows when not debugging
tclose Feb 17, 2025
0b91b95
fixed package name of openneuro-py
tclose Feb 17, 2025
6358b81
removed name attribute from submitter call
tclose Feb 17, 2025
f7934eb
renamed default task name that is submitted to "main" (from "task")
tclose Feb 17, 2025
84a8d3a
updated name of GLM example notebook
tclose Feb 17, 2025
099b0f4
fixing up errors in test_shell
tclose Feb 17, 2025
307b52b
added comment
tclose Feb 17, 2025
f74ddae
starting to convert test_environments tests to new syntax
tclose Feb 17, 2025
67eadff
debugging test_environments
tclose Feb 21, 2025
8c7fc19
debugged test_environments (except singularity tests)
tclose Feb 23, 2025
3418b0d
updated singularity tests
tclose Feb 23, 2025
a67968b
updated __version__ location to inside pydra.engine
tclose Feb 23, 2025
ac80cbf
updated github actions version tests
tclose Feb 23, 2025
286a8cb
dropped --pyargs flag in CI test as it doesn't work with namespace pa…
tclose Feb 23, 2025
c0bd52c
streamlined test matrices
tclose Feb 23, 2025
63b31b5
reverted ubuntu version to 22.04 for singularity tests
tclose Feb 23, 2025
a7876a3
added test_environments to singularity test
tclose Feb 23, 2025
41d9d21
fixed up singularity tests
tclose Feb 23, 2025
bd2b158
started implementing singularity tests
tclose Feb 23, 2025
e680452
reworked test_singularity for new syntax
tclose Feb 23, 2025
77bcafe
fixes to test_singularity tests
tclose Feb 23, 2025
33e615c
removed mandatory kwarg in test_singularity shell.defines
tclose Feb 23, 2025
1be664f
changed shell.arg to shell.outarg for path_template outputs
tclose Feb 23, 2025
f83b57d
cleaning up more test_environment singularity tests
tclose Feb 23, 2025
25eed1f
cleaned up singularity unittests
tclose Feb 23, 2025
e8a6aa0
debugging singularity tests
tclose Feb 23, 2025
0c779d2
fixed overzealous validation of path_template
tclose Feb 23, 2025
ab23576
made all args to task call kwds
tclose Feb 23, 2025
f1a6cb3
working on singularity errors
tclose Feb 23, 2025
d8696f2
more debugging of singularity
tclose Feb 23, 2025
b30d982
more debugging
tclose Feb 23, 2025
bc5397d
attempting to fix singularity tests
tclose Feb 23, 2025
b1184d4
fixed up environments import
tclose Feb 24, 2025
c8bdd3b
shell.define can take a list of tokens as well as a single string
tclose Feb 24, 2025
2fc135f
debugging docker unittests
tclose Feb 24, 2025
a42cc51
test_dockertask tests pass
tclose Feb 24, 2025
fdd5e52
fixed initialisation of environment in Submitter
tclose Feb 24, 2025
44d0d67
debugged test_dockertask
tclose Feb 24, 2025
28f1bc5
fixed merge error
tclose Feb 25, 2025
3f397e0
fixed merging error in test_shell
tclose Feb 25, 2025
4080298
debugging unittests
tclose Feb 25, 2025
ffeece0
debugged singularity tests
tclose Feb 25, 2025
3b8f818
made imports in pydra.design.* modules absolute
tclose Feb 25, 2025
6aaf1b7
added fileformats-extras to test deps
tclose Feb 25, 2025
e6724c1
fetch tags in github actions so installed version is correct
tclose Feb 25, 2025
4b97ed6
Merge pull request #769 from nipype/test_environments
tclose Feb 25, 2025
f7021e5
fixed bug in state depth calculation where, single, combined states w…
tclose Feb 25, 2025
b2034d5
moved resolved lazy inputs into NodeExecution class from TaskDef
tclose Feb 25, 2025
db8f799
finished debugging test_specs
tclose Feb 26, 2025
b5a0455
Merge pull request #770 from nipype/test_specs
tclose Feb 26, 2025
33bb999
debugging test_specs
tclose Feb 26, 2025
bb75d94
deleted workflow to pick up changes in workflow graph error message a…
tclose Feb 26, 2025
a5f6e45
Merge pull request #771 from nipype/test_submitter
tclose Feb 26, 2025
bda7ea2
debugging test_task
tclose Feb 26, 2025
dfbd989
fixed up remaining test_task tests
tclose Feb 26, 2025
85a3d95
fixed test_task_files
tclose Feb 26, 2025
bf22f78
started debugging test_node_tasks
tclose Feb 26, 2025
f2bf301
updated tests in test_node_task (most are passing)
tclose Feb 27, 2025
9c7d57e
debugging splitting and combining
tclose Feb 28, 2025
e3fe8e0
reverted change to LazyField._get_value
tclose Feb 28, 2025
2e3f5ed
reworking test_shelltask_inputspec
tclose Feb 28, 2025
110bfb5
debugging test_shell_inputspec
tclose Feb 28, 2025
d88acfe
debugging requires for bool fields
tclose Mar 2, 2025
d199981
reworked test_shelltask to new syntax
tclose Mar 2, 2025
753f0af
removing shelly.result\(\)
tclose Mar 2, 2025
0dba80b
more cleaning of test_shelltask
tclose Mar 2, 2025
b60a2fb
fixed error message in missing base class
tclose Mar 3, 2025
76c769b
debugging test_shelltask*
tclose Mar 3, 2025
739e8f3
updating test_workflow to new syntax
tclose Mar 3, 2025
9ba0e42
cleaned up all linting errors and warnings in test_workflow
tclose Mar 3, 2025
afe64e1
assert results not errored
tclose Mar 3, 2025
cc8646b
added node names
tclose Mar 3, 2025
bddb1f1
debugging test_workflow
tclose Mar 3, 2025
35c1594
Merge pull request #772 from nipype/test_task
tclose Mar 3, 2025
75a2983
fixed check for missing fields
tclose Mar 4, 2025
7b3aeb5
fixed splitting of tasks over states where value comes from lazy field
tclose Mar 4, 2025
9344e1c
debugging hashing of function AST
tclose Mar 4, 2025
8a29e1e
debugging optional shell outputs
tclose Mar 4, 2025
b33bbdf
debugging shell task tests
tclose Mar 5, 2025
090baa5
debugged 'xor' arg attribute
tclose Mar 6, 2025
af65aab
fixed up 'xor' arg functionality
tclose Mar 6, 2025
4a77081
debugged test_shelltask_inputspec
tclose Mar 6, 2025
7f1b259
fixed up issue with optional xor
tclose Mar 6, 2025
2664509
handle empty state arrays, i.e. nodes that don't run any jobs
tclose Mar 6, 2025
a52b748
renamed NodeExecution.task to NodeExecution.get_tasks
tclose Mar 6, 2025
9df1191
moved xor into *.define decorators from *.arg fields
tclose Mar 7, 2025
1cc4074
debugging combining states to preserve nested lists over staggered co…
tclose Mar 7, 2025
c5da03b
debugging node state operations
tclose Mar 7, 2025
5611651
fixed bug in _set_state
tclose Mar 7, 2025
7b64080
implemented state depth() implementation by handling the RPN represen…
tclose Mar 7, 2025
dfa195c
replaced 'after_combine=False' with before_combine=True for state.dep…
tclose Mar 7, 2025
8fa2d94
removed task definition attribute from state
tclose Mar 7, 2025
0b01701
cleaned up comment
tclose Mar 7, 2025
1455c2e
debugging issues with nested output types
tclose Mar 7, 2025
6980cf0
debugging removal of definition from state
tclose Mar 7, 2025
a1e3268
debugging test_shelltask
tclose Mar 7, 2025
b741563
debugging test_shelltask
tclose Mar 10, 2025
183782b
added pympler to test dependencies
tclose Mar 10, 2025
022c02a
fixed issue in doc-string passing
tclose Mar 10, 2025
ee88000
changed additional_args to be MultiInputObj[str] from list[str] type
tclose Mar 10, 2025
f62fd0d
debugging test_shelltask, reworking resolve of lazy inputs
tclose Mar 10, 2025
da92150
dropped StateIndex object in favour of simple int index
tclose Mar 11, 2025
b0db082
debugging shelltask
tclose Mar 11, 2025
3a9e35f
test_shelltask passes
tclose Mar 12, 2025
3287bea
reverted all plugin specifications in test_shelltask to the plugin fi…
tclose Mar 12, 2025
83ac1e8
modified bytes_repr_type so that the module location drops any sub-mo…
tclose Mar 12, 2025
8f593fd
reverted argstr with "..." in them to use field sep (instead of " " h…
tclose Mar 12, 2025
c7ad6b2
fixed up list of stdlib modules and is_stdlib
tclose Mar 12, 2025
5295e46
fixed up LazyField._resolve_value to handle combine states after swit…
tclose Mar 12, 2025
128c224
minor fixups
tclose Mar 12, 2025
54bbd47
fixed all unittests outside of test_workflow that were broken in rece…
tclose Mar 12, 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
142 changes: 142 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
# This workflows will upload a Python Package using Twine when a release is created
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries

name: Build docs

on:
release:
types: [published]
push:
branches:
- master
- develop
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Fetch tags
run: git fetch --prune --unshallow
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine
- name: Install package
run: pip install .[doc]
- name: Revert version to most recent version tag
run: git checkout $(git tag -l | grep 'v.*' | tail -n 1 | awk -F post '{print $1}')
- name: Build docs
run: |
cd docs
make html
cd ..
- uses: actions/upload-artifact@v4
with:
name: docs
path: docs/_build/html

build-new:
runs-on: ubuntu-latest
# Set up the environment so that it finds conda
defaults:
run:
shell: bash -l {0}
steps:
- name: Install Pandoc for NBSphinx
run: |
sudo apt-get update
sudo apt-get install -y pandoc
- name: Install Dependencies for virtual notifications in Adv.-Exec Tutorial
run: |
sudo apt update
sudo apt install -y xvfb libnotify-bin dbus-x11 xfce4-notifyd
- name: Start Virtual Display (for notifications)
run: |
Xvfb :99 &
export DISPLAY=:99
eval "$(dbus-launch --sh-syntax)"
echo "DISPLAY=:99" >> $GITHUB_ENV
echo "DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS" >> $GITHUB_ENV
- name: Start Notification Daemon (for notifications)
run: |
xfce4-notifyd &
sleep 2 # Give it some time to start
- name: Send Notification (test notifications)
run: |
notify-send "GitHub Runner Notification" "This is a test notification from GitHub Actions"
- name: Debug Running Processes (for notifications)
run: |
ps aux | grep notify
ps aux | grep xfce4-notifyd
dbus-monitor --session &
sleep 3
- uses: actions/checkout@v4
- name: Fetch tags
run: git fetch --prune --unshallow
- name: Install Minconda
uses: conda-incubator/setup-miniconda@v3
with:
auto-activate-base: true
activate-environment: ""
- name: Install MRtrix via Conda
run: |
conda install -c mrtrix3 mrtrix3
mrconvert --version
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build twine
- name: Install package
run: pip install .[doc]
- name: Install Python3 kernel
run: python -m ipykernel install --user
- name: Build new docs
run: |
cd new-docs
make html
cd ..
- uses: actions/upload-artifact@v4
with:
name: new-docs
path: new-docs/build/html

deploy:
needs: [build, build-new]
runs-on: ubuntu-latest
steps:
- name: Download docs
uses: actions/download-artifact@v4
with:
name: docs
path: docs-build
- name: Download new docs
uses: actions/download-artifact@v4
with:
name: new-docs
path: docs-build/new
- name: Check for GHPAGES_DEPLOY_KEY token
id: deployable
# if: github.event_name == 'release'
env:
GHPAGES_DEPLOY_KEY: "${{ secrets.GHPAGES_DEPLOY_KEY }}"
run: if [ -n "$GHPAGES_DEPLOY_KEY" ]; then echo "DEPLOY=true" >> $GITHUB_OUTPUT; fi
- name: Deploy Docs to GitHub Pages
if: steps.deployable.outputs.DEPLOY
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GHPAGES_DEPLOY_KEY }}
publish_dir: docs-build
6 changes: 4 additions & 2 deletions .github/workflows/testdask.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- master
- develop
pull_request:

concurrency:
Expand All @@ -18,7 +19,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ['3.9', '3.10', '3.11', '3.12']
python-version: ['3.11', '3.12', '3.13']
fail-fast: false
runs-on: ${{ matrix.os }}

Expand All @@ -27,7 +28,8 @@ jobs:
uses: actions/checkout@v4
with:
repository: ${{ github.repository }}

- name: Fetch tags
run: git fetch --prune --unshallow
- name: Setup Python version ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/testpsijlocal.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- master
- develop
pull_request:

concurrency:
Expand All @@ -27,7 +28,8 @@ jobs:
uses: actions/checkout@v4
with:
repository: ${{ github.repository }}

- name: Fetch tags
run: git fetch --prune --unshallow
- name: Setup Python version ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/testpsijslurm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- master
- develop
pull_request:

concurrency:
Expand All @@ -24,6 +25,8 @@ jobs:
- name: Disable etelemetry
run: echo "NO_ET=TRUE" >> $GITHUB_ENV
- uses: actions/checkout@v4
- name: Fetch tags
run: git fetch --prune --unshallow
- name: Pull docker image
run: |
docker pull $DOCKER_IMAGE
Expand All @@ -47,7 +50,7 @@ jobs:
docker exec slurm bash -c "CONFIGURE_OPTS=\"-with-openssl=/opt/openssl\" pyenv install -v 3.11.5"
fi
docker exec slurm bash -c "pyenv global ${{ matrix.python-version }}"
docker exec slurm bash -c "pip install --upgrade pip && pip install -e /pydra[test,psij] && python -c 'import pydra; print(pydra.__version__)'"
docker exec slurm bash -c "pip install --upgrade pip && pip install -e /pydra[test,psij] && python -c 'import pydra.engine; print(pydra.engine.__version__)'"
- name: Run pytest
run: |
docker exec slurm bash -c "pytest --color=yes -vs -n auto --psij=slurm --cov pydra --cov-config /pydra/.coveragerc --cov-report xml:/pydra/cov.xml --doctest-modules /pydra/pydra/ -k 'not test_audit_prov and not test_audit_prov_messdir_1 and not test_audit_prov_messdir_2 and not test_audit_prov_wf and not test_audit_all'"
Expand Down
54 changes: 8 additions & 46 deletions .github/workflows/testpydra.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- master
- develop
pull_request:

defaults:
Expand Down Expand Up @@ -50,75 +51,36 @@ jobs:
strategy:
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
install: ['wheel']
include:
- os: 'ubuntu-latest'
python-version: '3.11'
install: 'sdist'
- os: 'ubuntu-latest'
python-version: '3.11'
install: 'repo'
- os: 'ubuntu-latest'
python-version: '3.11'
install: 'archive'
python-version: ['3.11', '3.12', '3.13']
fail-fast: false
runs-on: ${{ matrix.os }}


steps:
- name: Fetch sdist/wheel
uses: actions/download-artifact@v4
if: matrix.install == 'sdist' || matrix.install == 'wheel'
with:
name: dist
path: dist/
- name: Fetch git archive
uses: actions/download-artifact@v4
if: matrix.install == 'archive'
with:
name: archive
path: archive/
- name: Fetch repository
uses: actions/checkout@v4
if: matrix.install == 'repo'

- name: Fetch tags
run: git fetch --prune --unshallow
- name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Update pip
run: python -m pip install --upgrade pip

- name: Determine installation target
run: |
if [[ "$INSTALL" = "sdist" ]]; then
echo "ARCHIVE=$( ls dist/*.tar.gz )" >> $GITHUB_ENV
elif [[ "$INSTALL" = "wheel" ]]; then
echo "ARCHIVE=$( ls dist/*.whl )" >> $GITHUB_ENV
elif [[ "$INSTALL" = "archive" ]]; then
echo "ARCHIVE=$( ls archive/*.zip )" >> $GITHUB_ENV
elif [[ "$INSTALL" = "repo" ]]; then
echo "ARCHIVE=." >> $GITHUB_ENV
fi
env:
INSTALL: ${{ matrix.install }}

- name: Install Pydra
run: pip install $ARCHIVE
run: pip install .[test]

- name: Print version
run: python -c "import pydra; print(pydra.__version__)"

- name: Install Pydra tests dependencies
run: pip install pydra[test]
run: python -c "import pydra.engine; print(pydra.engine.__version__)"

- name: Disable etelemetry
run: echo "NO_ET=TRUE" >> $GITHUB_ENV

- name: Pytest
run: |
pytest -vs -n auto --doctest-modules --pyargs pydra \
pytest -vs -n auto --doctest-modules \
--cov pydra --cov-config .coveragerc --cov-report xml:cov.xml

- name: Upload to codecov
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/testsingularity.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- master
- develop
pull_request:

concurrency:
Expand All @@ -13,10 +14,10 @@ concurrency:
jobs:
build:
name: Build
runs-on: ubuntu-latest
runs-on: ubuntu-22.04
strategy:
matrix:
python-version: [3.8, 3.9, "3.10", "3.11"]
python-version: ['3.11', '3.12', '3.13']
fail-fast: False

steps:
Expand Down Expand Up @@ -64,11 +65,13 @@ jobs:
uses: actions/checkout@v4
with:
repository: ${{ github.repository }}
- name: Fetch tags
run: git fetch --prune --unshallow
- name: Install pydra (test)
run: pip install -e ".[test]"


- name: Pytest
run: pytest -vs --cov pydra --cov-config .coveragerc --cov-report xml:cov.xml pydra/engine/tests/test_singularity.py
run: pytest -vs --cov pydra --cov-config .coveragerc --cov-report xml:cov.xml pydra/engine/tests/test_singularity.py pydra/engine/tests/test_environments.py
- name: Upload to codecov
run: codecov -f cov.xml -F unittests -e GITHUB_WORKFLOW
7 changes: 5 additions & 2 deletions .github/workflows/testslurm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
push:
branches:
- master
- develop
pull_request:

concurrency:
Expand All @@ -14,7 +15,7 @@ jobs:
build:
strategy:
matrix:
python-version: [3.8.16, 3.9.16, 3.10.9, 3.11.5]
python-version: [3.11.5]
fail-fast: false
runs-on: ubuntu-latest
env:
Expand All @@ -24,6 +25,8 @@ jobs:
- name: Disable etelemetry
run: echo "NO_ET=TRUE" >> $GITHUB_ENV
- uses: actions/checkout@v4
- name: Fetch tags
run: git fetch --prune --unshallow
- name: Pull docker image
run: |
docker pull $DOCKER_IMAGE
Expand All @@ -47,7 +50,7 @@ jobs:
docker exec slurm bash -c "CONFIGURE_OPTS=\"-with-openssl=/opt/openssl\" pyenv install -v 3.11.5"
fi
docker exec slurm bash -c "pyenv global ${{ matrix.python-version }}"
docker exec slurm bash -c "pip install --upgrade pip && pip install -e /pydra[test] && python -c 'import pydra; print(pydra.__version__)'"
docker exec slurm bash -c "pip install --upgrade pip && pip install -e /pydra[test] && python -c 'import pydra.engine; print(pydra.engine.__version__)'"
- name: Run pytest
run: |
docker exec slurm bash -c "pytest --color=yes -vs --cov pydra --cov-config /pydra/.coveragerc --cov-report xml:/pydra/cov.xml --doctest-modules /pydra/pydra/ -k 'not test_audit_prov and not test_audit_prov_messdir_1 and not test_audit_prov_messdir_2 and not test_audit_prov_wf and not test_audit_all'"
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ dist

__pycache__
*.pyc
.python-version

.ipynb_checkpoints
.vscode/
Expand All @@ -18,6 +19,8 @@ cov.xml
*.venv

.DS_Store
.ipynb_checkpoints

# This can be generated in-tree. We never want to commit it.
pydra/_version.py
pydra/engine/_version.py
Loading
Loading