-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Publish new release? #134
Comments
cc. @maxbrunsfeld |
There has been 20 commits to master since the last release from Mar 4, 2021. Any plans to publish more often? For https://github.com/bash-lsp/bash-language-server I'm considering building our wasm version of tree-sitter-bash based on the source code instead of on the published version. |
For https://github.com/nix-community/patsh I am not able to use the latest versions of I think it's generally a good idea to publish new versions of the grammar bindings even if no changes were made, just so it is compatible with the latest version of tree-sitter |
@skovhus I can't publish releases. I've been asking for one myself lol #100 (comment) so I just ended up publishing a fork under my own namespace https://www.npmjs.com/package/@curlconverter/tree-sitter-bash |
cc @dcreager as a co-owner of the rust crate |
Please publish a new release. (a a#a)
(a a#a) |
Sorry to bother you @maxbrunsfeld, but it would be very helpful if you could provide a status update for this repository. If there are no plans for further releases or development, then that is fine too. Folks would be able to make better decisions such as using @verhovsky's fork or look for alternative solutions. Thanks! |
I can look into this shortly. |
That would be great, @amaanq! And now that I see your profile: hats off 🙏 |
I released 0.20.0 since #187 |
Not sure I understand - I've never seen those binaries in a tree-sitter release in any other repo but this, what's with those 60 binary assets..? I can create a GH release, but I have no clue what the assets are/how to create them. I also am not a huge fan of distributing binaries, not every machine is the same, what's compiled/built on mine might not work universally |
@amaanq yea, tree-sitter-bash seems to be one of the only languages we were/are pre-building binaries for. Ideally we should do it for all languages... We have node-tree-sitter (which runs native code) and web-tree-sitter (which runs through WASM either from the terminal or from a web browser). If you're using web-tree-sitter to parse Bash, you have to
Line 4 in 9ed0720
This requires Python and a C compiler. One way to work around this is https://github.com/prebuild/prebuild https://napi.inspiredware.com/build-tools/prebuild.html It works like this, you configure you packages so that when users run And in tree-sitter-bash repo here Line 30 in 9ed0720
The way you do releases is you first make an empty GitHub release, then make a release on npm and then you run https://github.com/tree-sitter/node-tree-sitter/releases/tag/v0.20.5 We run this "compile and upload to github" command under each of the 3 operating systems. |
Gotcha, this was good to know. So, since I've published 0.20.0 and 0.20.1 (and maybe 0.20.2, fixing some more stuff atm and if it's sizable enough I'll release another ver ;) ), will I still be able to run prebuild myself after it's been published? Still a bit lost on that process Anyways, this is a bandaid solution to a bigger problem, I want to add a pack and publish command to the core cli itself to build the parser.so, wasm binary, and now these binaries as well after learning about this :) Pack would create them, and publish upload them to GH releases/artifacts. |
You would first have to create a tag and a GitHub Release for the corresponding versions 0.20.0 and 0.20.1 https://github.com/tree-sitter/tree-sitter-bash/releases/new After that, yes, if you have can make a GitHub API key with the appropriate permissions (which I'm guessing you can't), you can run prebuild -t 16.0.0 -t 18.0.0 -t 20.0.0 --strip -u $GITHUB_API_KEY locally from your tree-sitter-bash/ directory and it should prebuild and then upload the files. I don't know how it works but I assume that it works by checking |
I see, I'll ask Max about this, I don't think I can create a GH API Key Thanks for the explanation! Hm wait, Max made the node token available org-wide recently so I could auto publish npm packages as well as the rust crates, is it possible to auto-run prebuild & uploading to the release in the CI then? |
Yea, exactly, it's all possible you just need to copy the code from node-tree-sitter to here. The only changes are related to making it work with that
the way node-tree-sitter works is that Which I guess is one more manual step than your way of scanning for an increased version number on each commit.
I don't think you should bother manually pre-building binaries for those releases. I would just make the tag and github release for the relevant commits just so that we're not missing versions on GitHub Releases, but keep them empty until you make a release that prebuilds the binaries through github actions. |
Since I've yet to create a release for 0.20.0/1, is it possible for me to copy the build CI workflow here, then create the releases, and let that CI action then auto-upload the binaries? I'm assuming the release type "released" is related to the GH release version, not the npmjs version, right? (Just want to double check 😅) If so, I can just add that then cut releases right after |
I don't have experience doing that, but that should work, yea. When you create a GitHub Release you have to choose a tag as the released commit. I see you already have git tags for those versions, so when you release one of those tags I assume it would run for that commit and upload to the relevant release for that tagged commit.
I don't understand the question because I think it's a bit misguided. on:
push:
branches:
- master
pull_request:
branches:
- master
release:
types:
- released Says the entire workflow (which is in one file) runs on pushes to master, pull requests to master and when a new github release is created. Then we only make npm releases and prebuild binaries when it's a new github release being created publish:
if: ${{ github.event_name == 'release' }} Like I said, it runs on the state of the code at the commit (since it runs a git checkout). I don't know but it probably either gets the version it'll upload to GitHub releases from the package.json, or maybe it just uploads to the latest github release, either should work fine if you create the releases in order. |
No description provided.
The text was updated successfully, but these errors were encountered: