Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
8d1a5f5
ci: Add Ruff linting
JDBetteridge Oct 16, 2025
dc370e4
ci: Add actionlint and hadolint for good measure
JDBetteridge Oct 16, 2025
1783147
ci: Give codelint a name
JDBetteridge Oct 16, 2025
b23eeac
misc: Replace ruff I rules with more specific isort rules
JDBetteridge Oct 17, 2025
089067e
misc: Add support for command line spellchequing with typo
JDBetteridge Oct 17, 2025
42b7275
misc: Experiment
JDBetteridge Oct 17, 2025
ef9440e
misc: Deliberately add a file with a typo
JDBetteridge Oct 17, 2025
bed65d7
ci: Let's break everything by adding typo annotations
JDBetteridge Oct 17, 2025
cad17c1
scripts: Fix gha helper script
JDBetteridge Oct 17, 2025
4f4b98d
scripts: Return non-zero error code, unless stdin is empty
JDBetteridge Oct 17, 2025
87657f4
misc: Typos (ironically)
JDBetteridge Oct 17, 2025
e4914ca
misc: Remove ./ prefix from path
JDBetteridge Oct 17, 2025
7d6f48e
misc: Prevent isort from sorting __init__.py
JDBetteridge Nov 13, 2025
a1ea434
misc: Change overly strict isort rule
JDBetteridge Nov 13, 2025
e200b51
ci: Shutup CodeQL
JDBetteridge Nov 13, 2025
da4d644
misc: Add a configuration for running pre-commit hooks
JDBetteridge Nov 13, 2025
941a50f
lint: Remove all the trailing whitespace
JDBetteridge Nov 13, 2025
56aa107
lint: Fix ends of files
JDBetteridge Dec 24, 2025
2b4d8c3
lint: First pass with ruff --fix
JDBetteridge Dec 24, 2025
5674a30
lint: Re-sort all imports with new isort rules
JDBetteridge Dec 24, 2025
8e0ccb9
misc: Update Hadolint rules and clean dockerfiles
JDBetteridge Dec 24, 2025
e2740eb
misc: Lint action files
JDBetteridge Jan 2, 2026
143c493
misc: Fix typos in Devito
JDBetteridge Jan 2, 2026
94be5e7
misc: Fix typos in examples
JDBetteridge Jan 2, 2026
611eba6
misc: Fix typos in tests
JDBetteridge Jan 2, 2026
f779176
misc: Kick CI
JDBetteridge Jan 2, 2026
fab89c8
misc: Manual linting for Devito
JDBetteridge Jan 3, 2026
5306fb9
misc: Automated linting fixes in examples, tests, scripts
JDBetteridge Jan 4, 2026
0ab3cb1
misc: Manually lint examples, tests, scripts, etc
JDBetteridge Jan 4, 2026
a7e2984
misc: Update precommit to include flake8
JDBetteridge Jan 5, 2026
e5e4557
misc: Various fixes
JDBetteridge Jan 5, 2026
50719ac
ci: Change linting order to run ruff before flake8
JDBetteridge Jan 6, 2026
757e597
misc: Update contributing guidelines to include pre-commit
JDBetteridge Jan 6, 2026
891c9ec
Revert "misc: Deliberately add a file with a typo"
JDBetteridge Jan 6, 2026
a7a2ad0
misc: Fix helper script
JDBetteridge Jan 6, 2026
528a9a6
misc: Remove double import of ctypes in allocators
JDBetteridge Jan 6, 2026
4b30ce2
misc: Isolated fixes that only break things in PRO
JDBetteridge Jan 6, 2026
4f50954
misc: Apply review suggestions
JDBetteridge Jan 9, 2026
1eced04
misc: Add steps for automatically fixing errors to contributing and p…
JDBetteridge Jan 9, 2026
538e2d3
misc: Change .yml -> .yaml for consistency
JDBetteridge Jan 9, 2026
deeb1c4
misc: Missed some ymls
JDBetteridge Jan 9, 2026
371a13c
misc: Fix Eds suggestion
JDBetteridge Jan 9, 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

Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is very nitpicky, but I'm going to be pedantic!

The correct extension is .yaml as per the docs

I will update everything to use .yaml since pre-commit is as pedantic as I am (and does not use the .pre-commit-config.yml file unless you pass it explicitly at setup time)

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
self-hosted-runner:
labels:
- asv
- amdgpu
- nvidiagpu
File renamed without changes.
File renamed without changes.
6 changes: 3 additions & 3 deletions .github/workflows/asv.yml → .github/workflows/asv.yaml
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
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
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
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
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
uses: conda-incubator/setup-miniconda@v3
with:
activate-environment: devito
environment-file: environment-dev.yml
environment-file: environment-dev.yaml
auto-activate-base: false

- name: Tests in examples
Expand Down 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.yaml
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
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
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
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