Skip to content

feat: Lint Python with Ruff#4105

Merged
aglinxinyuan merged 6 commits into
apache:mainfrom
LJX2017:replace-flake8-and-black-with-Ruff
Dec 6, 2025
Merged

feat: Lint Python with Ruff#4105
aglinxinyuan merged 6 commits into
apache:mainfrom
LJX2017:replace-flake8-and-black-with-Ruff

Conversation

@LJX2017

@LJX2017 LJX2017 commented Dec 3, 2025

Copy link
Copy Markdown
Contributor

What changes were proposed in this PR?

  1. Replace flake8 and black with Ruff in CI.
  2. Format existing code using Ruff

Basic Ruff commands:
Under amber/src/main/python
cd amber/src/main/python
Run Ruff’s formatter in dry mode
ruff format --check .
Run Ruff’s formatter
ruff format .
Run Ruff’s linter
ruff check .

Any related issues, documentation, discussions?

Closes #4078

How was this PR tested?

I created a PR on my own fork to ensure CI is working.

Was this PR authored or co-authored using generative AI tooling?

No

@github-actions github-actions Bot added engine dependencies Pull requests that update a dependency file pyamber ci changes related to CI labels Dec 3, 2025
@chenlica chenlica requested a review from aglinxinyuan December 4, 2025 03:22

@aglinxinyuan aglinxinyuan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Explain how to use the tool in the PR description.

@github-actions github-actions Bot added the infra label Dec 5, 2025
@LJX2017 LJX2017 requested a review from aglinxinyuan December 5, 2025 16:07

@aglinxinyuan aglinxinyuan left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM!

Please let people know they need to pip install ruff

@aglinxinyuan aglinxinyuan enabled auto-merge (squash) December 6, 2025 02:10
@aglinxinyuan aglinxinyuan merged commit 8530645 into apache:main Dec 6, 2025
10 checks passed

@Yicong-Huang Yicong-Huang left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Late LGTM. Thanks!

Left some minor comments, it will be good to address them with follow up PRs.

proto
)/
'''
target-version = "py310"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think it is better to always target the highest python version we support, in this case, python 3.12.
@LJX2017 can you change it in a follow up PR?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

According to the official document from Ruff, target-version = "py310" means we support Python >=3.10, including python 3.12 and 3.13. Is this already the correct behavior or should we change it?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ok. I had the wrong impression that we should always declare highest version. In this case, let's keep py310. We will need to remember to update it when we drop 3.10 support.

Comment thread bin/fix-format.sh
tx_error "black not found. Install with: pip install black"
tx_info "Running ruff in amber/src/main/python..."
if ! command -v ruff >/dev/null 2>&1; then
tx_error "ruff not found. Install with: pip install ruff"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

here the instruction should come with the exact version of ruff

SarahAsad23 pushed a commit to madisonmlin/texera that referenced this pull request May 20, 2026
<!--
Thanks for sending a pull request (PR)! Here are some tips for you:
1. If this is your first time, please read our contributor guidelines:
[Contributing to
Texera](https://github.com/apache/texera/blob/main/CONTRIBUTING.md)
  2. Ensure you have added or run the appropriate tests for your PR
  3. If the PR is work in progress, mark it a draft on GitHub.
  4. Please write your PR title to summarize what this PR proposes, we 
    are following Conventional Commits style for PR titles as well.
  5. Be sure to keep the PR description updated to reflect all changes.
-->

### What changes were proposed in this PR?
<!--
Please clarify what changes you are proposing. The purpose of this
section
is to outline the changes. Here are some tips for you:
  1. If you propose a new API, clarify the use case for a new API.
  2. If you fix a bug, you can clarify why it is a bug.
  3. If it is a refactoring, clarify what has been changed.
  3. It would be helpful to include a before-and-after comparison using 
     screenshots or GIFs.
  4. Please consider writing useful notes for better and faster reviews.
-->
1. Replace flake8 and black with Ruff in CI.
2. Format existing code using Ruff

Basic Ruff commands:
Under amber/src/main/python
```cd amber/src/main/python```
Run Ruff’s formatter in dry mode
```ruff format --check .```
Run Ruff’s formatter
```ruff format .```
Run Ruff’s linter
```ruff check .```

### Any related issues, documentation, discussions?
<!--
Please use this section to link other resources if not mentioned
already.
1. If this PR fixes an issue, please include `Fixes apache#1234`, `Resolves
apache#1234`
or `Closes apache#1234`. If it is only related, simply mention the issue
number.
  4. If there is design documentation, please add the link.
  5. If there is a discussion in the mailing list, please add the link.
-->
Closes apache#4078

### How was this PR tested?
<!--
If tests were added, say they were added here. Or simply mention that if
the PR
is tested with existing test cases. Make sure to include/update test
cases that
check the changes thoroughly including negative and positive cases if
possible.
If it was tested in a way different from regular unit tests, please
clarify how
you tested step by step, ideally copy and paste-able, so that other
reviewers can
test and check, and descendants can verify in the future. If tests were
not added,
please describe why they were not added and/or why it was difficult to
add.
-->
I created a PR on my own fork to ensure CI is working.

### Was this PR authored or co-authored using generative AI tooling?
<!--
If generative AI tooling has been used in the process of authoring this
PR,
please include the phrase: 'Generated-by: ' followed by the name of the
tool
and its version. If no, write 'No'. 
Please refer to the [ASF Generative Tooling
Guidance](https://www.apache.org/legal/generative-tooling.html) for
details.
-->
No

---------

Co-authored-by: Xinyuan Lin <xinyual3@uci.edu>
yangzhang75 pushed a commit to yangzhang75/texera that referenced this pull request Jun 22, 2026
<!--
Thanks for sending a pull request (PR)! Here are some tips for you:
1. If this is your first time, please read our contributor guidelines:
[Contributing to
Texera](https://github.com/apache/texera/blob/main/CONTRIBUTING.md)
  2. Ensure you have added or run the appropriate tests for your PR
  3. If the PR is work in progress, mark it a draft on GitHub.
  4. Please write your PR title to summarize what this PR proposes, we 
    are following Conventional Commits style for PR titles as well.
  5. Be sure to keep the PR description updated to reflect all changes.
-->

### What changes were proposed in this PR?
<!--
Please clarify what changes you are proposing. The purpose of this
section
is to outline the changes. Here are some tips for you:
  1. If you propose a new API, clarify the use case for a new API.
  2. If you fix a bug, you can clarify why it is a bug.
  3. If it is a refactoring, clarify what has been changed.
  3. It would be helpful to include a before-and-after comparison using 
     screenshots or GIFs.
  4. Please consider writing useful notes for better and faster reviews.
-->
1. Replace flake8 and black with Ruff in CI.
2. Format existing code using Ruff

Basic Ruff commands:
Under amber/src/main/python
```cd amber/src/main/python```
Run Ruff’s formatter in dry mode
```ruff format --check .```
Run Ruff’s formatter
```ruff format .```
Run Ruff’s linter
```ruff check .```

### Any related issues, documentation, discussions?
<!--
Please use this section to link other resources if not mentioned
already.
1. If this PR fixes an issue, please include `Fixes apache#1234`, `Resolves
apache#1234`
or `Closes apache#1234`. If it is only related, simply mention the issue
number.
  4. If there is design documentation, please add the link.
  5. If there is a discussion in the mailing list, please add the link.
-->
Closes apache#4078

### How was this PR tested?
<!--
If tests were added, say they were added here. Or simply mention that if
the PR
is tested with existing test cases. Make sure to include/update test
cases that
check the changes thoroughly including negative and positive cases if
possible.
If it was tested in a way different from regular unit tests, please
clarify how
you tested step by step, ideally copy and paste-able, so that other
reviewers can
test and check, and descendants can verify in the future. If tests were
not added,
please describe why they were not added and/or why it was difficult to
add.
-->
I created a PR on my own fork to ensure CI is working.

### Was this PR authored or co-authored using generative AI tooling?
<!--
If generative AI tooling has been used in the process of authoring this
PR,
please include the phrase: 'Generated-by: ' followed by the name of the
tool
and its version. If no, write 'No'. 
Please refer to the [ASF Generative Tooling
Guidance](https://www.apache.org/legal/generative-tooling.html) for
details.
-->
No

---------

Co-authored-by: Xinyuan Lin <xinyual3@uci.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci changes related to CI dependencies Pull requests that update a dependency file engine infra pyamber

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Use Ruff to replace Flake8 and black

3 participants