On 12/2/21 09:56, Fabio Valentini wrote:
On Wed, Dec 1, 2021 at 5:07 PM Andreas Schneider <a...@redhat.com> wrote:

Hello,

I would like to compile the tree-sitter parser generating tool. For this rust-
html-escape and rust-smallbitvec is missing in the distro. It would allow that
you can add additional languages for highlighting in neovim.

If someone who is familiar with rust could packages those two small
extensions, that would be really great!

Hello!

It turns out, it is not as simple as "just two small extensions".

Packaging the html-escape crate is not a problem, it has no
dependencies that are not already present in Fedora.
smallbitvec has very outdated dependencies for running its test suite,
so that has to be turned off.
You also seem to have missed tiny_http 0.8.x, which is present in
Fedora repos, but with a version that is too old (0.6.2).

But the bigger problem will be tree-sitter-cli itself, which is split
into multiple, separately-shipped Rust crates - so there's these
additional dependencies to the two you assumed going into this
endeavour:

- tree-sitter-cli
- tree-sitter
- tree-sitter-config
- tree-sitter-highlight
- tree-sitter-loader
- tree-sitter-tags

Those will also have to be packaged. They don't have any dependencies
that are not packaged for Fedora yet, but tree-sitter requires spin
version 0.7.x, whereas we have spin 0.5.2 right now.

This means, in total:

- new package: rust-html-escape
- new package: rust-smallbitvec
- update package: rust-tiny_http to version 0.8.2
- new package: rust-tiny_http0.6 compat package
- new package: rust-tree-sitter-cli
- new package: rust-tree-sitter
- new package: rust-tree-sitter-config
- new package: rust-tree-sitter-highlight
- new package: rust-tree-sitter-loader
- new package: rust-tree-sitter-tags
- update package: rust-spin to version 0.7.1
- new package: rust-spin0.5 compat package

So, ten new packages, plus two updates, plus two new compat packages
(unless I missed something - there might be more TODO items than
those). Welcome to the Rust world! ;)

`smallbitvec` deps are only needed for benchmark, so the test suite is actually passing without these. Should be safe to drop with metadata patch.

rust-tiny_http 0.8.2 also has a benchmark-only dependency `fdlimit` which we can drop.

The situation with tree-sitter-cli testsuite is complicated: it requires a few other github repos with a grammar definitions and who knows what else. I haven't succeeded in running it so far, so we can keep it turned off. And that would make `rust-spin` update unnecessary.

The draft packages are available from https://copr.fedorainfracloud.org/coprs/alebastr/rust-tree-sitter-cli/; seems working with available grammar files (with exception of `build-wasm` and `playground` subcommands which require emscripten).


The Rust SIG *can* help with this work, but I don't like committing
the SIG (which has been mostly myself, for the past months) to more
work maintaining ever more packages without a good reason.

Fabio
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to