yoctoproject / vscode-bitbake

Bitbake language support for Visual Studio Code
https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake
Other
45 stars 10 forks source link

Missing `language-server-bitbake/tree-sitter-bitbake.wasm` #308

Closed uyha closed 3 months ago

uyha commented 3 months ago

I'm trying to use this language server with neovim but run into an issue saying it cannot find language-server-bitbake/tree-sitter-bitbake.wasm. I checked the source code and see that tree-sitter-bitbake.wasm and tree-sitter-bash.wasm are removed during the build process. How should I generate them?

uyha commented 3 months ago

I figured out that I can compile it using tree-sitter build --wasm, but another question, why are the artifacts removed during the build step? I thought wasm files are reusable and if the project expects it in its root path, why remove them in the final packaging?

deribaucourt commented 3 months ago

To package the server, we do:

npm run clean
npm install
npm run fetch
npm run compile
cd server
npm pack

This produces a .tgz which does contain the .wasm files on the latest staging branch. They are used to parse bitbake files to provide the various language features. However the current release on the NPM registry is indeed broken! When installing through the registry, you should install the previous version until we deploy the next one which will be fixed:

npm install -g language-server-bitbake@2.5.0

I am concerned about how the .wasm could have been removed in our latest release. Can you tell me which commit you are building? And which build script is removing them? I see they are properly marked as exceptions to keep in the server/.npmignore file (! means do keep the file in the package).

Thanks!

uyha commented 3 months ago

I installed them all via npm, here is the tree

├── language-server-bitbake@2.6.0
├── npm@10.8.2
├── tree-sitter-bash@0.21.0
└── tree-sitter-bitbake@1.1.0
uyha commented 3 months ago

After the compilation with tree-sitter, i just create the symlinks according what language-server-bitbake expects.

uyha commented 3 months ago

As for which script removes them, I'm not sure, I just assume that being the case since they do not exist in the final packaging.

deribaucourt commented 3 months ago

When installing through npm you do not need to install the tree-sitter dependencies manually, or copy them into language-server-bitbake. They should be present in our package as .wasm files. I recommend that you install the previous 2.5.0 release with the command npm install -g language-server-bitbake@2.5.0 which was properly bundled.

It looks like just the 2.6.0 packaging is missing them. If I rebuild one from staging They are present. I know an error happened in the 2.6.0 NPM release pipeline and I had to manually fix things. I probably improperly published the package. I'm going to makr 2.5.0 as the default version untill we have deployed a 2.7.0.

uyha commented 3 months ago

When installing through npm you do not need to install the tree-sitter dependencies manually, or copy them into language-server-bitbake.

Yes, that's my expectation also.

deribaucourt commented 3 months ago

2.5.0 has been reverted as the latest version. It will automatically be selected if you re-install:

npm remove -g language-server-bitbake 
npm install -g language-server-bitbake 

I also want to make sure the packaging of the next release won't be affected. It turns out you were right, our CI build script was responsible for not packaging the .wasm file! I'm going to make a PR for that to close the issue.

Thank you very much for reporting this regression!