rust-lang / rust-lang/rust-analyzer

Use more sane compressed tarball for the Linux binary releases

Open
#21,890 5 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-infra C-feature
Dominant language
Rust
Stars
16.9k
Forks
2.2k
Avg merge
1d 12h
Merged PRs (30d)
72

Description

Current binary release in the tag for instance rust-analyzer-x86_64-unknown-linux-gnu.gz has a superfluous name and being simply a gzip wrapper doesn't have any attirbutes like being actually an executable so when unpacking I always need to:

  • Unpack .gz
  • Rename the file to rust-analyzer
  • give it an executbale flag

It would be better if rust-analyzer was wrapped into tar (to preserve the executable flag), which then can be compressed with something more modern likt zstd, rather than .gz.

Example how to compress:

Source: rust-analyzer

tar --create --verbose --use-compress-program "zstd --threads=$(nproc) -19 --verbose" --file rust-analyzer.tar.zst rust-analyzer

Or more simply:

tar -caf rust-analyzer.tar.zst rust-analyzer

Result: rust-analyzer.tar.zst

Example how to decompress:

tar --extract --verbose --use-compress-program "zstd --threads=$(nproc) --decompress --verbose" --file rust-analyzer.tar.zst

Or more simply:

tar -xvf rust-analyzer.tar.zst

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No file, test, or release entry point is named in the issue. Locate the Linux binary release packaging workflow, then verify how it produces rust-analyzer-x86_64-unknown-linux-gnu.gz; done means producing a rust-analyzer.tar.zst archive that preserves the executable bit and can be extracted with tar.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
release
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.