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

Meson improvement #15

Open
wants to merge 5 commits into
base: base-sha/dedf3c02ebc010e83a8c1b48b62e05f0026b01ae
Choose a base branch
from

Conversation

Hellebore
Copy link

@Hellebore Hellebore commented Jul 9, 2024

Summary by Sourcery

This pull request focuses on improving and modernizing the project's Meson build system. It introduces version-specific enhancements, updates dependency management, and improves test execution. The changes also include minor updates to the CI workflow and some code refactoring for better readability and consistency.

  • Enhancements:
    • Refactored file path joining in share/metainfo/meson.build to use the more modern '/' operator.
    • Updated the 'sanitize-address' option in meson_options.txt to use a boolean value instead of a string.
  • Build:
    • Updated Meson build system with new minimum version requirement of 0.53.
    • Added a summary section to display project configuration details when using Meson 0.57 or higher.
    • Modified package dependency specifications in src/iptux-core/meson.build to use variables instead of hardcoded versions.
  • CI:
    • Updated CI workflow to use Ubuntu 22.04 and added libunwind-dev to the package installation list.
  • Tests:
    • Improved test execution by using the 'gtest' protocol for Meson versions 0.55 and above.

@Hellebore
Copy link
Author

This is an experiment review for experiment review_of_reviews_20240708
Run ID: review_of_reviews_20240708/run_2024-07-09T20-20-16_v1-20-0-10-g40cd15d62
The benchmark review for this pull request can be found at #4.
This pull request was cloned from https://github.com/iptux-src/iptux/pull/620. (Note: the URL is not a link to avoid triggering a notification on the original pull request.)

Experiment configuration
review_config:
  # User configuration for the review
  # - benchmark - use the user config from the benchmark reviews
  # - <value> - use the value directly
  user_review_config:
    enable_ai_review: true
    enable_rule_comments: false

    enable_complexity_comments: benchmark
    enable_security_comments: benchmark
    enable_tests_comments: benchmark
    enable_comment_suggestions: benchmark
    enable_functionality_review: benchmark

    enable_pull_request_summary: benchmark
    enable_review_guide: benchmark

    enable_approvals: true

  ai_review_config:
    # The model responses to use for the experiment
    # - benchmark - use the model responses from the benchmark reviews
    # - llm - call the language model to generate responses
    model_responses:
      comments_model: llm
      comment_area_model: llm
      comment_validation_model: llm
      comment_suggestion_model: llm
      complexity_model: llm
      docstrings_model: llm
      functionality_model: llm
      security_model: llm
      tests_model: llm
      pull_request_summary_model: llm
      review_guide_model: llm
      documentation_model: llm
      overall_comments_model: llm

# The pull request dataset to run the experiment on
pull_request_dataset:
- https://github.com/mraniki/iamlistening/pull/334
- https://github.com/mraniki/cefi/pull/475
- https://github.com/mraniki/MyLLM/pull/581
- https://github.com/mraniki/dxsp/pull/689
- https://github.com/jschalk/jaar/pull/239
- https://github.com/jschalk/jaar/pull/241
- https://github.com/jschalk/jaar/pull/242
- https://github.com/iptux-src/iptux/pull/620
- https://github.com/iptux-src/iptux/pull/622
- https://github.com/hacksider/Deep-Live-Cam/pull/46
- https://github.com/mnbf9rca/super_simple_tfl_status/pull/114
- https://github.com/mnbf9rca/super_simple_tfl_status/pull/115
- https://github.com/RockProfile/Django-deployment/pull/1
- https://github.com/hbmartin/graphviz2drawio/pull/83
- https://github.com/fairdataihub/codefair-app/pull/28
- https://github.com/totaldebug/atomic-calendar-revive/pull/1518
- https://github.com/iammiracle01/portfolio/pull/1
- https://github.com/iammiracle01/portfolio/pull/2
- https://github.com/iammiracle01/portfolio/pull/3
- https://github.com/supermario-ai/gpt-crawler/pull/1
- https://github.com/hbmartin/graphviz2drawio/pull/84
- https://github.com/hbmartin/graphviz2drawio/pull/85
- https://github.com/dreamerminsk/tasked/pull/85
- https://github.com/dreamerminsk/tasked/pull/86
- https://github.com/dreamerminsk/tasked/pull/84
- https://github.com/haalasz/fm-tools/pull/9
- https://github.com/haalasz/fm-tools/pull/10
- https://github.com/iptux-src/iptux/pull/619
- https://github.com/code-Harsh247/medsymptom/pull/1
- https://github.com/code-Harsh247/medsymptom/pull/2
- https://github.com/cpp-lln-lab/bidspm/pull/1263
- https://github.com/cpp-lln-lab/bidspm/pull/1264
- https://github.com/cpp-lln-lab/bidspm/pull/1265
- https://github.com/luiscarlop/Judge_AI/pull/22
- https://github.com/NoNormalCreeper/nonebot_plugin_wolfram/pull/6
- https://github.com/osama1998H/kalima/pull/39
- https://github.com/osama1998H/kalima/pull/40
- https://github.com/osama1998H/kalima/pull/41
- https://github.com/jackdewinter/pymarkdown/pull/1131
- https://github.com/Eliver-Salazar/PED/pull/12
- https://github.com/NextAlone/Nagram/pull/40
- https://github.com/strawberry-graphql/strawberry-django/pull/575
- https://github.com/strawberry-graphql/strawberry/pull/3558
- https://github.com/strawberry-graphql/strawberry/pull/3559
- https://github.com/Ruin2121/yahooquery/pull/9
- https://github.com/gdsfactory/gdsfactory/pull/2951
- https://github.com/gdsfactory/gdsfactory/pull/2954
- https://github.com/gdsfactory/gdsfactory/pull/2956
- https://github.com/gdsfactory/gdsfactory/pull/2957
- https://github.com/gdsfactory/cspdk/pull/51
review_comment_labels:
- label: correct
  question: Is this comment correct?
- label: helpful
  question: Is this comment helpful?
- label: comment-type
  question: Is the comment type correct?
- label: comment-area
  question: Is the comment area correct?
- label: llm-test
  question: |
    What type of LLM test could this comment become?
    - 👍 - this comment is really good/important and we should always make it
    - 👎 - this comment is really bad and we should never make it
    - no reaction - don't turn this comment into an LLM test

# Benchmark reviews generated by running
#   python -m scripts.experiment benchmark <experiment_name>
benchmark_reviews:
- dataset_pull_request: https://github.com/mraniki/iamlistening/pull/334
  review_pull_request: https://github.com/sourcery-ai-experiments/iamlistening/pull/35
- dataset_pull_request: https://github.com/mraniki/cefi/pull/475
  review_pull_request: https://github.com/sourcery-ai-experiments/cefi/pull/36
- dataset_pull_request: https://github.com/mraniki/MyLLM/pull/581
  review_pull_request: https://github.com/sourcery-ai-experiments/MyLLM/pull/4
- dataset_pull_request: https://github.com/mraniki/dxsp/pull/689
  review_pull_request: https://github.com/sourcery-ai-experiments/dxsp/pull/14
- dataset_pull_request: https://github.com/iptux-src/iptux/pull/620
  review_pull_request: https://github.com/sourcery-ai-experiments/iptux/pull/4
- dataset_pull_request: https://github.com/iptux-src/iptux/pull/622
  review_pull_request: https://github.com/sourcery-ai-experiments/iptux/pull/5
- dataset_pull_request: https://github.com/hacksider/Deep-Live-Cam/pull/46
  review_pull_request: https://github.com/sourcery-ai-experiments/Deep-Live-Cam/pull/2
- dataset_pull_request: https://github.com/mnbf9rca/super_simple_tfl_status/pull/114
  review_pull_request: https://github.com/sourcery-ai-experiments/super_simple_tfl_status/pull/1
- dataset_pull_request: https://github.com/mnbf9rca/super_simple_tfl_status/pull/115
  review_pull_request: https://github.com/sourcery-ai-experiments/super_simple_tfl_status/pull/2
- dataset_pull_request: https://github.com/hbmartin/graphviz2drawio/pull/83
  review_pull_request: https://github.com/sourcery-ai-experiments/graphviz2drawio/pull/1
- dataset_pull_request: https://github.com/iammiracle01/portfolio/pull/1
  review_pull_request: https://github.com/sourcery-ai-experiments/portfolio/pull/2
- dataset_pull_request: https://github.com/iammiracle01/portfolio/pull/2
  review_pull_request: https://github.com/sourcery-ai-experiments/portfolio/pull/1
- dataset_pull_request: https://github.com/iammiracle01/portfolio/pull/3
  review_pull_request: https://github.com/sourcery-ai-experiments/portfolio/pull/3
- dataset_pull_request: https://github.com/supermario-ai/gpt-crawler/pull/1
  review_pull_request: https://github.com/sourcery-ai-experiments/gpt-crawler/pull/1
- dataset_pull_request: https://github.com/hbmartin/graphviz2drawio/pull/84
  review_pull_request: https://github.com/sourcery-ai-experiments/graphviz2drawio/pull/2
- dataset_pull_request: https://github.com/dreamerminsk/tasked/pull/86
  review_pull_request: https://github.com/sourcery-ai-experiments/tasked/pull/14
- dataset_pull_request: https://github.com/dreamerminsk/tasked/pull/84
  review_pull_request: https://github.com/sourcery-ai-experiments/tasked/pull/15
- dataset_pull_request: https://github.com/haalasz/fm-tools/pull/9
  review_pull_request: https://github.com/sourcery-ai-experiments/fm-tools/pull/2
- dataset_pull_request: https://github.com/haalasz/fm-tools/pull/10
  review_pull_request: https://github.com/sourcery-ai-experiments/fm-tools/pull/3
- dataset_pull_request: https://github.com/iptux-src/iptux/pull/619
  review_pull_request: https://github.com/sourcery-ai-experiments/iptux/pull/6
- dataset_pull_request: https://github.com/code-Harsh247/medsymptom/pull/1
  review_pull_request: https://github.com/sourcery-ai-experiments/medsymptom/pull/1
- dataset_pull_request: https://github.com/code-Harsh247/medsymptom/pull/2
  review_pull_request: https://github.com/sourcery-ai-experiments/medsymptom/pull/2
- dataset_pull_request: https://github.com/NoNormalCreeper/nonebot_plugin_wolfram/pull/6
  review_pull_request: https://github.com/sourcery-ai-experiments/nonebot_plugin_wolfram/pull/1
- dataset_pull_request: https://github.com/osama1998H/kalima/pull/39
  review_pull_request: https://github.com/sourcery-ai-experiments/kalima/pull/1
- dataset_pull_request: https://github.com/osama1998H/kalima/pull/40
  review_pull_request: https://github.com/sourcery-ai-experiments/kalima/pull/2
- dataset_pull_request: https://github.com/osama1998H/kalima/pull/41
  review_pull_request: https://github.com/sourcery-ai-experiments/kalima/pull/3
- dataset_pull_request: https://github.com/jackdewinter/pymarkdown/pull/1131
  review_pull_request: https://github.com/sourcery-ai-experiments/pymarkdown/pull/9
- dataset_pull_request: https://github.com/Eliver-Salazar/PED/pull/12
  review_pull_request: https://github.com/sourcery-ai-experiments/PED/pull/3
- dataset_pull_request: https://github.com/NextAlone/Nagram/pull/40
  review_pull_request: https://github.com/sourcery-ai-experiments/Nagram/pull/1
- dataset_pull_request: https://github.com/strawberry-graphql/strawberry-django/pull/575
  review_pull_request: https://github.com/sourcery-ai-experiments/strawberry-django/pull/2
- dataset_pull_request: https://github.com/strawberry-graphql/strawberry/pull/3558
  review_pull_request: https://github.com/sourcery-ai-experiments/strawberry/pull/13
- dataset_pull_request: https://github.com/strawberry-graphql/strawberry/pull/3559
  review_pull_request: https://github.com/sourcery-ai-experiments/strawberry/pull/14
- dataset_pull_request: https://github.com/Ruin2121/yahooquery/pull/9
  review_pull_request: https://github.com/sourcery-ai-experiments/yahooquery/pull/1

@SourceryAI
Copy link

SourceryAI commented Jul 9, 2024

Reviewer's Guide by Sourcery

This pull request improves the Meson build configuration by updating the required Meson version, adding summary sections for better visibility of configuration options and dependencies, and enhancing test definitions for better integration with the Google Test framework. The changes include updating the required Meson version to >=0.53, adding summary sections for directories, dependencies, and options, replacing string-based dependency declarations with variable-based declarations, and updating test definitions to include the 'protocol: gtest' field for Meson versions >=0.55. Additionally, the CI workflow was updated to use Ubuntu 22.04 for the codecov job and include libunwind-dev in the installation list.

File-Level Changes

Files Changes
src/iptux-core/meson.build
src/iptux-utils/meson.build
src/iptux/meson.build
Updated test definitions to include 'protocol: gtest' for Meson versions >=0.55, improving integration with Google Test framework
meson.build
src/iptux-core/meson.build
Enhanced dependency management by adding summary sections and replacing string-based declarations with variable-based declarations

Tips
  • Trigger a new Sourcery review by commenting @sourcery-ai review on the pull request.
  • Continue your discussion with Sourcery by replying directly to review comments.
  • You can change your review settings at any time by accessing your dashboard:
    • Enable or disable the Sourcery-generated pull request summary or reviewer's guide;
    • Change the review language;
  • You can always contact us if you have any questions or feedback.

Copy link

@SourceryAI SourceryAI left a comment

Choose a reason for hiding this comment

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

Hey @Hellebore - I've reviewed your changes and they look great!

Here's what I looked at during the review
  • 🟡 General issues: 2 issues found
  • 🟢 Security: all looks good
  • 🟢 Testing: all looks good
  • 🟢 Complexity: all looks good
  • 🟢 Documentation: all looks good

LangSmith trace

Help me be more useful! Please click 👍 or 👎 on each comment to tell me if it was helpful.

@@ -1,6 +1,7 @@
project('iptux', 'cpp',
license: 'GPL2+',
version: '0.9.3',
meson_version: '>=0.53',

Choose a reason for hiding this comment

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

suggestion: Consider using a more recent minimum Meson version

Meson 0.53 was released in 2019. Given the other changes in this PR that use features from newer Meson versions, it might be worth considering a more recent minimum version to ensure better compatibility and access to newer features.

Suggested change
meson_version: '>=0.53',
meson_version: '>=0.60',

Choose a reason for hiding this comment

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

Is this comment correct?

Choose a reason for hiding this comment

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

Is this comment helpful?

Choose a reason for hiding this comment

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

Is the comment type correct?

Choose a reason for hiding this comment

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

Is the comment area correct?

Choose a reason for hiding this comment

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

What type of LLM test could this comment become?

  • 👍 - this comment is really good/important and we should always make it
  • 👎 - this comment is really bad and we should never make it
  • no reaction - don't turn this comment into an LLM test

Comment on lines +40 to +44
if meson.version().version_compare('>=0.55')
test('utils', libiptux_utils_test, protocol: 'gtest')
else
test('utils', libiptux_utils_test)
endif

Choose a reason for hiding this comment

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

suggestion: Consider unifying test configuration across different components

This pattern of checking Meson version and adjusting test configuration is repeated in multiple files. Consider creating a custom Meson function to encapsulate this logic, which could make the code more maintainable and consistent across different components.

Suggested change
if meson.version().version_compare('>=0.55')
test('utils', libiptux_utils_test, protocol: 'gtest')
else
test('utils', libiptux_utils_test)
endif
custom_test = custom_target('custom_test',
output: 'custom_test.build',
command: [
'echo',
'custom_target(\'test\', args: [\'@0@\', \'@1@\'], protocol: meson.version().version_compare(\'>=0.55\') ? \'gtest\' : \'\')',
],
build_by_default: true
)
test('utils', libiptux_utils_test, args: [custom_test.full_path()])

Choose a reason for hiding this comment

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

Is this comment correct?

Choose a reason for hiding this comment

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

Is this comment helpful?

Choose a reason for hiding this comment

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

Is the comment type correct?

Choose a reason for hiding this comment

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

Is the comment area correct?

Choose a reason for hiding this comment

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

What type of LLM test could this comment become?

  • 👍 - this comment is really good/important and we should always make it
  • 👎 - this comment is really bad and we should never make it
  • no reaction - don't turn this comment into an LLM test

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants