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

⬆️ πŸ› οΈ(deps): update dependency ruff to ^0.8.0 #416

Open
wants to merge 1 commit into
base: dev
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Nov 22, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
ruff (source, changelog) ^0.7.0 -> ^0.8.0 age adoption passing confidence

Release Notes

astral-sh/ruff (ruff)

v0.8.0

Compare Source

Check out the blog post for a migration guide and overview of the changes!

Breaking changes

See also, the "Remapped rules" section which may result in disabled rules.

  • Default to Python 3.9

    Ruff now defaults to Python 3.9 instead of 3.8 if no explicit Python version is configured using ruff.target-version or project.requires-python (#​13896)

  • Changed location of pydoclint diagnostics

    pydoclint diagnostics now point to the first-line of the problematic docstring. Previously, this was not the case.

    If you've opted into these preview rules but have them suppressed using
    noqa comments in
    some places, this change may mean that you need to move the noqa suppression
    comments. Most users should be unaffected by this change.

  • Use XDG (i.e. ~/.local/bin) instead of the Cargo home directory in the standalone installer

    Previously, Ruff's installer used $CARGO_HOME or ~/.cargo/bin for its target install directory. Now, Ruff will be installed into $XDG_BIN_HOME, $XDG_DATA_HOME/../bin, or ~/.local/bin (in that order).

    This change is only relevant to users of the standalone Ruff installer (using the shell or PowerShell script). If you installed Ruff using uv or pip, you should be unaffected.

  • Changes to the line width calculation

    Ruff now uses a new version of the unicode-width Rust crate to calculate the line width. In very rare cases, this may lead to lines containing Unicode characters being reformatted, or being considered too long when they were not before (E501).

Removed Rules

The following deprecated rules have been removed:

Remapped rules

The following rules have been remapped to new rule codes:

Stabilization

The following rules have been stabilized and are no longer in preview:

The following behaviors have been stabilized:

The following fixes have been stabilized:

Preview features
  • [flake8-datetimez] Exempt min.time() and max.time() (DTZ901) (#​14394)
  • [flake8-pie] Mark fix as unsafe if the following statement is a string literal (PIE790) (#​14393)
  • [flake8-pyi] New rule redundant-none-literal (PYI061) (#​14316)
  • [flake8-pyi] Add autofix for redundant-numeric-union (PYI041) (#​14273)
  • [ruff] New rule map-int-version-parsing (RUF048) (#​14373)
  • [ruff] New rule redundant-bool-literal (RUF038) (#​14319)
  • [ruff] New rule unraw-re-pattern (RUF039) (#​14446)
  • [pycodestyle] Exempt pytest.importorskip() calls (E402) (#​14474)
  • [pylint] Autofix suggests using sets when possible (PLR1714) (#​14372)
Rule changes
  • invalid-pyproject-toml (RUF200): Updated to reflect the provisionally accepted PEP 639.
  • [flake8-pyi] Avoid panic in unfixable case (PYI041) (#​14402)
  • [flake8-type-checking] Correctly handle quotes in subscript expression when generating an autofix (#​14371)
  • [pylint] Suggest correct autofix for __contains__ (PLC2801) (#​14424)
Configuration
  • Ruff now emits a warning instead of an error when a configuration ignores a rule that has been removed (#​14435)
  • Ruff now validates that lint.flake8-import-conventions.aliases only uses valid module names and aliases (#​14477)

Configuration

πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

β™» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

πŸ”• Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot added the dependencies Pull requests that update a dependency file label Nov 22, 2024
Copy link

sourcery-ai bot commented Nov 22, 2024

Reviewer's Guide by Sourcery

This PR updates the Ruff linter dependency from version 0.7.0 to 0.8.0 in the development dependencies. The update includes several breaking changes, rule removals, and new features as detailed in Ruff's changelog.

No diagrams generated as the changes look simple and do not need a visual representation.

File-Level Changes

Change Details Files
Update Ruff linter version in development dependencies
  • Bump Ruff version from ^0.7.0 to ^0.8.0
  • Update brings breaking changes including Python 3.9 as the new default target version
  • Several deprecated rules have been removed
  • Multiple rules have been stabilized and are no longer in preview
pyproject.toml

Tips and commands

Interacting with Sourcery

  • Trigger a new review: Comment @sourcery-ai review on the pull request.
  • Continue discussions: Reply directly to Sourcery's review comments.
  • Generate a GitHub issue from a review comment: Ask Sourcery to create an
    issue from a review comment by replying to it.
  • Generate a pull request title: Write @sourcery-ai anywhere in the pull
    request title to generate a title at any time.
  • Generate a pull request summary: Write @sourcery-ai summary anywhere in
    the pull request body to generate a PR summary at any time. You can also use
    this command to specify where the summary should be inserted.

Customizing Your Experience

Access your dashboard to:

  • Enable or disable review features such as the Sourcery-generated pull request
    summary, the reviewer's guide, and others.
  • Change the review language.
  • Add, remove or edit custom review instructions.
  • Adjust other review settings.

Getting Help

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

We have skipped reviewing this pull request. Here's why:

  • It seems to have been created by a bot (hey, renovate[bot]!). We assume it knows what it's doing!
  • We don't review packaging changes - Let us know if you'd like us to change this.

Copy link

@llamapreview llamapreview bot left a comment

Choose a reason for hiding this comment

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

Auto Pull Request Review from LlamaPReview

1. Change Overview

1.1 Core Changes

  • Primary purpose and scope: This PR updates the ruff dependency from version ^0.7.0 to ^0.8.0.
  • Key components modified: The pyproject.toml file.
  • Cross-component impacts: The update may affect linting rules and configurations used throughout the project, potentially requiring adjustments to existing code.
  • Business value alignment: Ensures the project uses the latest version of the Ruff linter, which includes new features, bug fixes, and deprecations.

1.2 Technical Architecture

  • System design modifications: None.
  • Component interaction changes: None.
  • Integration points impact: None.
  • Dependency changes and implications: The primary dependency change affects the linting process. Developers need to be aware of the new linting rules and adjustments.

2. Deep Technical Analysis

2.1 Code Logic Analysis

pyproject.toml

  • Submitted PR Code:
    [tool.poetry.group.dev.dependencies]
    python-semantic-release = ">=8.0.8"
    -ruff = "^0.7.0"
    +ruff = "^0.8.0"
    pre-commit = "^3.3.1"
  • Analysis:
    • Current logic and potential issues: The change updates the ruff dependency to version ^0.8.0. This update includes several breaking changes, such as defaulting to Python 3.9, changes to the line width calculation, and the removal of deprecated rules.
    • Edge cases and error handling: Developers need to review the changes to ensure compatibility with existing code. For example, the new default Python version may require updates to the codebase to be compliant with Python 3.9.
    • Cross-component impact : The update may affect how linting is performed, potentially requiring adjustments to existing configuration files or code.
    • Business logic considerations : None.
  • LlamaPReview Suggested Improvements:
    [tool.poetry.group.dev.dependencies]
    python-semantic-release = ">=8.0.8"
    ruff = "^0.8.0"
    pre-commit = "^3.3.1"
  • Improvement rationale :
    • Technical benefits: Ensures the project uses the latest version of the Ruff linter, which includes new features, bug fixes, and deprecations.
    • Business value: Keeps the project up-to-date with the latest tools and practices.
    • Risk assessment: Requires careful review and potential adjustments to existing code to ensure compatibility with the new linting rules.

2.2 Implementation Quality

  • Code Structure:

    • Organization and modularity: The change is well-organized and modular, affecting only the relevant section of the pyproject.toml file.
    • Design pattern adherence: N/A.
    • Reusability aspects: N/A.
    • Maintainability factors: The change is straightforward and easy to maintain.
  • Error Handling:

    • Exception scenarios coverage: N/A.
    • Recovery mechanisms: N/A.
    • Logging and monitoring: N/A.
    • User experience impact: N/A.
  • Performance Considerations:

    • Resource utilization: N/A.
    • Scalability aspects: N/A.
    • Bottleneck analysis: N/A.
    • Optimization opportunities: N/A.

3. Risk Assessment

3.1 Critical Issues

πŸ”΄ P0 (Must Fix):

  • Issue: None.
  • Impact: None.
  • Resolution: None.

3.2 Important Improvements

🟑 P1 (Should Fix):

  • Issue: The update to Ruff ^0.8.0 includes breaking changes that may affect existing code.
  • Current Impact:
    • Performance implications: None.
    • Maintenance overhead: Requires review and potential adjustments to existing code.
    • Future scalability: None.
  • Suggested Solution:
    • Implementation approach: Review the Ruff changelog and update existing code as necessary to comply with the new linting rules.
    • Migration strategy: Test the updated codebase thoroughly to ensure compatibility.
    • Testing considerations: Ensure comprehensive test coverage to catch any issues introduced by the update.

3.3 Minor Suggestions

🟒 P2 (Consider):

  • Area: Documentation.
  • Improvement Opportunity:
    • Code quality enhancement: Document the changes and any necessary adjustments in the project's documentation.
    • Best practice alignment: Ensure that the project's documentation reflects the latest practices and tools used.
    • Documentation updates: Update the project's documentation to reflect the changes introduced by the Ruff update.

4. Requirements Analysis

4.1 Functional Coverage

  • Requirements mapping:
    • Implemented features: The update to Ruff ^0.8.0 ensures the project uses the latest linting tools and practices.
    • Missing elements: None.
    • Edge cases handling: None.
  • Business Logic:
    • Use case coverage: N/A.
    • Business rule implementation: N/A.
    • Data flow correctness: N/A.

4.2 Non-functional Aspects

  • Performance metrics: N/A.
  • Security considerations: N/A.
  • Scalability factors: N/A.
  • Maintainability aspects: The change is straightforward and easy to maintain.

5. Testing Strategy

  • Test Coverage:
    • Unit test requirements: Ensure comprehensive test coverage to catch any issues introduced by the Ruff update.
    • Integration test scenarios: Test the updated codebase thoroughly to ensure compatibility.
    • Edge case validation: Validate edge cases that may be affected by the new linting rules.
  • Quality Metrics:
    • Current coverage: N/A.
    • Critical paths: N/A.
    • Performance benchmarks: N/A.

6. Final Assessment

6.1 Key Action Items

  1. Critical Changes (P0):
    [None]

  2. Important Improvements (P1):

    • Review the Ruff changelog and update existing code as necessary to comply with the new linting rules.
    • Test the updated codebase thoroughly to ensure compatibility.
    • Ensure comprehensive test coverage to catch any issues introduced by the Ruff update.
  3. Suggested Enhancements (P2):

    • Document the changes and any necessary adjustments in the project's documentation.
    • Ensure that the project's documentation reflects the latest practices and tools used.
    • Update the project's documentation to reflect the changes introduced by the Ruff update.

6.2 Overall Evaluation

  • Technical assessment: The update to Ruff ^0.8.0 is straightforward but requires careful review and potential adjustments to existing code to ensure compatibility with the new linting rules.
  • Business impact: Keeps the project up-to-date with the latest linting tools and practices.
  • Risk evaluation: Requires careful review and potential adjustments to existing code to ensure compatibility with the new linting rules.
  • Implementation quality: The change is well-organized, modular, and easy to maintain.

πŸ’‘ LlamaPReview Community
Have feedback on this AI Code review tool? Join our GitHub Discussions to share your thoughts and help shape the future of LlamaPReview.

Copy link

codecov bot commented Nov 22, 2024

Codecov Report

All modified and coverable lines are covered by tests βœ…

Project coverage is 100.00%. Comparing base (d0d341e) to head (772588e).

Additional details and impacted files
@@            Coverage Diff            @@
##               dev      #416   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            6         6           
  Lines          142       142           
=========================================
  Hits           142       142           

β˜” View full report in Codecov by Sentry.
πŸ“’ Have feedback on the report? Share it here.


🚨 Try these New Features:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants