Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
de13162
ci: Add Ruff linting
JDBetteridge Oct 16, 2025
35861db
ci: Add actionlint and hadolint for good measure
JDBetteridge Oct 16, 2025
991fa90
ci: Give codelint a name
JDBetteridge Oct 16, 2025
1c37d58
misc: Replace ruff I rules with more specific isort rules
JDBetteridge Oct 17, 2025
57f0d3f
misc: Add support for command line spellchequing with typo
JDBetteridge Oct 17, 2025
7fc9055
misc: Experiment
JDBetteridge Oct 17, 2025
1318b52
misc: Deliberately add a file with a typo
JDBetteridge Oct 17, 2025
aa8a429
ci: Let's break everything by adding typo annotations
JDBetteridge Oct 17, 2025
dcb91ad
scripts: Fix gha helper script
JDBetteridge Oct 17, 2025
6488b9f
scripts: Return non-zero error code, unless stdin is empty
JDBetteridge Oct 17, 2025
792c43c
misc: Typos (ironically)
JDBetteridge Oct 17, 2025
9ed7a65
misc: Remove ./ prefix from path
JDBetteridge Oct 17, 2025
c13dac5
misc: Prevent isort from sorting __init__.py
JDBetteridge Nov 13, 2025
c42e252
misc: Change overly strict isort rule
JDBetteridge Nov 13, 2025
7ce6a1c
ci: Shutup CodeQL
JDBetteridge Nov 13, 2025
89eb09a
misc: Add a configuration for running pre-commit hooks
JDBetteridge Nov 13, 2025
007206c
lint: Remove all the trailing whitespace
JDBetteridge Nov 13, 2025
7fef2f5
lint: Fix ends of files
JDBetteridge Dec 24, 2025
2ccf2ab
lint: First pass with ruff --fix
JDBetteridge Dec 24, 2025
1ec3c7f
lint: Re-sort all imports with new isort rules
JDBetteridge Dec 24, 2025
b82827c
misc: Update Hadolint rules and clean dockerfiles
JDBetteridge Dec 24, 2025
4ded06b
misc: Lint action files
JDBetteridge Jan 2, 2026
e2ffe37
misc: Fix typos in Devito
JDBetteridge Jan 2, 2026
b450d67
misc: Fix typos in examples
JDBetteridge Jan 2, 2026
680f1b5
misc: Fix typos in tests
JDBetteridge Jan 2, 2026
74243a7
misc: Kick CI
JDBetteridge Jan 2, 2026
67d7c08
misc: Manual linting for Devito
JDBetteridge Jan 3, 2026
26c3580
misc: Automated linting fixes in examples, tests, scripts
JDBetteridge Jan 4, 2026
d3b879c
misc: Manually lint examples, tests, scripts, etc
JDBetteridge Jan 4, 2026
380f399
misc: Update precommit to include flake8
JDBetteridge Jan 5, 2026
540a43f
misc: Various fixes
JDBetteridge Jan 5, 2026
c91949e
Merge pull request #2814 from devitocodes/JDBetteridge/ruff_manual_ch…
JDBetteridge Jan 6, 2026
5c48147
Merge pull request #2813 from devitocodes/JDBetteridge/ruff_manual_ch…
JDBetteridge Jan 6, 2026
977c550
ci: Change linting order to run ruff before flake8
JDBetteridge Jan 6, 2026
c3bc3f8
misc: Update contributing guidelines to include pre-commit
JDBetteridge Jan 6, 2026
9893ad8
Revert "misc: Deliberately add a file with a typo"
JDBetteridge Jan 6, 2026
9595621
misc: Fix helper script
JDBetteridge Jan 6, 2026
83d7f50
misc: Remove double import of ctypes in allocators
JDBetteridge Jan 6, 2026
8d1fa60
misc: Isolated fixes that only break things in PRO
JDBetteridge Jan 6, 2026
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
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .deploy_key.enc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
gAAAAABeDg5ZyNUhS3dc25RQZvpvHGAkmK6zQU8i3YRb9yUTC4MCQ0nkl215UQh0kNYoRcxaeJ7ecRYUjBamraRCVaaWvNal8DV9Ba9abHVZVA3T1rv7ptbcAmMgUK6e4LMc7xGB5w2GBTEjLSc9oGOhAiuFD-OPU6WVwEskiRD4D0SAmuRuI_8fTdpuV10plvGJNXM48TrDWabBnp2F2x-6GB0jqtuq6Z6yXIJ-cmgWRXzVAEj9NjYgKD3xeB4-8Mv9O1RMhazlRMQX5NFvcdNYPhdxIr0olFsoXhcavOmpsMNljLfl1MVnLtCp2QHzAjjIMKGtmBDYILUvKXdknmHi3hGcz_tTLCfSk976Qycf5pQwhlxNsoMfr4p3m3EvL7rXfwZCcctwiIZFzZn7SayMV1IMYUEAWR6JwbaUU93AHw_VrGM-urqMJIzZ_TMQ96RbFgwIjSB8352tOFbya-f1zDFupFDLwY2_XN4wrEactgvkvXI8aunJbBwP-u_YE4JjWU4EGUHebbwUSiDGk7GZ9Ji3KWsRq1QRv5anJMkGjrUSzkLv-5AJBgPz2DOtV6Y19KdqytKXyefE1cGhAXJfjlADkkWy7XikYxXoNSenBH0ccWujp_zn3XRnGc_IvcCyYYGON0VuGPKDDx3amZEGLBgdktkHYwoGkfLpPJygFkJB0-w4hJOsGNi1OQJMfqG5FcrsKBlSvvpsvMCSW_8eY4yQjb7P9DLF2A0kLoTANjg-8bVCUPxYVLMmXMnhJDdyJlq7cqwIcu-8-NgzDPfJFantgSLM2k066BOZpqsZqnaa2TouE9B9Ql3G4cgqEllWhY0v2keQpv3bvQBo9PU-zxztgs5yMrbuK2T2xn3nGyFuj3pchuWhlZiQptkAEi7GcM-iZ5n9WPUC_0qtusaXuddZPAvLLYxECqs9u-14eRykOmvHKRVKNg-AGaOtK602qxZhx3xgHwetHwOipmf-WsL54p7mxn37JyNoUk_O_gCkx5tRmUbCEFupILcfoHnR13cjozm6pqtquJfK1XxHBzHf6e-2DWuooLy3PI-vKKWce9QSjTQgOmxb6XVzdQIJ9vJB4GYgfeevRe9j73OWrKh2VGurVnt_K2wuhjOPRsHlTKMhpfPWlwLFHXdqTDZswRowdaOhcizvamsdI_rNAlRiyB4HQYXVdGLzYQMDEU-dm4psB-xO3UzmHKwGmPXaqsh4pzrC2j3UU4oznI3HE-Qqgj4XEXhilZ8RMmoQWvOhnl_WH7fxxAn7UE80J70w9X2S3yzV_evwPlIJtDc-e7-Rf2GzCln11zTBgOQ9u3aBK-8gLYZV3AF0yxOPpYy0BZAsRUJmrR6K8i3tvFc0_pZIAFwtB2esxJDsA-25CXKaphwGH-ikRl8Ls7WJeffjhPbexfgdbPHwxxanXdh0KMLs47BCOxCy0aardlTHj44wP6pNXD6URnM-d7Aj-SmEmCTBciNexmYlRwRPOb0DdnV5oMH4PABMLvxiB_Lr7LNk5lPdgOzOLCeLnjHyygISTLUKbn9_J-40xomVZfakAkryodCYWK8kSWQ1vTVROwkgpTxA108Yh8AOnBjEUs8csrtmI04ujTnJL7AYoQ0LnsVRMjUqKfWQ_jPt5wTOh-CKjWpBSCpH-OjXbnN0L_bw4vEEfH1YEA4Wi5jcQghEbIBdUcjRsdtfNUZTAVPG0m-EaYDpfEf7UWv-A9z6YhVlLOH67f5uIiskX_bIaiq7A7X3ahgWUzhNVpMjETrpNnu0hE4yI462wtMhEZDv4hO0mT_EeidTCC12609p8clPiWDiO4dTD8ivWqWVZgiK9EIurmxCZE1T489tuzpCZLcwya5Pu5Ddxv8jRzdSdRbX4lju8fCgCYmRS5C5N0VG_2t3bFqxpr8PsHndfobu5MyVCgyAzebOPksMD0ZXJjjhD10_gMU7Njkv5nLpXBIyk3dOkABVBxk5kmd1j1ftQS7j-AcGnvnagIwYFaXWPfgtIRMFoBnRbaJzqSkyobeApAqWN6EhinC8CL9mC1mC9VE6qWykabg1Ev0O7Ke6lRvd9Yl14W1yqr507izMP8uFosjYkZj69FNiWg90I3jDgp0N5MsS3GweVT3ewBYA5AOcQiCmOf4Tcm-TKsYyIJVHrnxOZjD9wDFtviixlYb9GNYIlcvBmuLAWzZh_EUWXW2GRmW-_Y5jZfMUtE6mZVVuKBkKoy8MeiAPcfHg7a-x9Ri_YxArHzUHO0xzI2Zve4K9B3KeZaiIqGf6tIAW3BjFp6L-XnsulBkM7_A847l8vhs-om3wflTUCURuxlxVg0dFokkvIaxQUyeE2Fz-rkmWKHj1M9MLNQIEQ46laSKt4wjEutwsAH_2ycy_HpEsTk4NeGTbS0-RVMxl5OQBy4g6lBvUGMZ4Qm7UuslO5oSzTF8zYsziLX7remEgiIvRdhcMSkU11d4DLASwNNW_fYyacXH4X_fNBIvWdnIjcgrHGYiMNRZ-B6unFEqecfTzJX4zuJ11v1vbh631UnJnY1mOUJ9qTbK0GKrBYpc1dWpq6rRY8LC9xMbCFYFeTVQ8Zgh1IaGsYcnwhZnhbz8_xCsdznjkFKHOM0ttUetXbbSi2GvysJRJiuwnpdZCqjT8VCCvjPBZ7CaBSjb-_yF6T3zTNz3kPJtHA04pPBBhRxSMYPUdAJJfkfZdfjDDON_Qq41EkJhu2bv3MKkcgXSXxtI4j78iXnmg2dWUIjrTIkn__SbqtD5OS_1AIzSssHkuG5TV4iI6yHzTuyFhOAlUv4FOCY_ivIlueBXMC-ZFJ7w2N8gHwwlyfeEkW9RUh8UATkYhEPu4CS4CSNFdRsXBtdJ1cAez2YE88VVcKvE4jiZwFtw78D6CNkYfEJqA8csnLd87_8xSXhNWK238H_Tp3gLlNrMvZpSDEHwEV4pRM_V-HRGcY3jQ0WLCfyqdvJsMu6wBQlNlWpuFJUKiiH6dyu2QKghBQGiZD62AQswtQW4U7nTJZxI3IGEdkluUSd0JI1AUsWRWwpzNYIXhudF3ovPbUsSm0HDrt3wj9tdM6rJ6qcBR44wsIN0p39Jkd5K37-4riH_gOkuvZprE__b_cgfTCaMqCdO88rSDWr9GZkmjllInAp8SvBuuwvFtLy5raMPmxI8OKBdrGfmvbmUHNwQ19Je68cr40Pfmhk08S8yONFQITnC2V1jDxhu4SAX4pW-rQ8yOHXQ9Irb39k9D1HE0y4Dbo54uZZdqtC0EIY3kS2wxxRS8qv1t7Vrj1LVone_jnavXexVG0PBvtiolRtPWNAGLlq53NyJvCSQgOaT4KdwH_euJXYHLQ8N0rA8yICmTzNV_w2SpeZ-NKQIdlEz3Z0W7DqgI8gW8WNGIBKKvh5JdgWQeFHlyo1o4hjLp8R-5LDabjM36reOwCmZT5rdzeOdhkX_vk-PngneBRyOoW4ALQJrmzRiNqGbMw2mM3XOKxCmHASC7zJnyBSTus1ttKJbdoSl2yqAqeB1ClagU3GSuv2Ms577VxoB65z5Sm_LnGeX6ZEWUYhLzj0FKFaE2dTiXR01NYVSymVbTOHpYs4fLEmAjk--O6mwJW62SIVkgXlT13u6pncv97TIxLe8549jkOA4maFcVGmP2YPLgQ_Lx_EMzfa8lvJnOaVSPi020mV8Eli8AWbMoNENK_5pMPhWPWEgZNoPeeQaYQcP5VAKPR7WzocXgf8E5NELlTefe8mwxyuPumGn0u-vYUAKpMRfMEZMawSqnLf8Y2Ujyf488YSS9emX6laOl-oyFGMlv4cRLZF82a2akb2F0sO9-GmLMCv6Rqi6ySjsfpD14N162AibMG2Xl-8j2bDUqFlGAWW6_vwwZ_crZbHq1u6Z3fzr9iTr2cH_2BiN4lbJzw3yZLV7-RP9cDq5kTCzggFXRIxW7w0Q8mgyQjskeKxHbpXKSn1lWoUMX2wtZQl9OYisOVBeF-xeKi2YM8C1JRNRFE8nvLddAaqBgWVUQza5vRJOLqOD-PbIjWv60ifbHT90RwuHK8alvkNoc46eIZhSA6tYL5SmJtJUEBnqUxwb1EjyhlphD1q8h_WL-UXHtjE4uGQzHHFpXK3VPdH9qXF5zkmtMA87CiuRc8Jo-VDMCgKq208-zSj_8y-oTkDGb71bsszulB-GaG3Rn5L1fqvWMeGgwbksEyvwrgej8dhomyNg1YnzoyRXtdX4LyVOPGvx7JlBBE85vLQ697SgXD3SkRhr7ceZQHeWV8Cgq1Tvbnz88JK48fDBgGPnMP6lydp2hxKX_dW19iPycDEkmDALh-2U0_ZpiGPqA48E8cAf3HOYCpuzzdkzhvu-DOQU1WqbcUiPQeeWo1tS-1_HAXT18yRjMJZTQUJivVBq03meNQc-ZWFAcpxAtsNaS5fDLiNF51tatJA-N8y_WuiNUHlpxMgjPWGoR8Q==
gAAAAABeDg5ZyNUhS3dc25RQZvpvHGAkmK6zQU8i3YRb9yUTC4MCQ0nkl215UQh0kNYoRcxaeJ7ecRYUjBamraRCVaaWvNal8DV9Ba9abHVZVA3T1rv7ptbcAmMgUK6e4LMc7xGB5w2GBTEjLSc9oGOhAiuFD-OPU6WVwEskiRD4D0SAmuRuI_8fTdpuV10plvGJNXM48TrDWabBnp2F2x-6GB0jqtuq6Z6yXIJ-cmgWRXzVAEj9NjYgKD3xeB4-8Mv9O1RMhazlRMQX5NFvcdNYPhdxIr0olFsoXhcavOmpsMNljLfl1MVnLtCp2QHzAjjIMKGtmBDYILUvKXdknmHi3hGcz_tTLCfSk976Qycf5pQwhlxNsoMfr4p3m3EvL7rXfwZCcctwiIZFzZn7SayMV1IMYUEAWR6JwbaUU93AHw_VrGM-urqMJIzZ_TMQ96RbFgwIjSB8352tOFbya-f1zDFupFDLwY2_XN4wrEactgvkvXI8aunJbBwP-u_YE4JjWU4EGUHebbwUSiDGk7GZ9Ji3KWsRq1QRv5anJMkGjrUSzkLv-5AJBgPz2DOtV6Y19KdqytKXyefE1cGhAXJfjlADkkWy7XikYxXoNSenBH0ccWujp_zn3XRnGc_IvcCyYYGON0VuGPKDDx3amZEGLBgdktkHYwoGkfLpPJygFkJB0-w4hJOsGNi1OQJMfqG5FcrsKBlSvvpsvMCSW_8eY4yQjb7P9DLF2A0kLoTANjg-8bVCUPxYVLMmXMnhJDdyJlq7cqwIcu-8-NgzDPfJFantgSLM2k066BOZpqsZqnaa2TouE9B9Ql3G4cgqEllWhY0v2keQpv3bvQBo9PU-zxztgs5yMrbuK2T2xn3nGyFuj3pchuWhlZiQptkAEi7GcM-iZ5n9WPUC_0qtusaXuddZPAvLLYxECqs9u-14eRykOmvHKRVKNg-AGaOtK602qxZhx3xgHwetHwOipmf-WsL54p7mxn37JyNoUk_O_gCkx5tRmUbCEFupILcfoHnR13cjozm6pqtquJfK1XxHBzHf6e-2DWuooLy3PI-vKKWce9QSjTQgOmxb6XVzdQIJ9vJB4GYgfeevRe9j73OWrKh2VGurVnt_K2wuhjOPRsHlTKMhpfPWlwLFHXdqTDZswRowdaOhcizvamsdI_rNAlRiyB4HQYXVdGLzYQMDEU-dm4psB-xO3UzmHKwGmPXaqsh4pzrC2j3UU4oznI3HE-Qqgj4XEXhilZ8RMmoQWvOhnl_WH7fxxAn7UE80J70w9X2S3yzV_evwPlIJtDc-e7-Rf2GzCln11zTBgOQ9u3aBK-8gLYZV3AF0yxOPpYy0BZAsRUJmrR6K8i3tvFc0_pZIAFwtB2esxJDsA-25CXKaphwGH-ikRl8Ls7WJeffjhPbexfgdbPHwxxanXdh0KMLs47BCOxCy0aardlTHj44wP6pNXD6URnM-d7Aj-SmEmCTBciNexmYlRwRPOb0DdnV5oMH4PABMLvxiB_Lr7LNk5lPdgOzOLCeLnjHyygISTLUKbn9_J-40xomVZfakAkryodCYWK8kSWQ1vTVROwkgpTxA108Yh8AOnBjEUs8csrtmI04ujTnJL7AYoQ0LnsVRMjUqKfWQ_jPt5wTOh-CKjWpBSCpH-OjXbnN0L_bw4vEEfH1YEA4Wi5jcQghEbIBdUcjRsdtfNUZTAVPG0m-EaYDpfEf7UWv-A9z6YhVlLOH67f5uIiskX_bIaiq7A7X3ahgWUzhNVpMjETrpNnu0hE4yI462wtMhEZDv4hO0mT_EeidTCC12609p8clPiWDiO4dTD8ivWqWVZgiK9EIurmxCZE1T489tuzpCZLcwya5Pu5Ddxv8jRzdSdRbX4lju8fCgCYmRS5C5N0VG_2t3bFqxpr8PsHndfobu5MyVCgyAzebOPksMD0ZXJjjhD10_gMU7Njkv5nLpXBIyk3dOkABVBxk5kmd1j1ftQS7j-AcGnvnagIwYFaXWPfgtIRMFoBnRbaJzqSkyobeApAqWN6EhinC8CL9mC1mC9VE6qWykabg1Ev0O7Ke6lRvd9Yl14W1yqr507izMP8uFosjYkZj69FNiWg90I3jDgp0N5MsS3GweVT3ewBYA5AOcQiCmOf4Tcm-TKsYyIJVHrnxOZjD9wDFtviixlYb9GNYIlcvBmuLAWzZh_EUWXW2GRmW-_Y5jZfMUtE6mZVVuKBkKoy8MeiAPcfHg7a-x9Ri_YxArHzUHO0xzI2Zve4K9B3KeZaiIqGf6tIAW3BjFp6L-XnsulBkM7_A847l8vhs-om3wflTUCURuxlxVg0dFokkvIaxQUyeE2Fz-rkmWKHj1M9MLNQIEQ46laSKt4wjEutwsAH_2ycy_HpEsTk4NeGTbS0-RVMxl5OQBy4g6lBvUGMZ4Qm7UuslO5oSzTF8zYsziLX7remEgiIvRdhcMSkU11d4DLASwNNW_fYyacXH4X_fNBIvWdnIjcgrHGYiMNRZ-B6unFEqecfTzJX4zuJ11v1vbh631UnJnY1mOUJ9qTbK0GKrBYpc1dWpq6rRY8LC9xMbCFYFeTVQ8Zgh1IaGsYcnwhZnhbz8_xCsdznjkFKHOM0ttUetXbbSi2GvysJRJiuwnpdZCqjT8VCCvjPBZ7CaBSjb-_yF6T3zTNz3kPJtHA04pPBBhRxSMYPUdAJJfkfZdfjDDON_Qq41EkJhu2bv3MKkcgXSXxtI4j78iXnmg2dWUIjrTIkn__SbqtD5OS_1AIzSssHkuG5TV4iI6yHzTuyFhOAlUv4FOCY_ivIlueBXMC-ZFJ7w2N8gHwwlyfeEkW9RUh8UATkYhEPu4CS4CSNFdRsXBtdJ1cAez2YE88VVcKvE4jiZwFtw78D6CNkYfEJqA8csnLd87_8xSXhNWK238H_Tp3gLlNrMvZpSDEHwEV4pRM_V-HRGcY3jQ0WLCfyqdvJsMu6wBQlNlWpuFJUKiiH6dyu2QKghBQGiZD62AQswtQW4U7nTJZxI3IGEdkluUSd0JI1AUsWRWwpzNYIXhudF3ovPbUsSm0HDrt3wj9tdM6rJ6qcBR44wsIN0p39Jkd5K37-4riH_gOkuvZprE__b_cgfTCaMqCdO88rSDWr9GZkmjllInAp8SvBuuwvFtLy5raMPmxI8OKBdrGfmvbmUHNwQ19Je68cr40Pfmhk08S8yONFQITnC2V1jDxhu4SAX4pW-rQ8yOHXQ9Irb39k9D1HE0y4Dbo54uZZdqtC0EIY3kS2wxxRS8qv1t7Vrj1LVone_jnavXexVG0PBvtiolRtPWNAGLlq53NyJvCSQgOaT4KdwH_euJXYHLQ8N0rA8yICmTzNV_w2SpeZ-NKQIdlEz3Z0W7DqgI8gW8WNGIBKKvh5JdgWQeFHlyo1o4hjLp8R-5LDabjM36reOwCmZT5rdzeOdhkX_vk-PngneBRyOoW4ALQJrmzRiNqGbMw2mM3XOKxCmHASC7zJnyBSTus1ttKJbdoSl2yqAqeB1ClagU3GSuv2Ms577VxoB65z5Sm_LnGeX6ZEWUYhLzj0FKFaE2dTiXR01NYVSymVbTOHpYs4fLEmAjk--O6mwJW62SIVkgXlT13u6pncv97TIxLe8549jkOA4maFcVGmP2YPLgQ_Lx_EMzfa8lvJnOaVSPi020mV8Eli8AWbMoNENK_5pMPhWPWEgZNoPeeQaYQcP5VAKPR7WzocXgf8E5NELlTefe8mwxyuPumGn0u-vYUAKpMRfMEZMawSqnLf8Y2Ujyf488YSS9emX6laOl-oyFGMlv4cRLZF82a2akb2F0sO9-GmLMCv6Rqi6ySjsfpD14N162AibMG2Xl-8j2bDUqFlGAWW6_vwwZ_crZbHq1u6Z3fzr9iTr2cH_2BiN4lbJzw3yZLV7-RP9cDq5kTCzggFXRIxW7w0Q8mgyQjskeKxHbpXKSn1lWoUMX2wtZQl9OYisOVBeF-xeKi2YM8C1JRNRFE8nvLddAaqBgWVUQza5vRJOLqOD-PbIjWv60ifbHT90RwuHK8alvkNoc46eIZhSA6tYL5SmJtJUEBnqUxwb1EjyhlphD1q8h_WL-UXHtjE4uGQzHHFpXK3VPdH9qXF5zkmtMA87CiuRc8Jo-VDMCgKq208-zSj_8y-oTkDGb71bsszulB-GaG3Rn5L1fqvWMeGgwbksEyvwrgej8dhomyNg1YnzoyRXtdX4LyVOPGvx7JlBBE85vLQ697SgXD3SkRhr7ceZQHeWV8Cgq1Tvbnz88JK48fDBgGPnMP6lydp2hxKX_dW19iPycDEkmDALh-2U0_ZpiGPqA48E8cAf3HOYCpuzzdkzhvu-DOQU1WqbcUiPQeeWo1tS-1_HAXT18yRjMJZTQUJivVBq03meNQc-ZWFAcpxAtsNaS5fDLiNF51tatJA-N8y_WuiNUHlpxMgjPWGoR8Q==
5 changes: 5 additions & 0 deletions .github/actionlint.yaml
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpick: this file is a .yaml whilst all the others are .yml

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
self-hosted-runner:
labels:
- asv
- amdgpu
- nvidiagpu
6 changes: 3 additions & 3 deletions .github/workflows/asv.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,12 +36,12 @@ jobs:

- name: Set VIRTUAL_ENV
run: |
echo "VIRTUAL_ENV=$ENVHOME/asv" >> $GITHUB_ENV
echo "PATH=$VIRTUAL_ENV/bin:$PATH" >> $GITHUB_ENV
echo "VIRTUAL_ENV=$ENVHOME/asv" >> "$GITHUB_ENV"
echo "PATH=$VIRTUAL_ENV/bin:$PATH" >> "$GITHUB_ENV"

- name: Set PATH
run: |
echo "PATH=$VIRTUAL_ENV/bin:$PATH" >> $GITHUB_ENV
echo "PATH=$VIRTUAL_ENV/bin:$PATH" >> "$GITHUB_ENV"

- name: Install dependencies
run: |
Expand Down
16 changes: 8 additions & 8 deletions .github/workflows/docker-bases.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,10 +114,10 @@ jobs:
TAG_BASE: ${{ format('cpu-gcc{0}', matrix.gcc) }}
run: |
docker buildx imagetools create \
--tag devitocodes/bases:${TAG_BASE} \
devitocodes/bases:${TAG_BASE}-amd64 \
devitocodes/bases:${TAG_BASE}-arm64
docker buildx imagetools inspect devitocodes/bases:${TAG_BASE}
--tag "devitocodes/bases:${TAG_BASE}" \
"devitocodes/bases:${TAG_BASE}-amd64" \
"devitocodes/bases:${TAG_BASE}-arm64"
docker buildx imagetools inspect "devitocodes/bases:${TAG_BASE}"

#######################################################
############## Intel OneApi CPU #######################
Expand Down Expand Up @@ -296,10 +296,10 @@ jobs:
FINAL_TAG: ${{ matrix.final_tag }}
run: |
docker buildx imagetools create \
--tag devitocodes/bases:${FINAL_TAG} \
devitocodes/bases:${FINAL_TAG}-amd64 \
devitocodes/bases:${FINAL_TAG}-arm64
docker buildx imagetools inspect devitocodes/bases:${FINAL_TAG}
--tag "devitocodes/bases:${FINAL_TAG}" \
"devitocodes/bases:${FINAL_TAG}-amd64" \
"devitocodes/bases:${FINAL_TAG}-arm64"
docker buildx imagetools inspect "devitocodes/bases:${FINAL_TAG}"

#######################################################
##################### AMD #############################
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/docker-devito.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ jobs:

- name: Set per‑runner variables
run: |
echo "CONTAINER_NAME=testrun-${{ matrix.tag }}-${RUNNER_NAME// /_}" >> $GITHUB_ENV
echo "CONTAINER_NAME=testrun-${{ matrix.tag }}-${RUNNER_NAME// /_}" >> "$GITHUB_ENV"

- name: Check event name
run: echo ${{ github.event_name }}
Expand Down Expand Up @@ -246,8 +246,8 @@ jobs:
refs="$refs devitocodes/devito:${tag}-${arch}"
done
echo "Creating manifest for devitocodes/devito:${tag} using:${refs}"
docker buildx imagetools create --tag devitocodes/devito:${tag} $refs
docker buildx imagetools inspect devitocodes/devito:${tag}
docker buildx imagetools create --tag "devitocodes/devito:${tag}" "$refs"
docker buildx imagetools inspect "devitocodes/devito:${tag}"
done

test-devito:
Expand Down Expand Up @@ -286,7 +286,7 @@ jobs:

- name: Set per‑runner variables
run: |
echo "CONTAINER_NAME=testrun-${{ matrix.tag }}-${RUNNER_NAME// /_}" >> $GITHUB_ENV
echo "CONTAINER_NAME=testrun-${{ matrix.tag }}-${RUNNER_NAME// /_}" >> "$GITHUB_ENV"

- name: Run tests against multi-arch image
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/examples-mpi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
- name: Install dependencies
run: |
pip install --upgrade pip
pip install -e .[extras,mpi,tests]
pip install -e ".[extras,mpi,tests]"
python3 scripts/clear_devito_cache.py

- name: Test mpi notebooks
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/examples.yml
Original file line number Diff line number Diff line change
Expand Up @@ -101,4 +101,4 @@ jobs:
uses: codecov/codecov-action@v5
with:
token: ${{ secrets.CODECOV_TOKEN }}
name: ${{ matrix.name }}
name: Examples
38 changes: 0 additions & 38 deletions .github/workflows/flake8.yml

This file was deleted.

94 changes: 94 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,94 @@
name: Lint
permissions:
contents: read

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

on:
# Trigger the workflow on push or pull request,
# but only for the main branch
push:
branches:
- main
pull_request:
branches:
- main

jobs:
codelint:
name: "Lint the codebase"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Python 3.10
uses: actions/setup-python@v6
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8-pyproject isort ruff

- name: Lint the Python imports with isort
run: |
isort --check-only .

- name: Lint codebase with ruff
run: |
ruff check --preview --output-format github

- name: Lint codebase with flake8
run: |
flake8 --builtins=ArgumentError .

spellcheck:
name: "Spellcheck everything"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Set up Python 3.10
uses: actions/setup-python@v6
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install typos

- name: Spellcheck the codebase with typos
run: |
typos --format json | python scripts/typos_json_to_gha.py

actionlint:
name: "Lint Github actions YAML files"
# There's a way to add error formatting so GH actions adds messages to code,
# but I can't work out the right number of quotes to get it to work
# https://github.com/rhysd/actionlint/blob/main/docs/usage.md
# #example-error-annotation-on-github-actions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- name: Check workflow files
uses: docker://rhysd/actionlint:latest
with:
args: -color

dockerlint:
name: "Lint dockerfiles"
runs-on: ubuntu-latest
container:
image: hadolint/hadolint:latest-alpine
env:
HADOLINT_IGNORE: "DL3003,DL3004,DL3005,DL3007,DL3008,DL3009,DL3013,DL3015,DL3042,DL3059,SC2103,SC2046,SC2086"
steps:
- uses: actions/checkout@v6
- name: Lint dockerfiles inside hadolint container
run: |
for DOCKERFILE in docker/Dockerfile.*; \
do \
echo " Linting $DOCKERFILE"; \
hadolint "$DOCKERFILE" \
|| exit 1; \
done
10 changes: 5 additions & 5 deletions .github/workflows/pytest-core-nompi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -153,9 +153,9 @@ jobs:
- name: Set run prefix
run: |
if [[ "${{ matrix.name }}" =~ "docker" ]]; then
echo "RUN_CMD=docker run --init -t --rm -e CODECOV_TOKEN=${{ secrets.CODECOV_TOKEN }} --name testrun devito_img" >> $GITHUB_ENV
echo "RUN_CMD=docker run --init -t --rm -e CODECOV_TOKEN=${{ secrets.CODECOV_TOKEN }} --name testrun devito_img" >> "$GITHUB_ENV"
else
echo "RUN_CMD=" >> $GITHUB_ENV
echo "RUN_CMD=" >> "$GITHUB_ENV"
fi
id: set-run

