Bug 21400 - Update candidate: rust 1.19.0, cargo 0.20.0
Summary: Update candidate: rust 1.19.0, cargo 0.20.0
Alias: None
Product: Mageia
Classification: Unclassified
Component: RPM Packages (show other bugs)
Version: 6
Hardware: All Linux
Priority: Normal normal
Target Milestone: ---
Assignee: QA Team
QA Contact:
Whiteboard: advisory has_procedure MGA6-64-OK
Keywords: validated_update
Depends on:
Reported: 2017-07-29 17:53 CEST by Rémi Verschelde
Modified: 2017-07-30 11:30 CEST (History)
2 users (show)

See Also:
Source RPM: rust-1.18.0-1.mga6, cargo-0.19.0-2.mga6
Status comment:

"Hello world" source code in Rust to test the compiler (388 bytes, application/x-xz)
2017-07-29 18:39 CEST, Rémi Verschelde

Description Rémi Verschelde 2017-07-29 17:53:32 CEST
Why we update rust and cargo:

The rustc compiler (rust package) and cargo package manager are the two main components of the Rust programming language, and get new versions every 6 weeks from Mozilla.

As nothing depends on rust yet in Mageia 6, and the language is still young and constantly evolving, we propose to keep track with the upstream releases also in Mageia's stable branch, which means we'll have one such update every 6 weeks. This is important for any rust user in Mageia 6, as they need the latest stable toolchain for their own development work.

The next ESR version of Firefox might also require rust, so we need to keep the packaging up to date.


Updated rust and cargo packages bring latest stable release

  This update provides Rust 1.19.0 and Cargo 0.20.0, which are the current
  stable versions released on July 20, 2017. See the release announcements
  for more details.

 - https://blog.rust-lang.org/2017/07/20/Rust-1.19.html

RPMs in core/updates_testing:


SRPMs in core/updates_testing:

- cargo-0.20.0-1.mga6
- rust-1.19.0-1.mga6
Comment 1 claire robinson 2017-07-29 18:20:51 CEST
A simple way to test would be helpful then Rémi.
Comment 2 Rémi Verschelde 2017-07-29 18:32:06 CEST
(In reply to claire robinson from comment #1)
> A simple way to test would be helpful then Rémi.

Well, I was writing the testing procedure as you posted this ;)

Testing procedure:

As of now there are no packages depending on rust in Mageia 6, apart from rust and cargo themselves, so only those two need to be tested.

The cargo package manager allows to download "crates" (source code for rust libraries and applications) and compile them automatically for you, so it's a very simple way to test the toolchain. You can try installing any crate with `cargo install <crate name>`.

Here are some crates you can test:
- ripgrep: a very powerful search tool similar to grep or ack (but better :))
- iota-editor: a simple console text editor

Some crates may fail building if they're not compatible with the current rust version, but that's ok - we're not testing them, only testing that the compiler and dependency managers themselves work.

CC: (none) => ngompa13
Whiteboard: (none) => has_procedure

Comment 3 Rémi Verschelde 2017-07-29 18:37:43 CEST
Tested successfully on x86_64:

$ cargo install ripgrep
    Updating registry `https://github.com/rust-lang/crates.io-index`
  Installing ripgrep v0.5.2
 Downloading clap v2.25.1
 Downloading bytecount v0.1.7
 Downloading libc v0.2.28
 Downloading ignore v0.2.2
   Compiling void v1.0.2
   Compiling bytecount v0.1.7
   Compiling termcolor v0.3.2
   Compiling same-file v0.1.3
   Compiling ansi_term v0.9.0
   Compiling libc v0.2.28
   Compiling unicode-segmentation v1.1.0
   Compiling utf8-ranges v1.0.0
   Compiling regex-syntax v0.4.1
   Compiling crossbeam v0.2.10
   Compiling log v0.3.8
   Compiling vec_map v0.8.0
   Compiling fnv v1.0.5
   Compiling bitflags v0.9.1
   Compiling unicode-width v0.1.4
   Compiling lazy_static v0.2.8
   Compiling cfg-if v0.1.2
   Compiling strsim v0.6.0
   Compiling unreachable v1.0.0
   Compiling walkdir v1.0.7
   Compiling memchr v1.0.1
   Compiling atty v0.2.2
   Compiling term_size v0.3.0
   Compiling memmap v0.5.2
   Compiling num_cpus v1.6.2
   Compiling env_logger v0.4.3
   Compiling encoding_rs v0.5.1
   Compiling thread_local v0.3.4
   Compiling aho-corasick v0.6.3
   Compiling textwrap v0.6.0
   Compiling clap v2.25.1
   Compiling regex v0.2.2
   Compiling grep v0.1.6
   Compiling globset v0.2.0
   Compiling ignore v0.2.2
   Compiling ripgrep v0.5.2
    Finished release [optimized + debuginfo] target(s) in 149.77 secs
  Installing /home/akien/.cargo/bin/rg

Testing the installed application:

$ cd ~/Mageia/QA/advisories
$ rg 0ad
2:subject: Updated 0ad packages provide new upstream alpha release
6:     - 0ad-0.0.22-1.1.mga6
7:     - 0ad-data-0.0.22-1.mga6
17: - https://play0ad.com/new-release-0-a-d-alpha-22-venustas

2:subject: Updated 0ad packages provide new upstream alpha release
6:     - 0ad-0.0.19-1.mga5
7:     - 0ad-data-0.0.19-0.alpha.1.mga5
16: - http://play0ad.com/new-release-0-a-d-alpha-19-syllepsis/

Testing building an running a Hello world project ( https://doc.rust-lang.org/book/second-edition/ch01-02-hello-world.html ), will attach the source in next comment.

$ cd ~/Documents/Programmation/Rust/hello_world/
$ cargo build
   Compiling hello_world v0.0.1 (file:///home/akien/Documents/Programmation/Rust/hello_world)
    Finished dev [unoptimized + debuginfo] target(s) in 0.33 secs
$ cargo run
    Finished dev [unoptimized + debuginfo] target(s) in 0.0 secs
     Running `target/debug/hello_world`
Hello World!
I'm a Rustacean!

Whiteboard: has_procedure => has_procedure MGA6-64-OK

Comment 4 Rémi Verschelde 2017-07-29 18:39:10 CEST
Created attachment 9532 [details]
"Hello world" source code in Rust to test the compiler
Comment 5 claire robinson 2017-07-29 18:40:46 CEST
Excellent :)
Comment 6 Rémi Verschelde 2017-07-30 10:56:59 CEST
Advisory uploaded, validating as it's not a critical component for now so it doesn't need very thorough testing.

Keywords: (none) => validated_update
Whiteboard: has_procedure MGA6-64-OK => advisory has_procedure MGA6-64-OK
CC: (none) => sysadmin-bugs

Comment 7 Mageia Robot 2017-07-30 11:30:08 CEST
An update for this issue has been pushed to the Mageia Updates repository.


Resolution: (none) => FIXED

Note You need to log in before you can comment on or make changes to this bug.