1- name : Tests
1+ name : Checks
22
33on :
44 pull_request :
1313 tests :
1414 # Default config: py3.14, ubuntu-latest, float32, full options.
1515 # The idea is to make each of those params vary one by one, to limit the number of tests to run.
16- name : Run tests (py${{ matrix.python-version || '3.14' }}, ${{ matrix.os || 'ubuntu-latest' }}, ${{ matrix.dtype || 'float32' }}, ${{ matrix.options || 'full' }})
16+ name : Tests (py${{ matrix.python-version || '3.14' }}, ${{ matrix.os || 'ubuntu-latest' }}, ${{ matrix.dtype || 'float32' }}, ${{ matrix.options || 'full' }})
1717 runs-on : ${{ matrix.os || 'ubuntu-latest' }}
1818 strategy :
1919 fail-fast : false
5858 token : ${{ secrets.CODECOV_TOKEN }}
5959
6060 build-doc :
61- name : Build doc
61+ name : Build documentation
6262 runs-on : ubuntu-latest
6363 steps :
6464 - name : Checkout repository
7878 run : uv run make dirhtml
7979
8080 check-links :
81- name : Check no link is broken
81+ name : Link correctness
8282 runs-on : ubuntu-latest
8383 steps :
8484 - name : Checkout code
@@ -106,8 +106,8 @@ jobs:
106106 # This reduces false positives due to rate limits
107107 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
108108
109- mypy :
110- name : Run mypy
109+ typing :
110+ name : Typing correctness
111111 runs-on : ubuntu-latest
112112 steps :
113113 - name : Checkout repository
@@ -124,3 +124,33 @@ jobs:
124124
125125 - name : Run mypy
126126 run : uv run mypy src/torchjd
127+
128+ check-todos :
129+ name : Absence of TODOs
130+ runs-on : ubuntu-latest
131+ steps :
132+ - name : Checkout code
133+ uses : actions/checkout@v6
134+
135+ - name : Scan for TODO strings
136+ run : |
137+ echo "Scanning codebase for TODOs..."
138+
139+ git grep -nE "TODO" -- . ':(exclude).github/workflows/*' > todos_found.txt || true
140+
141+ if [ -s todos_found.txt ]; then
142+ echo "❌ ERROR: Found TODOs in the following files:"
143+ echo "-------------------------------------------"
144+
145+ while IFS=: read -r file line content; do
146+ echo "::error file=$file,line=$line::TODO found at $file:$line - must be resolved before merge:%0A$content"
147+ done < todos_found.txt
148+
149+ echo "-------------------------------------------"
150+ echo "Please resolve these TODOs or track them in an issue before merging."
151+
152+ exit 1
153+ else
154+ echo "✅ No TODOs found. Codebase is clean!"
155+ exit 0
156+ fi
0 commit comments