Skip to content

[Discussion] Approach for supporting older versions of rustc #9640

Closed as not planned
@KOLANICH

Description

@KOLANICH

As it was recommended in #9629, I open the issue.

As we all know, distros (I mean Debian-based distros, such as Ubuntu and Debian itself) have problems with supplying the most recent versions of rust in time.

While it is possible to use the stuff like rustup and curl ... | sudo bash, it can have some issues and so it is strongly disrecommended.

So, an issue arises to allow outdated versions of rust to build rust-analyser.

There are some options:

  • introducing a policy of keeping the code compatible to the oldes version of rustc available in the latest versions of all major distros. Pro - rustc built by the distro itself can be used. Con - limiting oneself to old features only is not fun.

  • making an own update server for package managers and hosting it on GitHub Pages. Provide the prebuilt binary packages for the latest rust-nightly via it. Con - trust and security issues. Pro - latest Rust.

  • making an additional branch for each rust release significantly present in distros, that is meant to be rebased over master and gets a commit fixing the incompatibility when a commit not supporting needed versions of rust is landed into master. An example of such a branch is https://github.com/KOLANICH-toosl/rust-analyzer/tree/ubuntu_21.04_compat . Con - additional work for ones maintaining this branch. Pro - developers get more fun playing with the fresh features. Comment - it'd be easier to maintain such a branch if the introduction of incompatible changes is documented. Also it may be possible to setup a GitHub action automatically rebasing the branch over master and detecting the incompatible commits.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-supportCategory: support questions

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions