[Pkg-rust-maintainers] Update of the rand-* crate packages

Wolfgang Silbermayr wolfgang at silbermayr.at
Tue Dec 25 15:16:31 GMT 2018


There are quite a lot of crate packages which depend on the rand-*
crates. Recently, the rand_core crate got updated from 0.2 to 0.3, and
the rand crate got updated from 0.5 to 0.6.

Several crates depend on 0.5, while some could be updated to the
versions that depend on 0.6 already.

Below, I have sketched the dependencies of the rand-related crates:

                                              +------------------------+
                                              |  no rand-related deps  |
                                              +------------------------+
                                                           ^
                                                           |
                                  (for rand_core <= 0.2.1) |
                                                           |
+--------------+                                  +-----------------+
|  rand 0.5.5  |--------------------------------->|  rand_core 0.2  |
+--------------+                                  +-----------------+
                                                           |
                                  (for rand_core >= 0.2.2) |
                                                           v
                                                   +-----------------+
                                                   |  rand_core 0.3  |
                                                   +-----------------+
                                                      ^  ^  ^  ^  ^
                                                      |  |  |  |  |
                                                      |  |  |  |  |
                        +-------------------+         |  |  |  |  |
                   +--->|  rand_chacha 0.1  |---------+  |  |  |  |
                   |    +-------------------+            |  |  |  |
                   |                                     |  |  |  |
                   |    +---------------+                |  |  |  |
                   +--->|  rand_hc 0.3  |----------------+  |  |  |
                   |    +---------------+                   |  |  |
                   |                                        |  |  |
+--------------+   |    +------------------+                |  |  |
|  rand 0.6.1  |---+--->|  rand_isaac 0.1  |----------------+  |  |
+--------------+   |    +------------------+                   |  |
                   |                                           |  |
                   |    +----------------+                     |  |
                   +--->|  rand_pcg 0.1  |---------------------+  |
                   |    +----------------+                        |
                   |                                              |
                   |    +--------------------+                    |
                   +--->|  rand_xorshift 0.1 |--------------------+
                        +--------------------+

In order to enable a smooth upgrade, I recommend that we upload
rand-core-0.2 and rand-0.5, because it might take some time until all
crates are updated to the newer versions, and some upstream changes
don't seem to be straight-forward due to some restructuring that
happened in the rand crates. The latest rand_core 0.2 crate depends on
the rand_core 0.3 which appears to be an application of the semver trick
[0].

My plan is as follows:
- Upload rust-rand-core-0.2 (=0.2.1) to NEW queue
- Wait until it is approved by the ftpmasters team
- Update rust-rand-core from 0.2.1 to 0.3.0
- Update rust-rand-core-0.2 to 0.2.2 (which depends on rand-core 0.3)
- Upload rust-rand-<algorithm> and rust-rand-0.5 (=0.5.5) to NEW queue
- Wait until they are approved by the ftpmasters team
- Update rust-rand to (=0.6.1)

I'll start preparing the packages and placing RFS in the TODO file for
this procedure, please let me know if you have any objections.

Wolfgang.

--

[0] https://github.com/dtolnay/semver-trick



More information about the Pkg-rust-maintainers mailing list