From Fedora Project Wiki


Rust Compiler

Summary

Introduce packages for the Rust compiler and its Cargo build system.

Owner

  • Name: Josh Stone
  • Email: jistone at redhat dot com
  • Release notes owner:

Current status

Detailed Description

In the project's own words, "Rust is a systems programming language that runs blazingly fast, prevents segfaults, and guarantees thread safety." Cargo is Rust's primary package manager and build system. This change is to bring both into Fedora.

Rust 1.10.0 was released on July 7 along with Cargo 0.11.0. These will be the initial targets to package. Rust's next release is scheduled for August 18 on a 6-week cycle. Backwards compatibility is taken very seriously, so it should be possible to keep upgrading throughout a Fedora release's lifetime. It might be debatable whether Fedora users want those upgrades or not.

More information:

  • Bug request to package rust #915043
  • Work in progress rust-spec for the latest release 1.10
  • COPR jistone/rust demonstrating the bootstrap from a binary then pure source

Benefit to Fedora

Developers can begin using the Rust language in their projects. In the Stack Overflow Developer Survey 2016, Rust topped the list of Most Loved languages.

Packagers can begin adding programs written in Rust to Fedora. For instance, Mozilla is starting to use Rust in Firefox, and now Fedora's Firefox maintainers could enable those components.


Scope

  • Proposal owners: Get rust and cargo into Fedora, and maintain them in the future.
  • Other developers: N/A (not a System Wide Change)
  • Release engineering: N/A (not a System Wide Change)
  • Policies and guidelines:
    • Possibly add new guidelines for packages written in Rust. This can be done after.
    • Considerations are pretty similar to PackagingDrafts/Go, especially static linking and the idea of source-based -devel libraries.
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

N/A (not a System Wide Change)

How To Test

N/A (not a System Wide Change)

User Experience

N/A (not a System Wide Change)

Dependencies

N/A (not a System Wide Change)

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
    • Cargo may be a stretch, then just delay that until later.
    • If Rust fails too, just don't ship anything now.
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), No
  • Blocks product? None

Documentation

N/A (not a System Wide Change)

Release Notes