-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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
src,tools: rewrite check-imports and fix linter errors #6105
Conversation
concept seems good, can't comment on the python though |
@@ -0,0 +1,43 @@ | |||
#!/usr/bin/env python |
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.
Can you use two-space indent in this file?
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.
@bnoordhuis Done!
Looks like you missed one though, unless the CI is outdated.
|
6803533
to
06d15a3
Compare
@Fishrock123 Hmmm, weird! I ran the linter locally before pushing. Anyway, I fixed it and the new CI Run (https://ci.nodejs.org/job/node-test-pull-request/2211/) completed linting successfully. |
return valid | ||
|
||
sys.exit(0 if all([is_valid(file) for file in glob.iglob('src/*.cc')]) else 1) | ||
|
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.
Can you remove the trailing blank line? Aside, you don't strictly need the square brackets in the line above but it doesn't hurt either.
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.
@bnoordhuis Actually, that is necessary. all
and any
short-circuit. They return True
and False
the moment they meet an item doesn't meet the criteria. Passing a generator expression will leave the rest of them unexecuted. For example,
>>> gen = (num for num in xrange(10))
>>> all(item * item < 20 for item in gen)
False
>>> list(gen)
[6, 7, 8, 9]
But when we use List Comprehension, it executes all of them and only their results are used with all
and any
. For example,
>>> gen = (num for num in xrange(10))
>>> all([item * item < 20 for item in gen])
False
>>> list(gen)
[]
Wrote more about it in this StackOverflow answer
LGTM with a style nit. I'm somewhat ambivalent about the rewrite to python, the new script is two or three times as long as the old one (if you exclude the copyright boilerplate.) |
@bnoordhuis The other reason I rewrote it in Python was because, if this is included in the linter, all the development environments are supposed to have sed, grep, sort and etc. That may not be available in all the environments I guess. I am okay with retaining the shell script itself, if possible. |
import sys | ||
|
||
|
||
def do_exist(file, lines, imported): |
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.
What would you think of using filename
instead of file
? I’d find that more a bit readable + it doesn’t shadow the file
built-in.
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.
@addaleax I don't know how I missed that. Thanks for catching it :-) Fixed it now.
As it is, check-install.sh does not show more helpful error messages, and supporting various shells could be a problem. This patch rewrites the same in Python.
This patch simply enables check-imports.py in the linting process
06d15a3
to
e6e37d3
Compare
As this patch adds a new linter task to the build process, ccing @nodejs/build |
If there are no objections, I'll land this in two days. cc @nodejs/collaborators |
LGTM, finally! |
LGTM |
As it is, check-install.sh does not show more helpful error messages, and supporting various shells could be a problem. This patch rewrites the same in Python. This patch also enables check-imports.py in the linting process PR-URL: #6105 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This patch fixes all the linter errors. PR-URL: #6105 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
As it is, check-install.sh does not show more helpful error messages, and supporting various shells could be a problem. This patch rewrites the same in Python. This patch also enables check-imports.py in the linting process PR-URL: nodejs#6105 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This patch fixes all the linter errors. PR-URL: nodejs#6105 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
As it is, check-install.sh does not show more helpful error messages, and supporting various shells could be a problem. This patch rewrites the same in Python. This patch also enables check-imports.py in the linting process PR-URL: #6105 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This patch fixes all the linter errors. PR-URL: #6105 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This patch fixes all the linter errors. PR-URL: #6105 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
@thefourtheye should this be backported? |
@thealphanerd There is no harm in backporting this, but I am not sure if it is absolutely necessary :( |
@thefourtheye this does not land cleanly. I'm adding the dont-land label. Feel free to send a backport PR if you would like, but I don't see it as pressing |
Checklist
Affected core subsystem(s)
src, tools
Description of change
Commit 1
As it is, check-install.sh does not show more helpful error messages,
and supporting various shells could be a problem. This patch rewrites
the same in Python.
Commit 2
This patch simply enables check-imports.py in the linting process
Commit 3
Fix all the linter errors
cc @bnoordhuis
CI Run: https://ci.nodejs.org/job/node-test-pull-request/2210/