vscode-spellright icon indicating copy to clipboard operation
vscode-spellright copied to clipboard

Spellright stopped working in V1.56.0

Open texjoachim opened this issue 3 years ago • 37 comments

I just updated Visual Studio Code to v 1.56.0 and spellright stopped working. However, this (https://github.com/bartosz-antosik/vscode-spellright/issues/425) fixed it for me.

texjoachim avatar May 06 '21 11:05 texjoachim

Can confirm this on mac os and vsc 1.56.0. Triggering SpellRight commands via command palette causes error popups to show up.

E.g.

Command 'SpellRight: Select Dictionary (Language)' resulted in an error (command 'spellright.selectDictionary' not found)

GrzegorzKazana avatar May 07 '21 09:05 GrzegorzKazana

same here :(

khofstadter avatar May 14 '21 11:05 khofstadter

Hello! VSCode 1.56.x started using Electron version 12.x. This as with every Electron version bump SpellRight stopped functioning as the binaries are not automatically compatible with new version This time jump from Insiders to regular version was pretty quick which made the transition bit more pf a problem.

But with the recent SpellRight update it should work with latest versions of VSCode. Or doesn't it?

bartosz-antosik avatar May 14 '21 11:05 bartosz-antosik

thanks Bartosz. For some reason my VSCode (1.56.2 on Sierra) does not see the new version of Spell Right.

It can only see 3.0.56.

Hmm...

Uploading Screen Shot 2021-05-14 at 12.53.55.jpg…

khofstadter avatar May 14 '21 11:05 khofstadter

@krisztian-hofstadter-tedor Really, I have no idea why? Version available in the Market is 3.0.58 which has newer binaries. You can try to install from VSIX maybe?

bartosz-antosik avatar May 14 '21 11:05 bartosz-antosik

@bartosz-antosik thanks. I am not exactly sure how to install VSIX. I downloaded the Zip from the repository and was trying to upload as an extension where it says 'Install from VSIC' but that didn't work.

How do I download a VSIX file? Sorry :)

khofstadter avatar May 14 '21 12:05 khofstadter

From here:

https://marketplace.visualstudio.com/items?itemName=ban.spellright

image

bartosz-antosik avatar May 14 '21 12:05 bartosz-antosik

aha! Found this on https://marketplace.visualstudio.com/ (could not on GitHub).

cool! up and running ;-)

many thanks @bartosz-antosik

khofstadter avatar May 14 '21 12:05 khofstadter

Hello! VSCode 1.56.x started using Electron version 12.x. This as with every Electron version bump SpellRight stopped functioning as the binaries are not automatically compatible with new version This time jump from Insiders to regular version was pretty quick which made the transition bit more pf a problem.

But with the recent SpellRight update it should work with latest versions of VSCode. Or doesn't it?

The updated version works fine! Thank you!

texjoachim avatar May 14 '21 15:05 texjoachim

Hmm I'm getting the same issue on an M1 Mac running VSCode 1.56.2 and SpellRight 3.0.58, whether installed through the store or directly from the VSIX.

Calling any SpellRight command yields errors, e.g.:

Command 'SpellRight: Select Dictionary (Language)' resulted in an error (command 'spellright.selectDictionary' not found)

Flipping global.SPELLRIGHT_DEBUG_OUTPUT = true; in extension.js and running the extension debugger just shows:

[spellright] Found no bindings among these files:

kitschpatrol avatar May 20 '21 18:05 kitschpatrol

Hello, VSCodium user here. It seems like the update hasn't been pushed to open-vsx so the current version fails.

Would be awesome if the module could be updated there as well :)

glamax13 avatar May 22 '21 21:05 glamax13

Hmm I'm getting the same issue on an M1 Mac running VSCode 1.56.2 and SpellRight 3.0.58, whether installed through the store or directly from the VSIX.

Calling any SpellRight command yields errors, e.g.:

Command 'SpellRight: Select Dictionary (Language)' resulted in an error (command 'spellright.selectDictionary' not found)

Flipping global.SPELLRIGHT_DEBUG_OUTPUT = true; in extension.js and running the extension debugger just shows:

[spellright] Found no bindings among these files:

Same here.

mark-night avatar May 26 '21 00:05 mark-night

Hello, VSCodium user here. It seems like the update hasn't been pushed to open-vsx so the current version fails.

Would be awesome if the module could be updated there as well :)

The bugfix version is still not available to VSCodium users. I managed to install it manually, but it would be nice to have the latest version natively available, too.

ialokim avatar Jul 04 '21 12:07 ialokim

Hello, VSCodium user here. It seems like the update hasn't been pushed to open-vsx so the current version fails. Would be awesome if the module could be updated there as well :)

The bugfix version is still not available to VSCodium users. I managed to install it manually, but it would be nice to have the latest version natively available, too.

After some digging it seems like the open-vsx deployment was made with their BOT which mean the plugin author might even not be aware of it's existence on this marketplace (plugins are added on community requests if their licences allows it).

On an other note, it seems that this project doesn't "release" new version (couldn't find github releases nor tags) and that may be the reason why the BOT doesn't update it's packages.

tldr: My point is that the mater on the update of open-vsx packages isn't related to this thread ^^'

Sorry to the regular VSCode users...

glamax13 avatar Jul 10 '21 13:07 glamax13

I can confirm the issue is back or still there - VSCode is on 1.60.x, using electron 13.1.x and node 14.16.x

But the current copies of the binaries ( https://github.com/bartosz-antosik/vscode-spellright/tree/master/lib/bin ) don't cover node 14 and they don't cover mac OS on arm64 at all (the two that are there are darwin-x64 only). Which is confusing me - I don't know the exact build process - because the build script seems to cover darwin-apple / arm64 ( https://github.com/bartosz-antosik/vscode-spellright/blob/master/lib/bin/node-spellchecker/build-macos-apple.sh )

I failed to try updating the binaries in a clone of this repo, the process is pretty undocumented beyond the shell scripts in the repo.

nkuehn avatar Sep 30 '21 12:09 nkuehn

@nkuehn Hi! As far as I know only Electron's version is of concern when matching binaries. Node should not matter.

What version of Electron is reported?

I have pretty much working bot regular & Insiders version with a variety of Electron versions 13 (13.1.8 & 13.5). There is no version with Electron 14.x that I would know about.

Do you have Apple ARM hardware to build binaries for SpellRight? I would eagerly assist you to build these, so I could attach them to the release. I simply do not have appropriate hardware in reach.

bartosz-antosik avatar Sep 30 '21 13:09 bartosz-antosik

Do you have Apple ARM hardware to build binaries for SpellRight? I would eagerly assist you to build these, so I could attach them to the release. I simply do not have appropriate hardware in reach.

I have an M1 (and I have been experiencing the same or similar problem (reported in https://github.com/bartosz-antosik/vscode-spellright/issues/451 )

Unlike @nkuehn, whom you were asking, I have little understanding of building node apps. But I can give it a shot.

jpgoldberg avatar Sep 30 '21 15:09 jpgoldberg

For what follows, please understand that my experience in building anything with node is limited to code that has Makefiles or docker containers that do everything me and have been created by people who understand building. Despite that I seem to have gotten fairly far in my attempts.

Steps so far in building

  1. Looking at makefile I saw that I need a vsce command, and so small bit of reading various docs, I used npm install to install vsce, yo, and generator-code. All seemed to go well.
  2. After a bit of trial, error, and reading I realized that my next step was to run npm install in the project's root directory to get all of the node module dependencies. This seemed to work, except that I got a post install error. (Details further below)
  3. Despite the post-install errors, I was able to run make vsce-pack. This failed because there was no .output directory. After manually creating the .output directory I was able to run it.
  4. I now have a ./.output/spellright-3.0.60.vsix, but I don't know what to do next to test.

What next?

I don't know whether the steps I have taken put me in a position to test whether things work, and I don't know what steps I should take to test.

npm install post-install error

Here is what looks like the relevant part of a very large log file (I can upload the entire log file if needed)

13125 verbose lifecycle [email protected]~postinstall: CWD: /Users/jpg/src/github.com/bartosz-antosik/vscode-spellright
13126 silly lifecycle [email protected]~postinstall: Args: [ '-c', 'node ./node_modules/vscode/bin/install' ]
13127 silly lifecycle [email protected]~postinstall: Returned: code: 1  signal: null
13128 info lifecycle [email protected]~postinstall: Failed to exec postinstall script
13129 verbose stack Error: [email protected] postinstall: `node ./node_modules/vscode/bin/install`
13129 verbose stack Exit status 1
13129 verbose stack     at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:332:16)
13129 verbose stack     at EventEmitter.emit (events.js:400:28)
13129 verbose stack     at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13129 verbose stack     at ChildProcess.emit (events.js:400:28)
13129 verbose stack     at maybeClose (internal/child_process.js:1055:16)
13129 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:288:5)
13130 verbose pkgid [email protected]
13131 verbose cwd /Users/jpg/src/github.com/bartosz-antosik/vscode-spellright
13132 verbose Darwin 20.6.0
13133 verbose argv "/usr/local/bin/node" "/usr/local/bin/npm" "install"
13134 verbose node v14.17.6
13135 verbose npm  v6.14.15
13136 error code ELIFECYCLE
13137 error errno 1
13138 error [email protected] postinstall: `node ./node_modules/vscode/bin/install`
13138 error Exit status 1
13139 error Failed at the [email protected] postinstall script.
13139 error This is probably not a problem with npm. There is likely additional logging output above.
13140 verbose exit [ 1, true ]

It tells me that there may be other logs, but I don't know where to look for those.

jpgoldberg avatar Sep 30 '21 16:09 jpgoldberg

@jpgoldberg Hold on! This is not the way! ;-)

bartosz-antosik avatar Sep 30 '21 16:09 bartosz-antosik

Please try to do these steps:

  1. Clone the spellright repository to some folder;
  2. Goto lib/bin/node-spellchecker;
  3. Do npm install --only=dev;
  4. Do npm install nan;
  5. Start appropraite batch (it should be build-macos-apple.sh ).

It should build binaries for appropriate Electron versions (9 through 13) in the folder above (..). You do not have to install any other version of Node etc. It pulls appropriate versions of Electron headers. It does here for me (I have node.js version 14.17.4).

Once we have tthese binaries we can progress and test whether they work.

I have created the -apple.sh script by analogy. There may be issues.

Exactly the above process gives me four Windows binaries.

bartosz-antosik avatar Sep 30 '21 16:09 bartosz-antosik

Thanks @bartosz-antosik, I've just started working on that.

Your steps 3 and 4 need to be in the other order (for people who don't already have nan installed)."

When I run sh build-macos-apple.sh I get errors of

node-gyp: command not found

I have since run npm install node-gyp but am left with the same problem. It is possible that I don't have my path set up for where these get installed, but if that were the case, I should have run into problems earlier. I will try to find where node-gyp was installed.

jpgoldberg avatar Sep 30 '21 20:09 jpgoldberg

I suppose, node-gyp may have to be installed globally (npm install node-gyp -g). There was something about it. It would also indicate why I have not noticed it missing!

bartosz-antosik avatar Sep 30 '21 20:09 bartosz-antosik

Yeah. I have now installed it globally instead of editing the script. But I now have learned more about npm. Everything appears to be built now. On to testing.

jpgoldberg avatar Sep 30 '21 20:09 jpgoldberg

You do HAVE the binaries?

bartosz-antosik avatar Sep 30 '21 20:09 bartosz-antosik

Yes, but the ones labelled -m1 appear to be Intel. At least if file(1) can be trusted. |

% file spellchecker-darwin*.node            (master)vscode-spellright
spellchecker-darwin-11.1.0-m1.node:  Mach-O 64-bit bundle x86_64
spellchecker-darwin-12.0.4-m1.node:  Mach-O 64-bit bundle x86_64
spellchecker-darwin-12.0.4-x64.node: Mach-O 64-bit bundle x86_64
spellchecker-darwin-13.1.7-m1.node:  Mach-O 64-bit bundle x86_64
spellchecker-darwin-13.1.7-x64.node: Mach-O 64-bit bundle x86_64
spellchecker-darwin-9.1.0-m1.node:   Mach-O 64-bit bundle x86_64

jpgoldberg avatar Sep 30 '21 20:09 jpgoldberg

Do you have Apple ARM hardware to build binaries for SpellRight? I would eagerly assist you to build these, so I could attach them to the release. I simply do not have appropriate hardware in reach.

Yes I do, and I was just able to successfully run the build-macos-apple.sh build script. But it fails on the 13.1.7 target, which can be fixed by upgrading the nan helper dependency in package.json to the latest (^2.15.0). I have not tested the binaries yet, but can provide them in a PR once I tried that

Strictly spoken that change forks https://github.com/atom/node-spellchecker - I don't know to what extent the copy embedded in this repo is a de facto fork anyways but I do see that atom/node-spellchecker is very unmaintained.

PS: Concerning VSCode on my M1, here's what it reports in the about Dialog (I think I may have messed up nodejs and electron versions in my initial comment)

Version: 1.60.2
Commit: 7f6ab5485bbc008386c4386d08766667e155244e
Date: 2021-09-22T11:59:08.826Z
Electron: 13.1.8
Chrome: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Darwin arm64 20.6.0

Edit: sorry, overlapping conversation with yours @jpgoldberg

nkuehn avatar Sep 30 '21 20:09 nkuehn

@nkuehn Hi! It's actually very good that you interleave!

Guys (@nkuehn @jpgoldberg), I cannot help much - as I have said, I have no easy access to Apple hardware at the moment.

This is the right way to build the binaries.

I have absolutely no idea why would node.js build its' binary dependencies using local toolchain into Intel binaries?!?

bartosz-antosik avatar Sep 30 '21 20:09 bartosz-antosik

@nkuehn The version of node-spellchecker that I have used is forked from the original There were changes required to make it work with never Electron versions so anyway - it's not dependency, it's copy in my tree.

bartosz-antosik avatar Sep 30 '21 20:09 bartosz-antosik

I have absolutely no idea why would node.js build its' binary dependencies using local toolchain into Intel binaries?!?

node-gyp cross compilation seems to "maybe work but not intended" if I read this thread right: https://github.com/nodejs/node-gyp/issues/829

I would rather play safe and use the matching platform to build the binaries. GitHub Actions provide runners for everything supported here (except Apple silicon https://github.com/actions/virtual-environments/issues/2187 ), should be relatively trivial to automate it on github actions.

nkuehn avatar Sep 30 '21 21:09 nkuehn

@nkuehn May I ask, have you tried to put the binaries aside actually installed extension and see if SpellRight starts on Apple hardware?

bartosz-antosik avatar Sep 30 '21 21:09 bartosz-antosik