Conversation
Exclude contribs to enable greptile review
This comment was marked as off-topic.
This comment was marked as off-topic.
|
@greptile Review this please |
Greptile SummaryThis PR comprehensively modernizes Gecode's build infrastructure across CMake, autoconf, and CI/CD pipelines. The changes establish uv as the unified dependency manager for Python-based build scripts, raise CMake to version 3.21 with proper GECODE_* option namespacing, and make Major Changes:
The migration is well-executed with proper backward compatibility (deprecation warnings for old CMake options), comprehensive CI coverage, and detailed changelog entries. All Python scripts use modern syntax with type hints and PEP 723 metadata for reproducible uv-based execution. Confidence Score: 5/5
Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[Build System Modernization] --> B[CMake Path]
A --> C[Autoconf Path]
B --> B1[CMakeLists.txt<br/>Min version 3.21]
B1 --> B2[GecodeSources.cmake<br/>Decoupled source lists]
B2 --> B3[GenerateVarImp.cmake<br/>uv-based codegen]
C --> C1[configure.ac<br/>Canonical source]
C1 --> C2[gecode-version.m4<br/>Shared metadata]
C2 --> C3[Makefile.in<br/>uv script execution]
B3 --> D[Python Scripts<br/>PEP 723 metadata]
C3 --> D
D --> D1[genvarimp.py]
D --> D2[allexamples.py]
D --> D3[genchangelog.py]
D --> D4[Other utilities]
A --> E[CI/CD Matrix]
E --> E1[Linux: autoconf + CMake]
E --> E2[macOS: autoconf + CMake]
E --> E3[Windows: CMake + MSYS2]
E1 --> F[uv dependency]
E2 --> F
E3 --> F
A --> G[Cleanup]
G --> G1[Remove contribs/]
G --> G2[Remove configure.ac.in]
G --> G3[Remove Perl scripts]
Last reviewed commit: 35fa496 |
|
The branch seems to break dependency handling when custom variable implementations are used. When I run (what used to work in the past): I run into errors of the kind As a workaround I replace the and that works okay. |
This PR overhauls the whole Gecode build system. It has the following large changes
A new requirement for building is to have uv installed. This simplifies the external dependencies from a system installed Perl or Python to a single dependency that will manage an isolated virtual environment for each script.