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 #13

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 build system, particularly the Meson configuration. It introduces version-specific enhancements, updates dependency management, and refines the CI process. The changes aim to provide better build information, improve test execution, and ensure compatibility with newer Meson versions while maintaining support for older ones.

  • Enhancements:
    • Refactored file path joining operations to use the more modern '/' operator in Meson scripts.
  • Build:
    • Updated Meson build system to require version 0.53 or higher.
    • Added a summary section to display project configuration details when using Meson 0.57 or higher.
    • Updated package dependency specifications in the core library's pkg-config file.
  • CI:
    • Updated the 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.
  • Chores:
    • Changed the 'sanitize-address' option type from string to boolean in meson_options.txt.

@Hellebore
Copy link
Author

This is an experiment review for experiment review_of_reviews_20240708
Run ID: review_of_reviews_20240708/run_2024-07-09T18-50-44_v1-20-0-9-g183c2816a-dirty
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.

@@ -54,8 +54,8 @@ else
description: 'Communicate and Share File in LAN',
name: 'iptux-core',
version: so_version,
requires: ['jsoncpp >= 1.0', 'glib-2.0 >= 2.35', 'sigc++-2.0'],

Choose a reason for hiding this comment

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

suggestion: Consider preserving explicit version requirements

While using variables improves maintainability, we lose the explicit version requirements. Consider using a format like jsoncpp_dep.name() + ' >= ' + jsoncpp_dep.version() to maintain both flexibility and explicit requirements.

Suggested change
requires: ['jsoncpp >= 1.0', 'glib-2.0 >= 2.35', 'sigc++-2.0'],
requires: [
jsoncpp_dep.name() + ' >= ' + jsoncpp_dep.version(),
glib_dep.name() + ' >= ' + glib_dep.version(),
sigc_dep.name() + ' >= ' + sigc_dep.version(),
thread_dep.name() + ' >= ' + thread_dep.version(),
],

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 +19 to +58
if meson.version().version_compare('>=0.57')
summary({
'prefix': get_option('prefix'),
'bindir': get_option('bindir'),
'libdir': get_option('libdir'),
'data': get_option('datadir'),
}, section: 'Directories:')

summary_deps = {
'meson': meson.version(),
'glib-2.0': glib_dep,
'gtk+-3.0': gtk_dep,
'jsoncpp': jsoncpp_dep,
'libglog': glog_dep,
'gflags': gflags_dep,
'sigc++-2.0': sigc_dep,
}

if host_machine.system() == 'darwin'
summary_deps += {'gtk-mac-integration-gtk3': gtk_mac_integration_dep}
endif

if host_machine.system() == 'linux'
summary_deps += {'ayatana-appindicator3-0.1': appindicator_dep}
endif

summary_deps += {
'glib-compile-resources': glib_compile_resources,
'appstreamcli': ascli_exe,
}

summary(summary_deps, section: 'Dependencies:')

summary({
'dev': get_option('dev'),
'static-link': get_option('static-link'),
'appindicator': appindicator_dep.found(),
'sanitize-address': get_option('sanitize-address'),
}, section: 'Options:')
endif

Choose a reason for hiding this comment

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

suggestion: Consider centralizing Meson version-dependent features

The PR introduces several Meson version checks throughout the project. To reduce duplication and improve maintainability, consider defining boolean variables at the top of the main meson.build file based on the Meson version, and use these variables throughout the project.

Suggested change
if meson.version().version_compare('>=0.57')
summary({
'prefix': get_option('prefix'),
'bindir': get_option('bindir'),
'libdir': get_option('libdir'),
'data': get_option('datadir'),
}, section: 'Directories:')
summary_deps = {
'meson': meson.version(),
'glib-2.0': glib_dep,
'gtk+-3.0': gtk_dep,
'jsoncpp': jsoncpp_dep,
'libglog': glog_dep,
'gflags': gflags_dep,
'sigc++-2.0': sigc_dep,
}
if host_machine.system() == 'darwin'
summary_deps += {'gtk-mac-integration-gtk3': gtk_mac_integration_dep}
endif
if host_machine.system() == 'linux'
summary_deps += {'ayatana-appindicator3-0.1': appindicator_dep}
endif
summary_deps += {
'glib-compile-resources': glib_compile_resources,
'appstreamcli': ascli_exe,
}
summary(summary_deps, section: 'Dependencies:')
summary({
'dev': get_option('dev'),
'static-link': get_option('static-link'),
'appindicator': appindicator_dep.found(),
'sanitize-address': get_option('sanitize-address'),
}, section: 'Options:')
endif
meson_version_0_57_or_higher = meson.version().version_compare('>=0.57')
if meson_version_0_57_or_higher
# ... existing summary code ...
endif

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