Closed zepumph closed 2 years ago
I saw symptoms like you reported today. My best hypothesis is that the cache file is getting corrupted and hence failing to parse and getting rewritten on startup. I added console.logs to indicate when the cache is rebuilt. Can you keep your eyes peeled on startup and see if it says it cleared the cache or something like that?
I also added --verbose
which outputs the reason it transpiled a file. It's not very intrusive, can you run with that a while and see what we learn?
I have been running transpile --watch
since yesterday morning. Just now. I just quit the program with Ctl+C and then ran transpile --watch --verbose
, and here was the output. It just seems like so much more than I would expect from such an operation.
Perhaps listening to a keyboard interrupt and saving the cache file before exiting the program?
If this is not a helpful scrap, assign it back to me and I'll keep investigating and giving more findings.
I'm not sure what to do. The cache file is written every time anything is transpiled. I've been running the watch process for about 4 days. I quit it and ran it again and got this output:
~/apache-document-root/main/chipper$ node js/scripts/transpile --watch --verbose
Finished initial transpilation in 1663ms
Watching...
So perhaps we should collaborate if I cannot easily reproduce the problem.
I just did the same test again, and it didn't redo any other files:
26 AM, 32 ms: ..\vibe\sounds\empty_mp3.js (target modified)
11:44:26 AM, 31 ms: ..\vibe\sounds\relative-path-sound_mp3.js (target modified)
11:44:27 AM, 22 ms: ..\wave-on-a-string\js\wave-on-a-string-phet-io-overrides.js (target modified)
11:44:27 AM, 26 ms: ..\wilder\js\wilder\model\WilderEnumerationPatterns.ts (changed)
11:44:27 AM, 21 ms: ..\wilder\js\wilder-phet-io-overrides.js (target modified)
Finished initial transpilation in 67296ms
Watching...
Michael ~/PHET/git/chipper (master)
$ node js/scripts/transpile --watch --verbose
Finished initial transpilation in 5842ms
Watching...
For my next test, I quit the transpiler, and then went to webstorm, and didn't change any files, but navigated to a few in the project view. When I started the transpiler again, it was again caught up with no new files to transpile. I'll assign myself to continue to experiment. @samreid can you think of some metadata to console log when verbose mode is on on keyboard interrupt?
I'm not sure how any data on interrupt would be useful, since it is supposed to be rewriting the cache file any time it transpiles a single file.
@jessegreenberg mentioned that he is experiencing this as well.
With the addition of improvements like https://github.com/phetsims/chipper/issues/1173 and https://github.com/phetsims/chipper/issues/1174, @samreid and I thought it would be good to get to the bottom of this!
I noticed that on windows the initial scan paths were all backslash, and the watch paths were /......\ (one forward slash). So files that updated did not cached the same way as files in the initial scan. I also noticed some paths were only identified properly on Mac (since it was using hardcoded /
search), so I generalized that too. It seems ok on my windows machine. @zepumph can you please pull and restart your transpiler and watch process and see how it goes?
So far not a single rechurn, but I have only been using for 20 minutes. I'll come back and finish the review off next week after a bit more time.
I have not encountered any issues since @samreid committed 17 days ago. I would consider this a success! Thanks for not giving up on us lowly windows folks Sam. I'm ready to close when you are.
Thanks, closing.
I have been running
cd chipper; node js/scripts/transpile.js
all day (likely this run was at least 3 hours old), and I just closed out of it and immediately re-ran it. It went through all of these files again. Why? I know for a fact that (at the very least) those sherpa files weren't changed. I did run pull-all right before restarting it.Output of initial transpile:
Output of the pull all command I had run just before: