Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
178 commits
Select commit Hold shift + click to select a range
ed9d82d
feat[next]: GTIR `as_fieldop` fusion pass (#1670)
tehrengruber Oct 11, 2024
b339b82
feat[next]: Add IR transform to remove unnecessary cast expressions (…
edopao Oct 14, 2024
9feb51d
[next]: Fix inline lambda pass opcount preserving option (#1687)
tehrengruber Oct 14, 2024
5ce0fb8
feat[next]: gtir lowering of broadcasted scalars (#1677)
havogt Oct 16, 2024
3f7fcee
feat[next]: Allow type inference without domain argument to `as_field…
tehrengruber Oct 16, 2024
0a27c7a
feat[next][dace]: GTIR-to-DaCe lowering of map-reduce (only full conn…
edopao Oct 17, 2024
78791c7
feat[next][dace]: GTIR-to-SDFG broadcast tuple scalar arg + cleanup (…
edopao Oct 18, 2024
cb77ccb
refactor[cartesian]: Warn if GT4Py can't find DaCe (#1692)
romanc Oct 18, 2024
eb0a0c1
feat[next]: GTIR temporary extraction pass (#1678)
tehrengruber Oct 18, 2024
7f7a866
feat[next][dace]: Cleanup scalar args (#1695)
edopao Oct 23, 2024
4eb4d4d
feat[next][dace]: GTIR-to-DaCe lowering of map-reduce with skip value…
edopao Oct 23, 2024
5f9891e
bug[next]: foast2gtir lowering of broadcasted field (#1701)
havogt Oct 23, 2024
b802010
fix[cartesian]: Verbose frontend error for bad call (#1700)
FlorianDeconinck Oct 23, 2024
c1106fc
fext[next]: GTIR embedded backend (not active in tests) (#1702)
havogt Oct 23, 2024
2927eba
fix[next][dace]: Avoid bool cast in branch condition expressions (#1707)
edopao Oct 24, 2024
77a8a6d
feat[next][dace]: Stop carrying reduce identity in args context (#1704)
edopao Oct 25, 2024
eb05a0a
feat[next][dace]: Fix lowering of nested let-statements (#1697)
edopao Oct 25, 2024
db249bd
bug[next][dace]: Fix lowering of broadcast (#1698)
edopao Oct 25, 2024
692c14b
refactor[cartesian]: Replace `is_start_state=` with `is_start_block=`…
romanc Oct 28, 2024
96f67dc
feat[next]: Allow partial type inference on ITIR (#1706)
tehrengruber Oct 28, 2024
c78bafd
tests: fix name of license file configured in pyproject.toml (#1718)
romanc Oct 29, 2024
f1c9d83
ci: use actions/checkout@v4 and actions/setup-python@v5 (#1717)
romanc Oct 31, 2024
e8f11fe
bug[next]: fix lowering of tuples of neighbors in conditionals (#1710)
havogt Nov 1, 2024
162a512
build: update dependencies (#1720)
havogt Nov 4, 2024
78d8e92
feat[next]: enable gtir.embedded (and add support for Lists in output…
havogt Nov 4, 2024
827d40c
test[cartesian]: Unskip blocked DaCe tests after DaCe upgrade (#1714)
romanc Nov 4, 2024
44d6224
feat[next][dace]: Add helper method to replace unicode symbols (#1696)
edopao Nov 4, 2024
9f3b0a7
feat[next]: Index builtin (#1699)
SF-N Nov 4, 2024
d3bd61d
test[next]: non-supported itir.List test-case (#1721)
havogt Nov 4, 2024
d4b1d75
fix[DaCe]: Disable Some Transformations (#1711)
philip-paul-mueller Nov 4, 2024
725b6ba
build: update gitpod image (#1722)
havogt Nov 4, 2024
eea1fb6
bug[next]: fix missing local kind in gtfn connectivity (#1715)
havogt Nov 4, 2024
604e377
feat[next]: Enable GTIR dace backend in feature tests (#1705)
edopao Nov 5, 2024
60bb7b1
fix[cartesian]: While loops inside conditions (#1712)
romanc Nov 5, 2024
6873a0e
fix[next][dace]: Fix for nested SDFG outer data descriptor (#1726)
edopao Nov 6, 2024
1b9eb5c
feat[next]: Add memory and disk-based caching to more workflow steps …
SF-N Nov 7, 2024
855ddc8
fix[next]: Bugfix in dace-ITIR backend: use canonical name for field …
edopao Nov 8, 2024
5ce0d9d
build: Bump gridtools-cpp to 2.3.7 in preparation of #1648 (#1732)
tehrengruber Nov 11, 2024
89fea8f
bug[next]: Fix ITIR program hash stability (#1733)
tehrengruber Nov 14, 2024
b60ffff
build: Bump gridtools-cpp to 2.3.8 in preparation of #1648 (#1737)
tehrengruber Nov 14, 2024
c51bdd1
fix[next]: Fix type preservation in CSE (#1736)
tehrengruber Nov 15, 2024
998f279
feat[next]: GTIR embedded and GTFN temporaries with new lowering (#1648)
tehrengruber Nov 15, 2024
aeff1e3
refactor[catesian]: Type hints and code redability improvements (#1724)
romanc Nov 15, 2024
ea8d9db
ci: Bump gitlab ci on todi to ubuntu 22.04, cuda 12.6.2, cupy 13.3.0 …
tehrengruber Nov 15, 2024
a00154a
feat[next][dace]: Use offset_type to represent neighborhood informati…
edopao Nov 18, 2024
a9a9992
feat[next]: Upgrade dace dependency to v1.0.0 (#1740)
edopao Nov 18, 2024
9dbc884
feat[next]: Enable GPU tests on GTIR DaCe backend (#1741)
edopao Nov 19, 2024
5e93736
feat[next]: Extend the IR pass for pruning of unnecessary casts (#1728)
edopao Nov 20, 2024
0a01597
bug[next]: extract scalar value with correct dtype (#1723)
havogt Nov 21, 2024
1cb29e3
build: add devcontainer setup (#1725)
havogt Nov 25, 2024
d7f5552
feat[next]: remove NeighborTableOffsetProvider, use gtx.as_connectivi…
havogt Nov 25, 2024
3fb206e
feat[next][dace]: Symbolic domain without dace array offsets (#1735)
edopao Nov 26, 2024
f6c219b
bug[next]: Fix SetAt type inference for ts.DeferredType (#1747)
SF-N Nov 26, 2024
f6c0498
feat[next][dace]: Lowering to SDFG of index builtin (#1751)
edopao Nov 27, 2024
3ece412
fix[cartesian]: Deactivate K offset write in `gt:gpu` (#1755)
FlorianDeconinck Nov 28, 2024
8860584
refact[next][dace]: Helper function for field operator constructor (#…
edopao Nov 29, 2024
d9b38f4
hotfix[cartesian]: Fixing k offset write utest deactivate (#1757)
FlorianDeconinck Nov 29, 2024
791f67d
test[next]: Fix flaky failure in GTIR to SDFG tests (#1759)
edopao Nov 29, 2024
04513ba
fix[next]: use current working directory as default cache folder root…
egparedes Nov 29, 2024
d581060
bug[next]: ConstantFolding after create_global_tmps (#1756)
SF-N Nov 30, 2024
a26d91f
fix[next]: Fix annex & type preservation in inline_lambdas (#1760)
tehrengruber Dec 1, 2024
99c5300
refactor[next]: Use `set_at` & `as_fieldop` instead of `closure` in i…
tehrengruber Dec 1, 2024
6f49699
style[eve]: remove unused imports and fix typos (#1748)
romanc Dec 2, 2024
f57d6e9
fix[next]: Guard diskcache creation by file lock (#1745)
tehrengruber Dec 2, 2024
e5abcd2
bug[next]: Fix codegen in gtfn for unused vertical offset provider (#…
nfarabullini Dec 3, 2024
a2551ac
feat[next]: Remove dace_iterator backend and pass_manager_legacy (#1753)
edopao Dec 3, 2024
a936761
bug[next]: Fix astype for local fields (#1761)
SF-N Dec 4, 2024
10adb2c
test[next]: cleanup test markers (#1767)
edopao Dec 4, 2024
ea61659
test[next]: Disable iterator tests on DaCe GTIR backend (#1768)
edopao Dec 4, 2024
33c5ba3
feat[dace]: Updated DaCe Transformations (#1639)
philip-paul-mueller Dec 4, 2024
39fb949
style[cartesian]: readability improvements and more type hints (#1752)
romanc Dec 5, 2024
8b6abc2
refactor[next]: remove use of Fencil in tracing (eliminate `closure`)…
havogt Dec 6, 2024
06813d5
refactor[next]: remove all FencilDefinitions from tests (#1773)
havogt Dec 6, 2024
2c48858
feat[dace]: Restirct Loop Blocking (#1775)
philip-paul-mueller Dec 6, 2024
54f176f
refactor[next]: remove FencilDefinition definition (#1774)
havogt Dec 6, 2024
ae62965
feat[next]: Inline dynamic shifts (#1738)
tehrengruber Dec 6, 2024
29b6af2
build: fix min version of filelock (#1777)
havogt Dec 9, 2024
9888905
feat[next]: Change interval syntax in ITIR pretty printer (#1766)
tehrengruber Dec 10, 2024
06b398a
refact[next][dace]: split handling of let-statement lambdas from sten…
edopao Dec 16, 2024
77cad7c
feat[dace][next]: Fixing strides in optimization (#1782)
philip-paul-mueller Dec 20, 2024
e8743dd
ci: fix boost install in cartesian and daily ci plan (#1787)
havogt Jan 6, 2025
8040178
bug[next]: Fix propagated symbols order stability across runs (#1788)
tehrengruber Jan 7, 2025
1601d87
fix[cartesian]: Race condition in unit test for K write (#1791)
FlorianDeconinck Jan 10, 2025
3a1a403
build: drop support for python 3.8 and 3.9 (#1792)
egparedes Jan 10, 2025
22e4a89
refactor[next]: use eve.datamodel for types (#1750)
havogt Jan 10, 2025
9a56fbd
feat[next]: SDFGConvertible Program for dace_fieldview backend (#1742)
DropD Jan 13, 2025
4dc1531
ci: Re-enable CI on GH200 (#1653)
havogt Jan 14, 2025
8346bcd
bug[next]: Fix CSE inside stencil (#1793)
tehrengruber Jan 14, 2025
db5325b
fix[next]: gtfn with offset name != local dimension name (#1789)
havogt Jan 14, 2025
21e7f64
feature[next]: Non-tree-size-increasing collapse tuple on ifs (#1762)
tehrengruber Jan 15, 2025
33bb68b
fix[next][dace]: remove unused connectivities (#1797)
edopao Jan 15, 2025
17bae8e
feat[next][dace]: iterator-view support to DaCe backend (#1790)
edopao Jan 15, 2025
b73b6ff
ci[cartesian]: disable test_K_offset_write on gt:gpu backend (#1800)
edopao Jan 15, 2025
99b5042
ci: disable x86-targets (DaintXC) in CSCS CI-Ext (#1801)
edopao Jan 16, 2025
1b88276
fix[dace][next]: Fix for DistributedBufferRelocator (#1799)
philip-paul-mueller Jan 16, 2025
489ccbb
feat[next]: Output argument with non-zero domain start (#1780)
tehrengruber Jan 17, 2025
1b17202
fix[next][dace]: Fixing Strides Reconstruction During Propagation (#1…
philip-paul-mueller Jan 17, 2025
517e1e9
feat[next]: Support for direct field operator call with domain arg (#…
tehrengruber Jan 18, 2025
0455024
ci[next]: Remove Github CI on GTIR branch (#1804)
edopao Jan 20, 2025
bf57c0c
feat[next][dace]: lowering of scan to SDFG (#1776)
edopao Jan 20, 2025
8eae147
style[cartesian]: Remove unused optional keyword arguments (#1805)
romanc Jan 21, 2025
7e566fc
feature[next]: Runtime check args in is_call_to (#1796)
tehrengruber Jan 21, 2025
ae603cb
refactor[next][dace]: normalize SDFG field type with local dimension …
edopao Jan 21, 2025
022a73c
feat[next]: Add support for more datatypes (#1786)
SF-N Jan 21, 2025
6e486d8
refactor[next]: remove DaCe to GTFN dependency for IR hash functions …
edopao Jan 21, 2025
44578ec
ci: disable test config for DaintXC (#1812)
edopao Jan 21, 2025
9bbb952
fix[next][dace]: Fix for `DistributedBufferRelocator` (#1814)
philip-paul-mueller Jan 22, 2025
89d3b0d
refactor[next][dace]: cleanup dace backend module (#1811)
edopao Jan 22, 2025
758ee03
test[cartesian]: Increased coverage for horizontal regions (#1807)
romanc Jan 22, 2025
57ad892
style[cartesian]: fixing typos (#1815)
romanc Jan 22, 2025
2866f38
feat[next]: Only inline scalars outside of stencils (#1794)
tehrengruber Jan 22, 2025
12f8ce8
build: bump actions/upload-artifacts v3 -> v4 (#1821)
romanc Jan 24, 2025
5588c85
ci[cartesian]: mypy warns about unused ignores (#1823)
romanc Jan 27, 2025
312b4a8
build: bump actions/download-artifacts v3 -> v4 (#1822)
romanc Jan 27, 2025
12ff610
refactor[next]: fixed point transformation pass infrastructure (#1826)
SF-N Jan 27, 2025
e378877
refactor[next]: neg builtin for unary minus (#1819)
SF-N Jan 27, 2025
9be2d2d
refactor[next]: new ir.makers for common builtins (#1827)
SF-N Jan 28, 2025
a21b1bf
docs[next]: Updated the ADR0018 (#1798)
philip-paul-mueller Jan 29, 2025
d67bd7e
fix[dace]: Fixed a bug in `gt_make_transients_persistent()` (#1831)
philip-paul-mueller Jan 29, 2025
ac47ca6
fix[next][dace]: handle if-expression as non-exclusive in field view …
edopao Jan 29, 2025
f732f08
refactor[next][daxce]: cleanup get_sdfg_args() parameter list (#1834)
edopao Jan 29, 2025
c228f22
build: update infrastructure to use the uv tool (#1813)
egparedes Jan 29, 2025
5752f2b
feat[next][dace]: keep transients on the output of a mapped nested SD…
edopao Jan 30, 2025
1ccc7c9
docs: update detailed nox examples (#1838)
romanc Jan 30, 2025
050d3b3
refactor[cartesian]: Minor cleanup in backends (#1833)
romanc Jan 30, 2025
f0c67e6
feat[next][dace]: support for field origin in lowering to SDFG (#1818)
edopao Jan 30, 2025
c06cac3
bug[next]: Use same python in CMake as used for execution (#1567)
tehrengruber Jan 31, 2025
6f83598
build: use frozen dependencies when running mypy in pre-commit (#1841)
havogt Jan 31, 2025
b18bbf9
bug[next]: Fix accept args (#1830)
tehrengruber Feb 1, 2025
ac253b6
fix[next]: reshuffling for fields with non-zero domain start (#1845)
havogt Feb 3, 2025
c17b882
bug[next]: Fix for GTIR partial type inference (#1840)
tehrengruber Feb 4, 2025
14d18b3
build[next]: switch dace version to main branch from git repo (#1835)
edopao Feb 5, 2025
d916ae5
feat[next]: Improve fieldop fusion (#1764)
tehrengruber Feb 6, 2025
5c3393f
fix[next][dace]: make if_ always execute branch exclusively (#1846)
edopao Feb 7, 2025
34b574a
fix[dace]: Updating MapFusion (#1850)
philip-paul-mueller Feb 7, 2025
4b566d7
ci[cartesian]: Thread safe parallel stencil tests (#1849)
romanc Feb 7, 2025
05b3b87
tests[cartesian]: Increase horizontal region test coverage (#1851)
romanc Feb 10, 2025
3be5064
test[next]: enable gpu test for 1d scan on dace backend (#1854)
edopao Feb 11, 2025
c96e19e
build: upgrade gt4py to numpy 2.x (#1852)
edopao Feb 11, 2025
64b90dc
fix[next][dace]: fix map fusion and loop blocking (#1856)
edopao Feb 11, 2025
83985b2
build: bump minimum matplotlib version (#1858)
havogt Feb 12, 2025
27ad384
fix[dace][next]: Fixed `LoopBlocking` (#1859)
philip-paul-mueller Feb 14, 2025
937e894
fix[dace][next]: Update MapFusion (#1857)
philip-paul-mueller Feb 14, 2025
29f9581
bug[next]: Fix domain pickle after `slice_at` call (#1865)
tehrengruber Feb 14, 2025
c76f6d3
bug[next]: Fix applied lift extraction in CSE (#1864)
tehrengruber Feb 14, 2025
8595cfd
fix[next][dace]: Fixed a bug in the map fusion's default parameter (#…
philip-paul-mueller Feb 14, 2025
3f85165
refactor[cartesian]: unexpanded sdfg cleanups (#1860)
romanc Feb 17, 2025
f7f2a0a
fix[dace][next]: Fixed name of pattern nodes (#1871)
philip-paul-mueller Feb 17, 2025
cae8753
ci: Read env variable from os environment, not from nox (#1869)
edopao Feb 17, 2025
0d65ae9
fix[next][dace]: use logical and/or/xor operators, not bitwise (#1872)
edopao Feb 18, 2025
4456f43
fix[next]: Git ignore gt4py cache (#1875)
tehrengruber Feb 20, 2025
1a46fb0
fix[next][dace]: remove temporary arrays with runtime shape on the ou…
edopao Feb 20, 2025
1176b2d
fix[cartesian]: DataType.isinteger() for 16-bit integers (#1878)
romanc Feb 20, 2025
1984691
fix[cartesian, dace]: warn about missing support for casting in varia…
romanc Feb 21, 2025
3249aa5
test[next]: initialize output array in dace-gtir subdomain tests (#1886)
edopao Feb 25, 2025
32c569b
fix[dace][next]: Updated `gt_auto_optimize()` (#1889)
philip-paul-mueller Feb 26, 2025
194d27a
Remove the occurences of the old license headers (#1887)
twicki Feb 26, 2025
3ba7e62
ci: Fail CI if xfails pass unexpectedly (#1888)
romanc Feb 26, 2025
847d8ab
test[cartesian]: conditional xfail instead of two tests (#1885)
romanc Feb 27, 2025
587d107
bug[next]: Respect evaluation order in `InlineCenterDerefLiftVars` (#…
tehrengruber Feb 27, 2025
70569bc
fix[cartesian]: Fix minimal k-range computation (#1842)
twicki Feb 27, 2025
9d1bdd6
feat[next][dace]: Added `MultiStateGlobalSelfCopyElimination` (#1890)
philip-paul-mueller Feb 28, 2025
7bdfaa1
feat[next]: ITIR type inference: store param types in `itir.Lambda` (…
tehrengruber Mar 3, 2025
efb6373
refactor[next]: Global ordering relation of dimensions (#1847)
SF-N Mar 3, 2025
b6a3162
refactor: stick to supported device types (#1879)
romanc Mar 4, 2025
28eba10
style[cartesian]: Cleanup codegen tests (#1899)
twicki Mar 4, 2025
c610561
refactor[cartesian]: gt4py/dace bridge cleanup (#1895)
romanc Mar 4, 2025
098d325
refactor[next]: Simplify `ir_makers.domain` (#1903)
SF-N Mar 6, 2025
629a073
fix[next][dace]: Update cuda codegen for concat_where (#1906)
edopao Mar 7, 2025
2f4db72
feat[dace][next]: Added `CopyChainRemover` (#1901)
philip-paul-mueller Mar 10, 2025
5a08426
fix[dace][next]: Fixed some undefined behaviour in the chain remover.…
philip-paul-mueller Mar 13, 2025
ee950ee
feat[dace][next]: Updated GPU Transformation Scheme (#1904)
philip-paul-mueller Mar 13, 2025
0e36208
docs: rename ADRs/Index.md to README.md (#1907)
romanc Mar 14, 2025
42850f0
docs: rename ADRs/Index.md to README.md (#1907)
romanc Mar 14, 2025
9be98f6
refactor: centralize `CUPY_DEVICE_TYPE` in `_core/definitions` (#1908)
romanc Mar 17, 2025
7c65eea
feat[next]: Extend and refactor constant folding (#1810)
SF-N Mar 17, 2025
e6b9398
refactor[cartesian]: Dace backend: expose control flow (#1894)
romanc Mar 18, 2025
8b96ee4
refactor[cartesian, storage]: break dependency cycle; replace `GT4PY_…
romanc Mar 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
24 changes: 24 additions & 0 deletions .devcontainer/.vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Current File (just my code)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": true
},
{
"name": "Python: Current File (all)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": false
}
]
}
5 changes: 5 additions & 0 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
FROM mcr.microsoft.com/devcontainers/python:1-3.10-bookworm
RUN apt-get update \
&& export DEBIAN_FRONTEND=noninteractive && apt-get install -y libboost-dev \
&& apt-get clean && rm -rf /var/cache/apt/* && rm -rf /var/lib/apt/lists/* && rm -rf /tmp/*
RUN curl -LsSf https://astral.sh/uv/install.sh | env UV_INSTALL_DIR="/bin" sh
49 changes: 49 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/python
{
"name": "Python 3",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"build": {
"dockerfile": "Dockerfile"
},

// Features to add to the dev container. More info: https://containers.dev/features.
// "features": {},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "bash .devcontainer/setup.sh",

"containerEnv": {
"PRE_COMMIT_HOME": "/workspaces/gt4py/.caches/pre-commit"
},

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Set *default* container specific settings.json values on container create.
"settings": {
"python.formatting.provider": "ruff",
"python.testing.pytestEnabled": true,
"python.defaultInterpreterPath": "/workspaces/gt4py/.venv/bin/python",
"files.insertFinalNewline": true,
"python.terminal.activateEnvironment": true,
"cmake.ignoreCMakeListsMissing": true
},
"extensions": [
"charliermarsh.ruff",
"donjayamanne.githistory",
"github.vscode-github-actions",
"lextudio.restructuredtext",
"ms-python.python",
"ms-vsliveshare.vsliveshare",
"swyddfa.esbonio"
]
}
}
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
10 changes: 10 additions & 0 deletions .devcontainer/setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/sh

ln -sfn /workspaces/gt4py/.devcontainer/.vscode /workspaces/gt4py/.vscode
uv venv .venv
source .venv/bin/activate
uv pip install -r requirements-dev.txt
uv pip install -e .
uv pip install -i https://test.pypi.org/simple/ atlas4py
pre-commit install --install-hooks
deactivate
4 changes: 2 additions & 2 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Delete this comment and add a proper description of the changes contained in thi
- test: Adding missing tests or correcting existing tests

<scope>: cartesian | eve | next | storage
# ONLY if changes are limited to a specific subsytem
# ONLY if changes are limited to a specific subsystem

- PR Description:

Expand All @@ -27,7 +27,7 @@ Delete this comment and add a proper description of the changes contained in thi
## Requirements

- [ ] All fixes and/or new features come with corresponding tests.
- [ ] Important design decisions have been documented in the approriate ADR inside the [docs/development/ADRs/](docs/development/ADRs/Index.md) folder.
- [ ] Important design decisions have been documented in the appropriate ADR inside the [docs/development/ADRs/](docs/development/ADRs/Index.md) folder.

If this PR contains code authored by new contributors please make sure:

Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/_disabled/gt4py-sphinx.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,9 @@ on:
push:
branches:
- main
- gtir # TODO(tehrengruber): remove after GTIR refactoring #1582
pull_request:
branches:
- main
- gtir # TODO(tehrengruber): remove after GTIR refactoring #1582

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand All @@ -22,7 +20,7 @@ jobs:
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: 3.8
python-version: 3.10
- name: Install dependencies
run: |
python -m pip install --upgrade pip
Expand Down
24 changes: 13 additions & 11 deletions .github/workflows/code-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,26 @@ on:
push:
branches:
- main
- gtir # TODO(tehrengruber): remove after GTIR refactoring #1582
pull_request:
branches:
- main
- gtir # TODO(tehrengruber): remove after GTIR refactoring #1582

jobs:
code-quality:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version-file: ".python-version"

- name: Install uv
uses: astral-sh/setup-uv@v5
with:
python-version: "3.10"
cache: 'pip'
cache-dependency-path: |
**/pyproject.toml
**/constraints.txt
**/requirements-dev.txt
- uses: pre-commit/action@v3.0.0
enable-cache: true
cache-dependency-glob: "uv.lock"

- name: "Run pre-commit"
uses: pre-commit/action@v3.0.1
137 changes: 56 additions & 81 deletions .github/workflows/daily-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ on:
- cron: '0 4 * * *'
workflow_dispatch:

## COMMENTED OUT: only for testing CI action changes
## COMMENTED OUT: only for testing CI action changes.
## It only works for PRs to `main` branch from branches in the upstream gt4py repo.
# pull_request:
# branches:
# - main
Expand All @@ -15,113 +16,87 @@ jobs:
daily-ci:
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11"]
tox-module-factor: ["cartesian", "eve", "next", "storage"]
os: ["ubuntu-latest"]
requirements-file: ["requirements-dev.txt", "min-requirements-test.txt", "min-extra-requirements-test.txt"]
# dependencies-strategy -> The strategy that `uv lock` should use to select
# between the different compatible versions for a given package requirement
# [arg: --resolution, env: UV_RESOLUTION=]
dependencies-strategy: ["lowest-direct", "highest"]
gt4py-module: ["cartesian", "eve", "next", "storage"]
os: ["ubuntu-latest"] #, "macos-latest"]
python-version: ["3.10", "3.11"]
fail-fast: false

runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4

- name: Install C++ libraries
if: ${{ matrix.os == 'macos-latest' }}
shell: bash
run: |
brew install boost
run: brew install boost

- name: Install C++ libraries
if: ${{ matrix.os == 'ubuntu-latest' }}
shell: bash
run: |
sudo apt install libboost-dev
wget https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.gz
echo 7bd7ddceec1a1dfdcbdb3e609b60d01739c38390a5f956385a12f3122049f0ca boost_1_76_0.tar.gz > boost_hash.txt
sha256sum -c boost_hash.txt
tar xzf boost_1_76_0.tar.gz
mkdir -p boost/include
mv boost_1_76_0/boost boost/include/
echo "BOOST_ROOT=${PWD}/boost" >> $GITHUB_ENV
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
run: sudo apt install libboost-dev

- name: Install uv and set the python version
uses: astral-sh/setup-uv@v5
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
python-version: ${{ matrix.python-version }}
cache: 'pip'
cache-dependency-path: |
**/pyproject.toml
**/constraints.txt
**/requirements-dev.txt
- name: Install tox
run: |
python -m pip install -c ./constraints.txt pip setuptools wheel tox
python -m pip list
- name: Update requirements
run: |
pyversion=${{ matrix.python-version }}
pyversion_no_dot=${pyversion//./}
tox run -e requirements-py${pyversion_no_dot}
# TODO(egparedes): add notification for dependencies updates
# - name: Check for updated requirements
# id: update-requirements
# continue-on-error: true
# if: ${{ matrix.python-version == '3.8' && matrix.tox-module-factor == 'cartesian' }}
# shell: bash
# run: |
# if diff -q constraints.txt CURRENT-constraints.txt; then
# echo "REQS_DIFF=''" >> $GITHUB_OUTPUT
# else
# diff --changed-group-format='%<' --unchanged-group-format='' constraints.txt CURRENT-constraints.txt | tr '\n' ' ' > constraints.txt.diff
# echo "REQS_DIFF='$(cat constraints.txt.diff)'" >> $GITHUB_OUTPUT
# fi
# echo "REQS_DIFF_TEST="FOOOOOOOO" >> $GITHUB_OUTPUT
# - name: Notify updated requirements (if any)
# if: ${{ steps.update-requirements.outputs.REQS_DIFF }}
# env:
# SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
# uses: slackapi/slack-github-action@v1.23.0
# with:
# channel-id: ${{ vars.SLACK_BOT_CHANNEL }}
# payload: |
# {
# "text": "TEXT",
# "blocks": [
# {
# "type": "section",
# "text": {
# "type": "plain_text",
# "text": "@channel: AA/${{ steps.update-requirements.outputs.REQS_DIFF }}/BB/ ${{ steps.update-requirements.outputs.REQS_DIFF_TEST }} /CC"
# }
# },
# {
# "type": "section",
# "text": {
# "type": "mrkdwn",
# "text": "@channel: AA/${{ steps.update-requirements.outputs.REQS_DIFF }}/BB/ ${{ steps.update-requirements.outputs.REQS_DIFF_TEST }} /CC"
# }
# }
# ]
# }
- name: Run tests

- name: Run CPU tests for '${{ matrix.gt4py-module }}' with '${{ matrix.dependencies-strategy }}' resolution strategy
env:
NUM_PROCESSES: auto
ENV_REQUIREMENTS_FILE: ${{ matrix.requirements-file }}
run: |
tox run --skip-missing-interpreters -m test-${{ matrix.tox-module-factor }}-cpu
UV_RESOLUTION: ${{ matrix.dependencies-strategy }}
run: uv run nox -s 'test_${{ matrix.gt4py-module }}-${{ matrix.python-version }}' -t 'cpu'

- name: Notify slack
if: ${{ failure() }}
env:
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
uses: slackapi/slack-github-action@v1.23.0
with:
channel-id: ${{ vars.SLACK_BOT_CHANNEL }}
channel-id: ${{ vars.SLACK_BOT_CHANNEL }} # Use SLACK_BOT_CHANNEL_TEST for testing
payload: |
{
"text": "Failed tests for ${{ github.workflow }} (dependencies-strategy=${{ matrix.dependencies-strategy }}, python=${{ matrix.python-version }}, component=${{ matrix.gt4py-module }}) [https://github.com/GridTools/gt4py/actions/runs/${{ github.run_id }}].",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Failed tests: <https://github.com/GridTools/gt4py/actions/runs/${{ github.run_id }}|${{ github.workflow }}: **${{ matrix.gt4py-module }} (CPU)** for **Python-${{ matrix.python-version }}** with **'${{ matrix.dependencies-strategy }}' uv resolution strategy**.>"
}
}
]
}

weekly-reminder:
runs-on: ubuntu-latest
steps:
- id: get_day_of_the_week
name: Get day of the week
run: echo "day_of_week=$(date +'%u')" >> $GITHUB_OUTPUT

- name: Weekly notification
if: ${{ env.DAY_OF_WEEK == 1 }}
env:
DAY_OF_WEEK: ${{ steps.get_day_of_the_week.outputs.day_of_week }}
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
uses: slackapi/slack-github-action@v1.23.0
with:
channel-id: ${{ vars.SLACK_BOT_CHANNEL }} # Use SLACK_BOT_CHANNEL_TEST for testing
payload: |
{
"text": "${{ github.workflow }}: `test-${{ matrix.tox-module-factor }}-cpu (python${{ matrix.python-version }})`>: *Failed tests!*",
"text": "Weekly reminder to check the latest runs of the GT4Py Daily CI workflow at the GitHub Actions dashboard [https://github.com/GridTools/gt4py/actions/workflows/daily-ci.yml].",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "<https://github.com/GridTools/gt4py/actions/runs/${{ github.run_id }}|${{ github.workflow }}: `test-${{ matrix.tox-module-factor }}-cpu (python${{ matrix.python-version }})`>: *Failed tests!*"
"text": "Weekly reminder to check the latest runs of the <https://github.com/GridTools/gt4py/actions/workflows/daily-ci.yml|GT4Py Daily CI> workflow at the GitHub Actions dashboard."
}
}
]
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/deploy-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@ jobs:
name: Build Python distribution
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: actions/checkout@v4
- name: Set up Python 3.10
uses: actions/setup-python@v3
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install pypa/build
Expand All @@ -26,7 +26,7 @@ jobs:
run: |
python -m build --sdist --wheel --outdir dist/
- name: Upload artifact
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: gt4py-dist
path: ./dist/**
Expand All @@ -42,7 +42,7 @@ jobs:
id-token: write
steps:
- name: Download wheel
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: gt4py-dist
path: dist
Expand All @@ -60,7 +60,7 @@ jobs:
id-token: write
steps:
- name: Download wheel
uses: actions/download-artifact@v3
uses: actions/download-artifact@v4
with:
name: gt4py-dist
path: dist
Expand Down
Loading