Expand All @@ -168,7 +168,7 @@ jobs:
run : |
if [ "${{ runner.os }}" == 'macOS' ]; then
brew install llvm libomp
echo "/opt/homebrew/opt/llvm/bin" >> $GITHUB_PATH
echo "/opt/homebrew/opt/llvm/bin" >> "$GITHUB_PATH"
fi
id: set-tests

Expand All @@ -178,14 +178,14 @@ jobs:
major=${ver%%.*}
minor=${ver#*.}; minor=${minor%%.*}
if [ "$major" -eq 3 ] && [ "$minor" -ge 12 ]; then
echo "PIPFLAGS='--break-system-packages'" >> $GITHUB_ENV
echo "PIPFLAGS='--break-system-packages'" >> "$GITHUB_ENV"
fi

- name: Install dependencies
if: "!contains(matrix.name, 'docker')"
run: |
python3 -m pip install ${{ env.PIPFLAGS }} --upgrade pip
python3 -m pip install ${{ env.PIPFLAGS }} -e .[tests,extras]
python3 -m pip install ${{ env.PIPFLAGS }} -e ".[tests,extras]"
python3 -m pip install ${{ env.PIPFLAGS }} sympy==${{matrix.sympy}}

- name: Check Docker image Python version
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/pytest-gpu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,8 @@ jobs:

- name: Set per-runner tags
run: |
echo "DOCKER_IMAGE=${{ matrix.name }}-${RUNNER_NAME// /_}" >> $GITHUB_ENV
echo "CONTAINER_BASENAME=testrun-${{ matrix.name }}-${RUNNER_NAME// /_}-${{ github.sha }}" >> $GITHUB_ENV
echo "DOCKER_IMAGE=${{ matrix.name }}-${RUNNER_NAME// /_}" >> "$GITHUB_ENV"
echo "CONTAINER_BASENAME=testrun-${{ matrix.name }}-${RUNNER_NAME// /_}-${{ github.sha }}" >> "$GITHUB_ENV"

- name: Ensure buildx builder
run: |
Expand All @@ -93,7 +93,7 @@ jobs:
docker buildx build . \
--builder "${RUNNER_NAME// /_}" \
--load \
--label ci-run=$GITHUB_RUN_ID \
--label ci-run="$GITHUB_RUN_ID" \
--rm --pull \
--file docker/Dockerfile.devito \
--tag "${DOCKER_IMAGE}" \
Expand All @@ -107,7 +107,7 @@ jobs:
# Make sure CUDA_VISIBLE_DEVICES is at least *something* on NVIDIA
# runners; fall back to "all" so the driver probe does not fail.
if [[ "${{ matrix.runner_label }}" == "nvidiagpu" && -z "${CUDA_VISIBLE_DEVICES:-}" ]]; then
echo "CUDA_VISIBLE_DEVICES=all" >> $GITHUB_ENV
echo "CUDA_VISIBLE_DEVICES=all" >> "$GITHUB_ENV"
fi

# Run a simple driver-probe command (nvidia-smi / rocm-smi)
Expand All @@ -124,7 +124,7 @@ jobs:

# Run the test suite using the matrix-defined flags
docker run ${{ matrix.flags }} \
${ci_env} \
"${ci_env}" \
-e CI=true \
-e PYTHONFAULTHANDLER=1 \
-e DEVITO_LOGGING=DEBUG \
Expand Down Expand Up @@ -152,7 +152,7 @@ jobs:
docker rmi -f "${DOCKER_IMAGE}" || true

# Classic image layers created in this job
docker image prune -f --filter label=ci-run=$GITHUB_RUN_ID
docker image prune -f --filter label=ci-run="$GITHUB_RUN_ID"

# BuildKit cache: target the per-runner builder explicitly
docker builder prune --builder "${RUNNER_NAME// /_}" \
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/triggers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ jobs:
with:
token: ${{ secrets.PRO_SUBMODULE }}
repository: devitocodespro/devitopro
event-type: update-submodule
event-type: update-submodule
Loading
Loading