Skip to content

Conversation

fahdalkhulaifi
Copy link
Contributor

This pull request adds automated Python code quality checks to the project by:

Adding a .flake8 configuration file to enforce coding style rules (e.g., max line length, excluded folders).

Adding a GitHub Actions workflow (.github/workflows/lint.yml) that runs flake8 on every push and pull request to the develop branch.

The workflow helps catch style and syntax issues early, improving code quality and consistency.

This addresses the issue #68 "Add python linter" by integrating linting into the CI process without auto-formatting, so developers can fix lint errors themselves.

@fahdalkhulaifi
Copy link
Contributor Author

Hi! This PR adds flake8 linting configuration and a GitHub Actions workflow as discussed in issue #68. Please review when you have a chance. Thanks!

Copy link
Contributor

@jakebeal jakebeal left a comment

Choose a reason for hiding this comment

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

We should not merge this until the linter is passing: this means either fixing issues or marking them as known issues with a TODO linked to a followup issue.

@@ -0,0 +1,3 @@
[flake8]
max-line-length = 88
Copy link
Contributor

Choose a reason for hiding this comment

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

If you look at https://github.com/SynBioDex/SBOL-utilities/blob/develop/setup.cfg , you will see we have been using 120 as the line length on this project.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hi @jakebeal,

As you mentioned, I’m planning to update the .flake8 config to use max-line-length = 119 to align with the project’s existing style.

Also, I wanted to ask if you recommend installing the code formatter Black as part of the workflow. I found almost 400 linting errors, so using Black might help automatically fix many of these and keep the code style consistent across the project.

Copy link
Contributor

Choose a reason for hiding this comment

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

Thank you - I've been noticing the updated, but holding off on re-reviewing until you comment that it is ready.

With regards to Black: I've used it before, and we ended up deciding that it was too restrictive. It's a good suggestion though, and I appreciate you making the suggestion.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I want to share a quick update on my current approach to fixing the linting issues. I'm using the flake8 tool to identify style and syntax problems in the code, and I'm applying the fixes based on its feedback, with the help of ChatGPT to ensure the changes follow the project's style.

I'm not using any automatic code formatters like Black—instead, I'm manually addressing the issues flagged by flake8 to stay aligned with the project's conventions.

Please let me know if you have any suggestions or if you'd recommend continuing with this approach.

Thank you again for your guidance!

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.

2 participants