Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Codegen as sources from CMake #4104

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

paulgessinger
Copy link
Member

@paulgessinger paulgessinger commented Feb 20, 2025

--- END COMMIT MESSAGE ---

Any further description goes here, @-mentions are ok here!

  • Use a conventional commits prefix: quick summary
    • We mostly use feat, fix, refactor, docs, chore and build types.
  • A milestone will be assigned by one of the maintainers

Summary by CodeRabbit

  • New Features

    • Introduced an enhanced code generation framework that streamlines header and library generation, supporting advanced symbolic computation.
    • Improved command‐line interfaces for generating simulation outputs with flexible formatting options.
  • Bug Fixes

    • Resolved issues related to output handling in various scripts to ensure proper redirection and resource management.
  • Refactor

    • Removed legacy numerical integration and Jacobian computation routines that are no longer needed.
  • Chores

    • Updated build configurations and dependency management, including new project settings and updated library versions, to support a more robust development environment.
    • Added a new hook for checking code generation dependencies in the pre-commit configuration.
    • Removed the codegen job from the CI workflow to streamline the process.

@paulgessinger paulgessinger added this to the next milestone Feb 20, 2025
Copy link

coderabbitai bot commented Feb 20, 2025

Walkthrough

Integrated, new code generation features have been. In the ActsCore and Propagator CMake configuration files, invoked is ActsCodegen to generate various header files via Python scripts. Targets for ParticleDataTable, SympyCovarianceEngine, SympyStepperMath, and SympyJacobianEngine added and linked accordingly, they are. Removed, several legacy template functions in Propagator codegen files have been. Updated are Python scripts to use argparse and proper output redirection. Introduced is a new ActsCodegen.cmake file for uv tool management, and included is project configuration via pyproject.toml, updated requirements, and expanded symbolic expression handling functionalities.

Changes

File(s) Change Summary
Core/.../Definitions/CMakeLists.txt
Core/.../Propagator/CMakeLists.txt
cmake/ActsCodegen.cmake
ActsCodegen module integration added; new code generation targets defined (ParticleDataTable, SympyCovarianceEngine, SympyStepperMath, SympyJacobianEngine) and modified linking; new CMake file for uv tool configuration provided.
Core/.../codegen/sympy_stepper_math.hpp
Core/.../detail/codegen/sympy_cov_math.hpp
Core/.../detail/codegen/sympy_jac_math.hpp
Outdated template functions for Runge-Kutta integration, covariance, and Jacobian computations removed.
Core/.../detail/generate_sympy_cov.py
Core/.../detail/generate_sympy_jac.py
Core/.../generate_sympy_stepper.py
Python scripts modified for output redirection using command-line arguments; print replaced with output.write.
Fatras/.../generate_particle_data_table.py CLI enhanced with argparse and an optional --format flag; main function signature updated for clang formatting.
codegen/pyproject.toml
codegen/requirements.txt
codegen/.../sympy_common.py
New project configuration and dependency updates added; extensive symbolic expression and C++ code printer functionalities provided.

Sequence Diagram(s)

sequenceDiagram
    participant CMake
    participant uv
    participant PythonScript
    participant BuildSystem

    CMake->>uv: Locate uv executable
    alt uv not found, hmm
        uv-->>CMake: Download and extract uv
    end
    CMake->>uv: Execute acts_code_generation(target, script, output)
    uv->>PythonScript: Invoke code generation script
    PythonScript->>uv: Generate header file output
    uv->>BuildSystem: Supply generated file for linking
Loading
sequenceDiagram
    participant CLI
    participant ArgParser
    participant Generator
    participant Output

    CLI->>ArgParser: Send command-line arguments (--format, output file)
    ArgParser->>Generator: Parse and call main(output_file, format)
    Generator->>Output: Write output (to file or stdout)
    Output-->>CLI: Return formatted code
Loading

Possibly related PRs

  • build: Add cmake helper function for header compilation #4083: The changes in the main PR, which introduce a new code generation feature in the CMakeLists.txt for the ActsCore target, are related to the retrieved PR as both involve modifications to CMake configuration files and the introduction of new functions for managing targets and header files. Specifically, both PRs add functionality that enhances the build process through CMake.

Suggested labels

Component - Plugins, automerge, Changes Performance

Suggested reviewers

  • AJPfleger
  • andiwand

Poem

New targets and scripts, in harmony they sing,
ActsCodegen and uv, together they bring.
Legacy functions, now gone with the breeze,
Embrace the new code, with joy and with ease.
Celebrate progress, in every line and space,
Stronger we grow, in this coding race!


📜 Recent review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e809502 and 23cb61e.

📒 Files selected for processing (1)
  • cmake/ActsCodegen.cmake (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • cmake/ActsCodegen.cmake
⏰ Context from checks skipped due to timeout of 90000ms (19)
  • GitHub Check: CI Bridge / lcg_106a: [alma9, clang16]
  • GitHub Check: unused_files
  • GitHub Check: missing_includes
  • GitHub Check: CI Bridge / lcg_106a: [alma9, gcc14]
  • GitHub Check: linux_ubuntu_extra (ubuntu2204, 20, clang++)
  • GitHub Check: macos
  • GitHub Check: linux_ubuntu_extra (ubuntu2204, 20, g++)
  • GitHub Check: CI Bridge / lcg_106a: [alma9, gcc13]
  • GitHub Check: linux_ubuntu
  • GitHub Check: build_debug
  • GitHub Check: CI Bridge / lcg_105: [alma9, clang16]
  • GitHub Check: CI Bridge / lcg_105: [alma9, gcc13]
  • GitHub Check: CI Bridge / linux_ubuntu_2204_clang
  • GitHub Check: CI Bridge / linux_ubuntu_2204
  • GitHub Check: CI Bridge / build_linux_ubuntu
  • GitHub Check: CI Bridge / build_exatrkx
  • GitHub Check: CI Bridge / build_exatrkx_cpu
  • GitHub Check: CI Bridge / clang_tidy
  • GitHub Check: CI Bridge / build_gnn_tensorrt

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@github-actions github-actions bot added Component - Core Affects the Core module Infrastructure Changes to build tools, continous integration, ... Component - Fatras Affects the Fatras module labels Feb 20, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (10)
codegen/src/codegen/sympy_common.py (4)

16-19: Hmmm. Ternary operator, simpler it could be.
Use a ternary expression you can, in place of this if-else. Yes, hmmm.

Suggested diff:

-def name_expr(name, expr):
-    if hasattr(expr, "shape"):
-        s = sym.MatrixSymbol(name, *expr.shape)
-    else:
-        s = Symbol(name)
+def name_expr(name, expr):
+    s = sym.MatrixSymbol(name, *expr.shape) if hasattr(expr, "shape") else Symbol(name)
 return NamedExpr(s, expr)
🧰 Tools
🪛 Ruff (0.8.2)

16-19: Use ternary operator s = sym.MatrixSymbol(name, *expr.shape) if hasattr(expr, "shape") else Symbol(name) instead of if-else-block

Replace if-else-block with s = sym.MatrixSymbol(name, *expr.shape) if hasattr(expr, "shape") else Symbol(name)

(SIM108)


149-149: Use .get(s) you should.
Unnecessary the default None is, yes. More concise your code becomes.

Suggested diff:

-            symbols_order = [order.get(s, None) for s in expr.free_symbols]
+            symbols_order = [order.get(s) for s in expr.free_symbols]
🧰 Tools
🪛 Ruff (0.8.2)

149-149: Use order.get(s) instead of order.get(s, None)

Replace order.get(s, None) with order.get(s)

(SIM910)


165-165: Unneeded the default is, hmmm?
More direct is name_expr_by_name.get(output), yes.

Suggested diff:

-        name_expr = name_expr_by_name.get(output, None)
+        name_expr = name_expr_by_name.get(output)
🧰 Tools
🪛 Ruff (0.8.2)

165-165: Use name_expr_by_name.get(output) instead of name_expr_by_name.get(output, None)

Replace name_expr_by_name.get(output, None) with name_expr_by_name.get(output)

(SIM910)


270-270: Ambiguous, the variable name 'l' is.
A single letter, a dark path leads to confusion. More descriptive name prefer, we should.

Suggested diff:

-    lines.extend([f"  {l}" for l in code.split("\n")])
+    lines.extend([f"  {line}" for line in code.split("\n")])
🧰 Tools
🪛 Ruff (0.8.2)

270-270: Ambiguous variable name: l

(E741)

Core/src/Propagator/detail/generate_sympy_cov.py (1)

18-18: A context manager, wise it would be to use.
Guarantee file closure it does, even if exceptions occur.

Suggested diff:

-if len(sys.argv) > 1:
-    output = open(sys.argv[1], "w")
+if len(sys.argv) > 1:
+    with open(sys.argv[1], "w") as f:
+        output = f
+        # ...
🧰 Tools
🪛 Ruff (0.8.2)

18-18: Use a context manager for opening files

(SIM115)

Fatras/scripts/generate_particle_data_table.py (1)

134-134: Yes, a context manager, prefer we must.
Close the file safely, it will. Less error-prone, it becomes.

Suggested diff:

-    output_file = io.open(args.output, mode="wt", encoding="utf-8")
+    with io.open(args.output, mode="wt", encoding="utf-8") as f:
+        main(f, args.format)
+    sys.exit(0)
🧰 Tools
🪛 Ruff (0.8.2)

134-134: Use a context manager for opening files

(SIM115)

Core/src/Propagator/detail/generate_sympy_jac.py (1)

14-16: Improve file handling with context manager, you must.

Handle file resources safely with with statement, we should. Prevent resource leaks in case of exceptions, it will.

-output = sys.stdout
-if len(sys.argv) > 1:
-    output = open(sys.argv[1], "w")
+output = sys.stdout
+if len(sys.argv) > 1:
+    output = open(sys.argv[1], "w").__enter__()
🧰 Tools
🪛 Ruff (0.8.2)

16-16: Use a context manager for opening files

(SIM115)

Core/src/Propagator/generate_sympy_stepper.py (1)

19-21: Improve file handling with context manager, you must.

Handle file resources safely with with statement, we should. Prevent resource leaks in case of exceptions, it will.

-output = sys.stdout
-if len(sys.argv) > 1:
-    output = open(sys.argv[1], "w")
+output = sys.stdout
+if len(sys.argv) > 1:
+    output = open(sys.argv[1], "w").__enter__()
🧰 Tools
🪛 Ruff (0.8.2)

21-21: Use a context manager for opening files

(SIM115)

Core/src/Propagator/CMakeLists.txt (2)

16-16: Minor formatting touched, hmm?
Line 16’s modification appears to be an aesthetic change. Ensure that your formatting remains consistent with the team’s guidelines, you must.


51-51: A debug relic, this commented line appears.
The commented-out message(FATAL_ERROR "stop") may be a vestige of testing. Consider its removal if no longer necessary, to keep the codebase as streamlined as the Jedi archives.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8b5261c and 4148f5b.

📒 Files selected for processing (13)
  • Core/src/Definitions/CMakeLists.txt (1 hunks)
  • Core/src/Propagator/CMakeLists.txt (1 hunks)
  • Core/src/Propagator/codegen/sympy_stepper_math.hpp (0 hunks)
  • Core/src/Propagator/detail/codegen/sympy_cov_math.hpp (0 hunks)
  • Core/src/Propagator/detail/codegen/sympy_jac_math.hpp (0 hunks)
  • Core/src/Propagator/detail/generate_sympy_cov.py (3 hunks)
  • Core/src/Propagator/detail/generate_sympy_jac.py (3 hunks)
  • Core/src/Propagator/generate_sympy_stepper.py (4 hunks)
  • Fatras/scripts/generate_particle_data_table.py (3 hunks)
  • cmake/ActsCodegen.cmake (1 hunks)
  • codegen/pyproject.toml (1 hunks)
  • codegen/requirements.txt (1 hunks)
  • codegen/src/codegen/sympy_common.py (1 hunks)
💤 Files with no reviewable changes (3)
  • Core/src/Propagator/detail/codegen/sympy_cov_math.hpp
  • Core/src/Propagator/detail/codegen/sympy_jac_math.hpp
  • Core/src/Propagator/codegen/sympy_stepper_math.hpp
✅ Files skipped from review due to trivial changes (1)
  • codegen/pyproject.toml
🧰 Additional context used
🪛 Ruff (0.8.2)
Core/src/Propagator/detail/generate_sympy_jac.py

16-16: Use a context manager for opening files

(SIM115)

Fatras/scripts/generate_particle_data_table.py

134-134: Use a context manager for opening files

(SIM115)

Core/src/Propagator/generate_sympy_stepper.py

21-21: Use a context manager for opening files

(SIM115)

Core/src/Propagator/detail/generate_sympy_cov.py

18-18: Use a context manager for opening files

(SIM115)

codegen/src/codegen/sympy_common.py

16-19: Use ternary operator s = sym.MatrixSymbol(name, *expr.shape) if hasattr(expr, "shape") else Symbol(name) instead of if-else-block

Replace if-else-block with s = sym.MatrixSymbol(name, *expr.shape) if hasattr(expr, "shape") else Symbol(name)

(SIM108)


149-149: Use order.get(s) instead of order.get(s, None)

Replace order.get(s, None) with order.get(s)

(SIM910)


165-165: Use name_expr_by_name.get(output) instead of name_expr_by_name.get(output, None)

Replace name_expr_by_name.get(output, None) with name_expr_by_name.get(output)

(SIM910)


270-270: Ambiguous variable name: l

(E741)

⏰ Context from checks skipped due to timeout of 90000ms (16)
  • GitHub Check: CI Bridge / lcg_106a: [alma9, clang16]
  • GitHub Check: CI Bridge / lcg_106a: [alma9, gcc14]
  • GitHub Check: CI Bridge / lcg_106a: [alma9, gcc13]
  • GitHub Check: CI Bridge / lcg_105: [alma9, clang16]
  • GitHub Check: CI Bridge / lcg_105: [alma9, gcc13]
  • GitHub Check: CI Bridge / linux_ubuntu_2204_clang
  • GitHub Check: CI Bridge / linux_ubuntu_2204
  • GitHub Check: CI Bridge / build_linux_ubuntu
  • GitHub Check: CI Bridge / build_exatrkx
  • GitHub Check: CI Bridge / build_gnn_tensorrt
  • GitHub Check: macos
  • GitHub Check: linux_ubuntu
  • GitHub Check: missing_includes
  • GitHub Check: CI Bridge / clang_tidy
  • GitHub Check: CI Bridge / build_exatrkx_cpu
  • GitHub Check: build_debug
🔇 Additional comments (9)
codegen/requirements.txt (1)

3-8:

❓ Verification inconclusive

Verify package versions, we must.

Check if latest stable versions of packages, these are. Security vulnerabilities and compatibility issues, we must avoid.


🌐 Web query:

What are the latest stable versions of mpmath, numpy, and sympy packages?

💡 Result:

The latest stable versions of the specified packages as of February 2025 are:

mpmath

  • Latest Version: 1.3.0
    Released March 7, 2023[1][5]. It provides arbitrary-precision floating-point arithmetic and advanced mathematical functions.

NumPy

  • Latest Version: 2.2.3
    Released February 13, 2025[10]. This patch update addresses bug fixes and typing improvements following NumPy's support policy for Python versions 3.9–3.12[2][10].

SymPy

The provided search results do not explicitly list SymPy's latest Python package version[3][7][8]. However:

  • SymPy requires mpmath ≥1.3 as a dependency[8].
  • For Julia users, SymPy.jl v2.2 (released November 26, 2024) is available via JuliaPy[3].

For Python installations, check SymPy’s official channels for updates beyond the data available here[7][8].

Citations:


Verify and Confirm Package Versions, You Must

  • File: codegen/requirements.txt (lines 3-8)
  • mpmath: Version 1.3.0 is confirmed as the latest stable release.
  • NumPy: Version 2.2.3 is indeed the current stable version.
  • Sympy: Version 1.13.3 has not been explicitly confirmed as the latest stable release by our query. Though it satisfies the dependency on mpmath>=1.3, further verification via Sympy’s official channels is advised.

Review manually, you should, to ensure that Sympy’s version aligns with the latest stable release and no security or compatibility issues it introduces, there are.

Core/src/Definitions/CMakeLists.txt (3)

3-3: Inclusion of ActsCodegen, most wise it is.
The line include(ActsCodegen) ensures the code generation module is available for later use. Strong in the Force, this addition is.


5-9: Harnessing the power of code generation, you are.
The acts_code_generation block for the ParticleDataTable target is clear and well configured—invoking the proper Python script to generate ParticleDataTable.hpp. Verify that the integration meets all project expectations, you must.


11-11: Linking the new target with precision, you have.
The target_link_libraries(ActsCore PRIVATE ParticleDataTable) command correctly ties the generated target to the core, ensuring proper encapsulation. Trust in your dependency management, you should.

Core/src/Propagator/CMakeLists.txt (5)

17-17: ActsCodegen inclusion, a sound decision it is.
Including ActsCodegen here aligns with the code generation strategy across the project. The path is correct, and the Force of consistency is strong with this change.


19-26: Summon the SympyCovarianceEngine, you did.
The acts_code_generation invocation for SympyCovarianceEngine is comprehensive, with proper parameters such as WITH_REQUIREMENTS, WITH, and the ISOLATED flag. Verify that the Python script detail/generate_sympy_cov.py is in its rightful place relative to this file, you must.


28-35: SympyStepperMath target, invoked with clarity it is.
The code generation for SympyStepperMath is handled neatly. However, confirm that the Python script generate_sympy_stepper.py is discoverable in the expected directory. Alignment with project structure you must ensure.


37-44: SympyJacobianEngine, generated with skill it has been.
The configuration for SympyJacobianEngine mirrors the previous blocks, and the parameters look proper. Ensure that the script detail/generate_sympy_jac.py is correctly positioned so that the generation occurs without disturbance to the Force.


46-49: Linking multiple targets, balance achieved it is.
The target_link_libraries command linking SympyCovarianceEngine, SympyStepperMath, and SympyJacobianEngine to ActsCore as private dependencies is executed with precision. The constellation of dependencies appears well aligned.

andiwand
andiwand previously approved these changes Feb 20, 2025
Copy link
Contributor

@andiwand andiwand left a comment

Choose a reason for hiding this comment

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

great stuff! 👍

do you think this has implications with the Athena build?

@paulgessinger
Copy link
Member Author

@andiwand I still need to test that. In principle, it should be transparent but you never know.

Copy link

github-actions bot commented Feb 20, 2025

📊: Physics performance monitoring for 23cb61e

Full contents

physmon summary

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (2)
CI/check_codegen_dependencies.sh (2)

7-11: Guard the input, you should.
Currently, the script takes its input from $1 and relies on set -u to catch unset values. For friendlier errors and clarity, consider adding an explicit check for the required input parameter. Hmmm, this will improve user guidance.

Here is a suggested diff to add before line 7:

+if [ "$#" -ne 1 ]; then
+  echo "Usage: $0 <requirements_file>" >&2
+  exit 1
+fi

13-15: Quote the directory, you must.
To gracefully handle directories with spaces, wrap the $dir variable in quotes when using pushd, you should.

A suggested diff is as follows:

- pushd $dir
+ pushd "$dir"
📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 8782465 and fca8b1a.

📒 Files selected for processing (5)
  • .github/workflows/checks.yml (0 hunks)
  • .pre-commit-config.yaml (1 hunks)
  • CI/check_codegen (0 hunks)
  • CI/check_codegen_dependencies.sh (1 hunks)
  • CI/check_unused_files.py (1 hunks)
💤 Files with no reviewable changes (2)
  • .github/workflows/checks.yml
  • CI/check_codegen
✅ Files skipped from review due to trivial changes (1)
  • CI/check_unused_files.py
⏰ Context from checks skipped due to timeout of 90000ms (24)
  • GitHub Check: merge-sentinel
  • GitHub Check: CI Bridge / build_gnn_tensorrt
  • GitHub Check: CI Bridge / lcg_107: [alma9, clang19]
  • GitHub Check: CI Bridge / lcg_107: [alma9, gcc14]
  • GitHub Check: CI Bridge / lcg_107: [alma9, gcc13]
  • GitHub Check: linux_ubuntu_extra (ubuntu2204, 20, clang++)
  • GitHub Check: CI Bridge / lcg_106a: [alma9, clang16]
  • GitHub Check: CI Bridge / lcg_106a: [alma9, gcc14]
  • GitHub Check: macos
  • GitHub Check: CI Bridge / lcg_106a: [alma9, gcc13]
  • GitHub Check: linux_ubuntu_extra (ubuntu2204, 20, g++)
  • GitHub Check: unused_files
  • GitHub Check: CI Bridge / lcg_105: [alma9, clang16]
  • GitHub Check: CI Bridge / lcg_105: [alma9, gcc13]
  • GitHub Check: missing_includes
  • GitHub Check: docs
  • GitHub Check: linux_ubuntu
  • GitHub Check: CI Bridge / linux_ubuntu_2204_clang
  • GitHub Check: CI Bridge / linux_ubuntu_2204
  • GitHub Check: CI Bridge / build_linux_ubuntu
  • GitHub Check: CI Bridge / build_exatrkx
  • GitHub Check: build_debug
  • GitHub Check: CI Bridge / build_exatrkx_cpu
  • GitHub Check: CI Bridge / clang_tidy
🔇 Additional comments (2)
.pre-commit-config.yaml (1)

106-114: Excellent hook addition, you have!
The new codegen_dependencies hook is configured nicely, hmmm. The settings for entry and the file pattern are clear. Verify that the regex matches exactly what you intend, you must.

CI/check_codegen_dependencies.sh (1)

1-3: Strong foundation, this script has.
Your shebang and strict mode settings (set -e and set -u) lead to fewer misadventures in execution, they do—approved, I am.

@paulgessinger
Copy link
Member Author

@andiwand I added a pre-commit check that verifies that next to each pyproject.toml there is a requirements.txt that has consistent contents. This should make it almost impossible to forget syncing them. The CI should run this check automatically.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
CI/requirements.txt (1)

3-54: Dependency list simplified, it has been.
Removed the hash values, you have. Cleaner the file is now, but cautious one must be—without hash verifications, potential security risks there may be. Ensure alternative integrity measures are in place, or add a note to clarify this trade-off in the commit message, you should.

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f7e3b0d and e809502.

📒 Files selected for processing (2)
  • CI/check_codegen_dependencies.sh (1 hunks)
  • CI/requirements.txt (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • CI/check_codegen_dependencies.sh
⏰ Context from checks skipped due to timeout of 90000ms (15)
  • GitHub Check: merge-sentinel
  • GitHub Check: CI Bridge / lcg_105: [alma9, clang16]
  • GitHub Check: CI Bridge / lcg_106a: [alma9, clang16]
  • GitHub Check: CI Bridge / lcg_106a: [alma9, gcc14]
  • GitHub Check: CI Bridge / lcg_106a: [alma9, gcc13]
  • GitHub Check: CI Bridge / lcg_105: [alma9, gcc13]
  • GitHub Check: unused_files
  • GitHub Check: CI Bridge / build_gnn_tensorrt
  • GitHub Check: CI Bridge / linux_ubuntu_2204
  • GitHub Check: CI Bridge / linux_ubuntu_2204_clang
  • GitHub Check: CI Bridge / build_exatrkx
  • GitHub Check: CI Bridge / build_linux_ubuntu
  • GitHub Check: CI Bridge / build_exatrkx_cpu
  • GitHub Check: missing_includes
  • GitHub Check: CI Bridge / clang_tidy
🔇 Additional comments (1)
CI/requirements.txt (1)

1-2: Header autogeneration, clear it is.
Informative these header comments are—autogenerated by uv, they state. Instructive and transparent, the command usage is. Approved, I must say.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Component - Core Affects the Core module Component - Fatras Affects the Fatras module Infrastructure Changes to build tools, continous integration, ...
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants