-
Notifications
You must be signed in to change notification settings - Fork 141
Travis CI: Lint for Python syntax errors and undefined names #290
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
Conversation
Welcome to GitGitGadgetHi @cclauss, and welcome to GitGitGadget, the GitHub App to send patch series to the Git mailing list from GitHub Pull Requests. Please make sure that this Pull Request has a good description, as it will be used as cover letter. Also, it is a good idea to review the commit messages one last time, as the Git project expects them in a quite specific form:
It is in general a good idea to await the automated test ("Checks") in this Pull Request before contributing the patches, e.g. to avoid trivial issues such as unportable code. Contributing the patchesBefore you can contribute the patches, your GitHub username needs to be added to the list of permitted users. Any already-permitted user can do that, by adding a PR comment of the form Once on the list of permitted usernames, you can contribute the patches to the Git mailing list by adding a PR comment After you submit, GitGitGadget will respond with another comment that contains the link to the cover letter mail in the Git mailing list archive. Please make sure to monitor the discussion in that thread and to address comments and suggestions. If you do not want to subscribe to the Git mailing list just to be able to respond to a mail, you can download the mbox ("raw") file corresponding to the mail you want to reply to from the Git mailing list. If you use GMail, you can upload that raw mbox file via: curl -g --user "<EMailAddress>:<Password>" --url "imaps://imap.gmail.com/INBOX" -T /path/to/raw.txt |
Several things were changed between Python 2 and Python 3. There are a few Python 3 incompatibilities to work on. Here we are making changes to make the code run on both Py2 and Py3. We are doing this because the end of life of Python 2 is in 167 days. We are using print() function because legacy print statements are syntax errors on Py3. reduce() was moved in Python 3 and raw_input() was removed so we make changes to avoid NameErrors being raised at runtime. We are also putting flake8 lint tests in place on Travis CI to avoid any backsliding on future pull requests. Signed-off-by: cclauss <[email protected]>
/allow cclauss |
User cclauss is now allowed to use GitGitGadget. |
/submit |
Error: Could not determine full name of cclauss |
/submit |
Submitted as [email protected] |
@cclauss what GitGitGadget wants is that your GitHub profile mentions your clear name... It needs that so that it can construct a sender name for the cover letter. |
Yes. I edited that parameter on GitHub settings and resubmitted. That seems to have done the trick. Thanks for your help. 🤞 |
@@ -39,6 +39,10 @@ matrix: | |||
compiler: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On the Git mailing list, Junio C Hamano wrote (reply to this):
"cclauss via GitGitGadget" <[email protected]> writes:
> From: cclauss <[email protected]>
I'll tweak this line (and your sign-off) to read as "Christian
Clauss <[email protected]>" as you had in your cover letter.
> Several things were changed between Python 2 and Python 3.
> There are a few Python 3 incompatibilities to work on.
> Here we are making changes to make the code run on both Py2 and Py3.
> We are doing this because the end of life of Python 2 is in 167 days.
All sounds sensible, and the above is quite a good problem
description.
> We are using print() function because legacy print statements are syntax
> errors on Py3.
> reduce() was moved in Python 3 and raw_input() was removed so we make
> changes to avoid NameErrors being raised at runtime.
> We are also putting flake8 lint tests in place on Travis CI to avoid
> any backsliding on future pull requests.
Nothing is wrong here, but the convention in our codebase is to
describe the changes as if we are giving orders to the codebase "to
be like so". And as you have enumeration, I would write something
like this if I were describing this change:
- Use the `print()` function, because Py3 no longer has the `print`
statement.
- Import `reduce()` from functools, because Py3 requires this, and
importing also works with Py2 (even though it wasn't necessary).
- Use `input()` instead of `raw_input()`, as the former can be used
with both but the latter was removed in Py3.
Also add a CI job to Travis CI to run flake8 lint to avoid an
backsliding on future pull requests.
https://python-future.org/compatible_idioms.html#raw-input seems to
suggest, just like you import reduce from functools, you need to
import input from builtins. Is it not the case?
> + script: flake8 . --count --select=E9,F63,F72,F82 --show-source --statistics
How was the set of "select"ed violations to catch chosen? How are
we going to maintain this list going forward?
The rest of the patch looked sensible.
Thanks.
@gitster Did this get to the other side? $ git send-email --in-reply-to=[email protected] --to=[email protected] --cc=[email protected] --cc=[email protected] --cc=[email protected] ./note_to_git.txt
|
$ cat ./note_to_git.txt
|
@@ -39,6 +39,10 @@ matrix: | |||
compiler: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On the Git mailing list, SZEDER Gábor wrote (reply to this):
On Fri, Jul 19, 2019 at 07:18:55AM -0700, cclauss via GitGitGadget wrote:
> Several things were changed between Python 2 and Python 3.
> There are a few Python 3 incompatibilities to work on.
> Here we are making changes to make the code run on both Py2 and Py3.
> We are doing this because the end of life of Python 2 is in 167 days.
> We are using print() function because legacy print statements are syntax
> errors on Py3.
> reduce() was moved in Python 3 and raw_input() was removed so we make
> changes to avoid NameErrors being raised at runtime.
> We are also putting flake8 lint tests in place on Travis CI to avoid
> any backsliding on future pull requests.
It seems to me that this patch does too many things at once, and
perhaps it would be better to split it into a couple of smaller
patches that do only one thing, e.g.:
- use print function instead of statement in 'hg-to-git' (which
constitutes the bulk of this patch),
- do the same in 'contrib/fast-import/import-zips.py'
- import 'reduce' and fix 'raw_input' in 'git-p4'
- and once all that is done and the linter runs clean, add the
linter job to Travis CI.
This would ease the job of the reader, now and in the future, and it
would better stand out that ...
> diff --git a/git-p4.py b/git-p4.py
> index 3991e7d1a7..9faee25db2 100755
> --- a/git-p4.py
> +++ b/git-p4.py
> @@ -3968,6 +3970,7 @@ def renameBranch(self, branch_name):
> break
>
> if not found:
> + sync = P4Sync()
... this change is not mentioned in the commit message.
Is this something the linter complains about?
It doesn't look like a Python 2 vs. 3 compatibility fix to me, so it
might deserve a dedicated patch.
Cc-ing Luke for this bit.
> sys.exit("gave up trying to rename existing branch {0}".format(sync.branch))
>
> def findLastP4Revision(self, starting_point):
> --
> gitgitgadget
I don't think it did, given the thread at https://public-inbox.org/git/[email protected]/#r. My guess is that the |
The F63 instances will raise SyntaxWarnings on Python >= 3.8 so it is best to fix them now. https://docs.python.org/3.8/whatsnew/3.8.html#porting-to-python-3-8 |
This branch is now known as |
This patch series was integrated into pu via git@bc9ab23. |
This patch series was integrated into pu via git@fff2f44. |
This patch series was integrated into pu via git@1bfaea4. |
This patch series was integrated into pu via git@6c4f114. |
This patch series was integrated into next via git@28f7e9b. |
This patch series was integrated into pu via git@6e5f53d. |
This patch series was integrated into pu via git@7e8d0b2. |
This patch series was integrated into pu via git@1c48c47. |
This patch series was integrated into pu via git@4ee8c8f. |
This patch series was integrated into pu via git@8f53fe1. |
This patch series was integrated into next via git@8f53fe1. |
This patch series was integrated into master via git@8f53fe1. |
Closed via 8f53fe1. |
Whoa. I think GitGitGadget mistook a related patch for superseding this here PR. @cclauss would you mind rebasing and re-submitting? |
Closed via 8f53fe1. |
I guess I cannot re-open... My advice to rebase and re-submit still stands, although this should be submitted as a fresh, new GitGitGadget PR, I guess... |
Several things were changed between Python 2 and Python 3.
Here we are making changes to make the code run on both Py2 and Py3.
We are doing this because the end of life of Python 2 is in 167 days.
We are using print() function because legacy print statements are syntax
errors on Py3.
reduce() was moved in Python 3 and raw_input() was removed so we
make changes to avoid NameErrors at runtime.
Signed-off-by: Christian Clauss [email protected]