Vanilla broken in Glyphs 3061 (and previous)?

I saw that my Skedge plugin crashes Glyphs 3 right on start and spent over an hour trying to debug* until I nailed it down to the from vanilla import... statement.

So I tried to check for vanilla just in the Macro panel print(vanilla) or from vanilla import Window (which recently still worked, as I wrote this in some thread here). The latter shoots Glyphs off directly into the Nirvana :bomb::boom: even if you use a try:

try:
	from vanilla import Window
except:
	pass

According to the Plugin Manager it is installed. I also tried to uninstall and reinstall.


*) There’s sth odd happening now when a plugin causes a crash. After the restart, Glyphs asks to remove the plugin. If I cancel, it appears to just not load the plugin, if I click on “remove” it removes it, but that means I have to create my Alias form my WIP plugin again and drop it into the plugins folder. Even with shortcuts this is very tedious and I spend probably 80% of that hour just doing this

What happened?

1 Like

from vanilla import Window runs just fine in my 3061 Glyphs. I installed vanilla from the Plugin Manager. I also installed Python from the Plugin Manager and selected in the preferences (3.8.2). macOS 11.2 (20D64)

I’m currently developing a plugin and it crashes all the time (I keep forgetting to add an _ at the end of method names :wink: ). I never saw that dialog.

I got Python 3.9.1 selected/active

Can only use that currently. The one that comes bundled with Glyphs doesn’t work with the M1 AFAIK

Are the underscores now needed for every method? I still have plugins that work perfectly fine without.

Ah, so sorry you have a beautiful new Mac :wink: But seriously, there have been multiple reports on the forum where 3.9.x does not work and 3.8.x does (Speed Punk is a prominent example). I don’t have any M1 hardware, so I can’t test that.

I don’t use vanilla for my plugin (which removes many pesky underscores) and instead use vanilla plain Cocoa APIs.

Me usually too, but that doesn’t help when all my workflows are based on working plugins and suddenly don’t work anymore. The python version might be a legit pointer, as the plugins all work fine on my Mojave 2014 Mac.

Here are some reports of 3.8.2 fixing Python related issues:

https://forum.glyphsapp.com/t/glyphs-3-crash-in-big-sur/17031/16

https://forum.glyphsapp.com/t/glyphs3-crashing-and-wont-open-after-installing-plugin/17247/21

https://forum.glyphsapp.com/t/glyph-2-and-glyph-3-crash-after-testing-glyph-3/16532/5

Oah, damnit, now I accidentally clicked on the Glyphs Python and now Glyphs doesn’t start AT ALL anymore. Not wich opt+shift, not if I remove the plugins folder. :dizzy_face: @GeorgSeifert

Use a property list editor (e.g. Xcode) and open

/Users/YOURUSERNAME/Library/Preferences/com.GeorgSeifert.Glyphs3.plist

There, set the the value for GSPythonFrameworkPath to some other Python framework. For example:

/usr/local/Cellar/python@3.8/3.8.6_2/Frameworks/Python.framework/Versions/3.8

Oah, thank you. I could get Glyphs back to launching by that.

For the record (my future self):
Reset stored Python Framework Path via Terminal:
defaults delete com.GeorgSeifert.Glyphs3 GSPythonFrameworkPath
(Never delete or change in the plist file manually, this can cause trouble, big time!)
Or check for it via Terminal:
defaults read com.GeorgSeifert.Glyphs3 GSPythonFrameworkPath

Georg told me I need to stick with the Python.org version in the settings. So I’ll do that.

1 Like

Ha, and if I select my Hownbrew Python 3.9.0 (and relaunch) I get the dialog you described previously for every installed plugin, including mine:

This feels like a general Python 3.9.0—Glyphs 3 issue, but I can not say which party is at fault.

Exactly that one, welcome to the club :smiley:

If you say “OK”, it will just not have the plugin launched, so the only way to get it back is to click “Löschen” and put it back to the Plugins folder.

This whole Python thing … outch

Take a break.

1 Like

:stuck_out_tongue_winking_eye: :person_in_lotus_position: :desert_island: :snake:

Python is Idee broken. Try to deinstall all other plugins and the “import vanilla” might work. The KernKraft plugin is one of the few that causes the crash more than others (not your fault).
I had a combination where I could install plugin A+B or A+C or B+C but not A+B+C. One plugin I could “fix” by removing an import unittest. Go figure.

I’m trying ot understand the problem, I even just compiled Python from scratch to be able to better debug it.

Thank you.
Maybe I just wait a moment and try to invest a little time in porting the ones I really need now to Objective-C

Ah, you mean to then bring back one plugin after the other and try the “import vanilla” each time so find out if a plugin hangs in there? Will try …

Thank you both so much for your help!

I mean that two plugins might work when they on their own? But crash when installed together.

That message it triggered by an attributed set on the file in the plugin folder. To reset it, remove the Alias (you are using aliases to you git repo, aren’t you) and make new one. If it is too annoying, I remove that.

Yes exactly, Aliases. I always have to cmd-opt drag the plugin into the the Plugins folder to get it back there. It’s indeed annoying, especially in the debugging, where as you know it’s currently more a poke-around-in-the-dark-debug-style :smiley: Would be amazing if you could remove that behaviour. :pray:

Perhaps there could be a developer mode for Glyphs. It can be set only through user defaults in the Terminal/Macro window and adds a badge to the titelbar (similar to the no-plugin badge).

This developer mode could also prevent the Glyphs crashed, please send a report dialog since I as the developer know that the crash is my fault (and if it’s not I can have a look at Console).Hm, not sure the second part is a good idea.

I added a “DebugMode” user defaults key that disables the flagging of the crashing plugins.

2 Likes