nicosantangelo / sublime-gulp

Run Gulp tasks and use snippets from Sublime Text
https://sublime-gulp.nicosantangelo.com/
MIT License
155 stars 18 forks source link

Recent problem with panel not updating #86

Closed beeb closed 7 years ago

beeb commented 7 years ago

Hey! First off, let me say I love this package, it saves me a lot of time and is very well thought out.

Recently, it started a few days ago actually, I am unable to follow the status or progress of the tasks via the "panel" that I open via the "Gulp: Show panel" command. When I start a task, any task, the panel displays Running 'default'... or any task name I want to run, but nothing more.

The tasks are being executed properly, but I don't have a feedback. Before, the result of the tasks would be displayed inside the panel. Now it just stops updating after the initial Running... info.

Any idea why that could be? It it possible I messed something up with a keyboard shortcut at some point... no idea how though.

Thanks!

nicosantangelo commented 7 years ago

Thanks a lot for the kind words!

I can't really say what might be causing that but, can you please check the Sublime console for errors (when running a task) ? On the Mac, the command is ^` image

You have the same problem running gulp on all of your projects or in a particular one?

In the meantime I'll check using my local gulpfiles, to see if I can reproduce it

Thanks!

beeb commented 7 years ago

Heya, thanks for the quick reply. I'm indeed having an error in the console, see below:

Traceback (most recent call last):
  File "./python3.3/json/decoder.py", line 367, in raw_decode
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/valentin/Library/Application Support/Sublime Text 3/Packages/Gulp/gulp.py", line 374, in load_process_cache
    for process in ProcessCache.get_from_storage():
  File "/Users/valentin/Library/Application Support/Sublime Text 3/Packages/Gulp/caches.py", line 20, in get_from_storage
    return cls.storage().read() or []
  File "/Users/valentin/Library/Application Support/Sublime Text 3/Packages/Gulp/caches.py", line 113, in read
    data = json.load(cache_file)
  File "./python3.3/json/__init__.py", line 271, in load
  File "./python3.3/json/__init__.py", line 316, in loads
  File "./python3.3/json/decoder.py", line 351, in decode
  File "./python3.3/json/decoder.py", line 369, in raw_decode
ValueError: No JSON object could be decoded
Package Control: No updated packages
WINDOW COMMAND ENABLED True
WINDOW COMMAND ENABLED True
WINDOW COMMAND ENABLED True
WINDOW COMMAND ENABLED True
WINDOW COMMAND ENABLED True
WINDOW COMMAND ENABLED False
Could not import subprocess32 module, falling back to subprocess module
Exception in thread Thread-6:
Traceback (most recent call last):
  File "./python3.3/json/decoder.py", line 367, in raw_decode
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./python3.3/threading.py", line 901, in _bootstrap_inner
  File "./python3.3/threading.py", line 858, in run
  File "/Users/valentin/Library/Application Support/Sublime Text 3/Packages/Gulp/gulp.py", line 216, in run_process
    process.run(task)
  File "/Users/valentin/Library/Application Support/Sublime Text 3/Packages/Gulp/cross_platform_process.py", line 41, in run
    ProcessCache.add(self)
  File "/Users/valentin/Library/Application Support/Sublime Text 3/Packages/Gulp/caches.py", line 40, in add
    cls.storage().update(lambda procs: procs + [process] if process not in procs else procs)
  File "/Users/valentin/Library/Application Support/Sublime Text 3/Packages/Gulp/caches.py", line 129, in update
    current_data = json.load(cache_file)
  File "./python3.3/json/__init__.py", line 271, in load
  File "./python3.3/json/__init__.py", line 316, in loads
  File "./python3.3/json/decoder.py", line 351, in decode
  File "./python3.3/json/decoder.py", line 369, in raw_decode
ValueError: No JSON object could be decoded

I should add that my gulp tasks run fine through the Terminal.

nicosantangelo commented 7 years ago

Hum that's weird it looks like your .sublime-gulp.cache file is broken. Could you do me two favors?

beeb commented 7 years ago

Of course. I already tried deleting the cache two days ago and it didn't help, but here's the content anyway:

{"/Users/valentin/.../_npm/gulpfile.js":{"sha1":"somehash...","tasks":{"clean":{"name":"clean","dependencies":""},"babel":{"name":"babel","dependencies":""},"deploy":{"name":"deploy","dependencies":"babel"},"watch":{"name":"watch","dependencies":""},"default":{"name":"default","dependencies":"babel deploy"}}}}

Prettified:

{
  "/Users/valentin/.../_npm/gulpfile.js":{
    "sha1":"somehash...",
    "tasks":{
      "clean":{
        "name":"clean",
        "dependencies":""
      },
      "babel":{
        "name":"babel",
        "dependencies":""
      },
      "deploy":{
        "name":"deploy",
        "dependencies":"babel"
      },
      "watch":{
        "name":"watch",
        "dependencies":""
      },
      "default":{
        "name":"default",
        "dependencies":"babel deploy"
      }
    }
  }
}

Here's the error after deleting the cache and launching a task again:

Could not import subprocess32 module, falling back to subprocess module
Exception in thread Thread-5:
Traceback (most recent call last):
  File "./python3.3/json/decoder.py", line 367, in raw_decode
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./python3.3/threading.py", line 901, in _bootstrap_inner
  File "./python3.3/threading.py", line 858, in run
  File "/Users/valentin/Library/Application Support/Sublime Text 3/Packages/Gulp/gulp.py", line 216, in run_process
    process.run(task)
  File "/Users/valentin/Library/Application Support/Sublime Text 3/Packages/Gulp/cross_platform_process.py", line 41, in run
    ProcessCache.add(self)
  File "/Users/valentin/Library/Application Support/Sublime Text 3/Packages/Gulp/caches.py", line 40, in add
    cls.storage().update(lambda procs: procs + [process] if process not in procs else procs)
  File "/Users/valentin/Library/Application Support/Sublime Text 3/Packages/Gulp/caches.py", line 129, in update
    current_data = json.load(cache_file)
  File "./python3.3/json/__init__.py", line 271, in load
  File "./python3.3/json/__init__.py", line 316, in loads
  File "./python3.3/json/decoder.py", line 351, in decode
  File "./python3.3/json/decoder.py", line 369, in raw_decode
ValueError: No JSON object could be decoded
nicosantangelo commented 7 years ago

Ok! last but not least (sorry I make you work like this :P )

Could you go to the package folder (which should be on .../Library/Application Support/Sublime Text 3/Packages/Gulp) and check if a .sublime-gulp.cache exists there?

It should contain json data describing your currently running tasks, but for what I can gather, it's either empty or invalid. If I'm right, you'll just have to write [] in it for the package to work

➜  Packages/Gulp git:(master) ✗ pwd                                                       
.../Library/Application Support/Sublime Text 3/Packages/Gulp
➜  Packages/Gulp git:(master) ✗ cat .sublime-gulp.cache
[]

If this fixes the problem, I'll make sure it does not happen again by adding a default value to the file in the odd event that it breaks

beeb commented 7 years ago

Yes, that totally worked!

The file was indeed empty and by adding the empty square brackets everything works again. I wonder what happened that this file was emptied.

Thanks a bunch

nicosantangelo commented 7 years ago

How would I go about doing this?

Don't worry about it! I'll handle it in the code and push a new version later today :). I'll reference this issue on the commit and I'll close it once it's deployed.

Thanks a lot for the report! I really have no idea what might have caused the issue

beeb commented 7 years ago

I realized I misread your comment (thought you were suggesting I should add a default value, because I didn't read the "I'll" haha) and edited my response afterwards, all good :)