Skip to content
This repository was archived by the owner on Mar 3, 2023. It is now read-only.

Conversation

@sadick254
Copy link
Contributor

No description provided.

"temp": "0.9.2",
"text-buffer": "^13.18.5",
"timecop": "https://www.atom.io/api/packages/timecop/versions/0.36.2/tarball",
"tree-sitter": "0.17.1",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0.19.0

"temp": "0.9.2",
"text-buffer": "^13.18.5",
"timecop": "https://www.atom.io/api/packages/timecop/versions/0.36.2/tarball",
"tree-sitter": "0.17.1",

This comment was marked as off-topic.

@DeeDeeG DeeDeeG mentioned this pull request Dec 6, 2021
64 tasks
@claytonrcarter
Copy link
Contributor

Hi @sadick254. Can the community do anything to help move this along? I don't know my way around too much, but I was just able to do the following on my local copy of atom:

  1. I updated tree-sitter to 0.20.0: npm i tree-sitter@\*
  2. None of the bundled language-* packages worked b/c of of the update, so ...
  3. I manually rebuilt each of the installed tree-sitter-* packages w/ the 0.20.0 version of tree-sitter: cd node_modules/tree-sitter-<language> ; tree-sitter generate ; npm rebuild ; electron-rebuild --version 11.5.0
  4. Atom builds and runs, and the tests are passing, even the tree-sitter related tests. (This was on a mac; I didn't test it on Linux or Windows.)

(Step # 3 was easy for the most part, but the tree-sitter-typescript needed some manual edits b/c the bindings.cc file was moved by the newer version of tree-sitter.)

If this is the case (ie that Atom is fundamentally compatible w/ tree-sitter 0.20.0), does this mean that the only thing holding back progress on updating tree-sitter is coordination w/ all of the bundled languages so that they can update at the same time as Atom? Is the concern that merging this PR (or a similar one) would break the nightly builds until the language packages are updated? If so, this feels like a chicken-and-egg problem: Atom can't update until the languages are updated, and the languages can't update until Atom is updated.

If this coordination between Atom and language packages is a concern, would it make sense to do an interim step, like:

  1. Update Atom to tree-sitter v0.20.0
  2. At the same time, add an interim build step to Atom to manually regenerate/patch each bundled tree-sitter module with tree-sitter 0.20.0
  3. Update each of the affected language packages to use tree-sitter 0.20.0 (or a similar/compatible version)
  4. Once all language packages are updated, remove the interim build step.

Would this address any concerns, or just raise new ones? 😄

What are your thoughts on a plan to move forward? Thank you!

See also #22130, #23068, atom/language-ruby#296, atom/language-html#256, atom/language-json#84, atom/language-php#438, and others

@icecream17
Copy link
Contributor

linking to #22129
https://github.com/icecream17/atom-update-backlog/blob/main/Languages.md

Although it seems there is now tree-sitter v20 instead of v19, so the markdown document is outdated

@claytonrcarter
Copy link
Contributor

Thank you, @icecream17. That document (and the repo) are a gold mine!

I had failed to understand that some of the languages are already updated but that Atom hasn't been updated to use them. Also, I forgot that many of the tree-sitter grammars don't have any tests, so even if the package is updated, it might not necessarily fail tests or in CI; so long as it's not tagged for release into Atom until Atom is updated.

So, based on that document, language-shellscript, language-typescript and language-python need PRs to update them? At that point, all of the current tree-sitter languages would at least have an update in the works? If so, that seems like something I might be able to work on.

Oh, it might be worth mentioning language-rust in your list. It's maintained w/i the Atom repo, so it can be updated the same time that Atom it, but it might be good to at least mention.

Thanks again!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants