-
Notifications
You must be signed in to change notification settings - Fork 30k
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
tools: remove lint-js.js #30955
tools: remove lint-js.js #30955
Conversation
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.
We will need to check the removed lines from vcbuild.bat
are not used anywhere in the CI.
Yeah, running full CI to check, although obviously that won't necessarily catch things in other jobs. Kinda doubt it would be in other jobs and not in the main one, though. |
Before removing, it would be a good idea to see the performance impact on all of the CI machines (especially the ARM-based ones). |
We only run lint on one machine these days. |
Looks like the linter job failed to parse the tap file with tap2junit: 02:42:08 + tap2junit -i test-eslint.tap -o out/test.xml
02:42:09 Traceback (most recent call last):
02:42:09 File "/usr/local/bin/tap2junit", line 11, in <module>
02:42:09 sys.exit(main())
02:42:09 File "/usr/local/lib/python2.7/dist-packages/tap2junit/__main__.py", line 44, in main
02:42:09 result = parse(os.path.splitext(args.input.name)[0], data)
02:42:09 File "/usr/local/lib/python2.7/dist-packages/tap2junit/__main__.py", line 15, in parse
02:42:09 t = TestCase(test.description, None, test.yaml['duration_ms'])
02:42:09 TypeError: 'NoneType' object has no attribute '__getitem__'
02:42:09 POST BUILD TASK : FAILURE |
That's alarming. It parses just fine when I do it locally.... |
Argh, the version of |
|
Oh, interesting. So I managed to replicate the bug that I mention above where I surmise that its interleaved output or something, but actually it's a bug in Input file: TAP version 13
1..1
ok 1 - /Users/trott/io.js/.eslintrc.js
TAP version 13
1..2
ok 1 - /Users/trott/io.js/benchmark/net/tcp-raw-pipe.js
ok 2 - /Users/trott/io.js/benchmark/net/tcp-raw-s2c.js With $ tap2junit -i test.tap -o foo
Traceback (most recent call last):
File "/usr/local/bin/tap2junit", line 11, in <module>
sys.exit(main())
File "/usr/local/lib/python2.7/site-packages/tap2junit/__main__.py", line 44, in main
result = parse(os.path.splitext(args.input.name)[0], data)
File "/usr/local/lib/python2.7/site-packages/tap2junit/__main__.py", line 11, in parse
tap_parser.parse(data)
File "/usr/local/lib/python2.7/site-packages/tap2junit/tap13.py", line 124, in parse
self._parse(StringIO.StringIO(source))
File "/usr/local/lib/python2.7/site-packages/tap2junit/tap13.py", line 102, in _parse
raise ValueError("Descending test id on line: %r" % line)
ValueError: Descending test id on line: 'ok 1 - /Users/trott/io.js/benchmark/net/tcp-raw-pipe.js'
$ 0.1.5 processes it normally. Any chance we want to update to 0.1.5, at least on the linter boxes? It contains the changes for Python 3 compatibility, if that's any encouragement. /ping @nodejs/python |
(And, naturally, it seems exceedingly likely that the other problem we're seeing now with the tap file from this PR is also a bug in |
@nodejs/build ^^^^^^ |
StringIO.StringIO(source) in Python2 would be io.StringIO(source) in Python 3 so I would strongly encourage the use of the latest version of tap2junit. https://github.com/nodejs/tap2junit/search?q=stringio&unscoped_q=stringio |
So we should just upgrade tap2junit instead of making the changes in this PR? |
Perhaps. There's still the issue of cost/benefit ratio where cost is code complexity and extra time spent troubleshooting issues like this. But yeah, this PR suddenly becomes less compelling for sure. |
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.
Whether or not this fixes the issue, given the minimal improvements in run time and extra incurred complexity, I think removing this is actually still a good thing.
test-softlayer-ubuntu1604-x64-1 too, it's just offline for now cause it's wonky and needs some of my time https://ci.nodejs.org/label/jenkins-workspace/ are the machines. |
Ref: eslint/eslint#3565 I suggest to remove this as soon as the feature landed in eslint itself but not before? It should hopefully not take much more time to be implemented. |
Going the other way, the |
tap2junit updated for Python 2 on test-packetnet-ubuntu1604-x64-2. It was already on the correct version on test-packetnet-ubuntu1604-x64-1. Removing |
test-softlayer-ubuntu1604-x64-1 too. |
8ae28ff
to
2935f72
Compare
Ping @Trott |
lint-js.js was implemented before ESLint had a caching feature. It is now only used in CI. Let's remove it on the following grounds: * It results in occasional (and puzzling) yellow CI runs for node-test-linter because the tap file is corrupted somehow. Interleaved maybe? I don't know, but a simple solution is removing it and running ESLint directly. * On my local laptop, it reduces the linting from about 75 seconds to about 55 seconds. This kind of savings is not worth the added complexity and the instability noted above.
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.
LGTM
lint-js.js was implemented before ESLint had a caching feature. It is now only used in CI. Let's remove it on the following grounds: * It results in occasional (and puzzling) yellow CI runs for node-test-linter because the tap file is corrupted somehow. Interleaved maybe? I don't know, but a simple solution is removing it and running ESLint directly. * On my local laptop, it reduces the linting from about 75 seconds to about 55 seconds. This kind of savings is not worth the added complexity and the instability noted above. PR-URL: #30955 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Landed in 92f8781 |
lint-js.js was implemented before ESLint had a caching feature. It is now only used in CI. Let's remove it on the following grounds: * It results in occasional (and puzzling) yellow CI runs for node-test-linter because the tap file is corrupted somehow. Interleaved maybe? I don't know, but a simple solution is removing it and running ESLint directly. * On my local laptop, it reduces the linting from about 75 seconds to about 55 seconds. This kind of savings is not worth the added complexity and the instability noted above. PR-URL: #30955 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
lint-js.js was implemented before ESLint had a caching feature. It is now only used in CI. Let's remove it on the following grounds: * It results in occasional (and puzzling) yellow CI runs for node-test-linter because the tap file is corrupted somehow. Interleaved maybe? I don't know, but a simple solution is removing it and running ESLint directly. * On my local laptop, it reduces the linting from about 75 seconds to about 55 seconds. This kind of savings is not worth the added complexity and the instability noted above. PR-URL: #30955 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
lint-js.js was implemented before ESLint had a caching feature. It is now only used in CI. Let's remove it on the following grounds: * It results in occasional (and puzzling) yellow CI runs for node-test-linter because the tap file is corrupted somehow. Interleaved maybe? I don't know, but a simple solution is removing it and running ESLint directly. * On my local laptop, it reduces the linting from about 75 seconds to about 55 seconds. This kind of savings is not worth the added complexity and the instability noted above. PR-URL: #30955 Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Jiawen Geng <technicalcute@gmail.com> Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com>
lint-js.js was implemented before ESLint had a caching feature. It is
now only used in CI. Let's remove it on the following grounds:
It results in occasional (and puzzling) yellow CI runs for
node-test-linter because the tap file is corrupted somehow.
Interleaved maybe? I don't know, but a simple solution is removing it
and running ESLint directly.
On my local laptop, it reduces the linting from about 75 seconds to
about 55 seconds. This kind of savings is not worth the added
complexity and the instability noted above.
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes