🦀

100日後にRustをちょっと知ってる人になる: [Day 60]Rust のリリースプロセス

2022/10/31に公開

Day 60 のテーマ

ふと Rust のバージョンを見てみると、現状の Stable の最新バージョンのの 1.64.0 を使用していました。

$ rustc --version
rustc 1.64.0 (a55dd71d5 2022-09-19)

ポイントは、最新バージョンを使っていることではなくて、1.64.0 のリリース日付です。
2022-09-19 にリリースされています。大体 1 ヶ月半くらいまえですよね。ということで、そろそろ次のバージョンのリリース時期が迫ってきているはずなのです、

Rust は原則として 6 週間感覚のリリースサイクルをもっているのです。というわけで、リリース予定日を確認してみます。

次のリリースバージョンの 1.65 は現在リリース前なので、ベータチャネル として扱われていますが、Stable リリースの予定日が 11 月 3 日になっていることが分かると思います。

予定通り、2022-09-19 から 6 週間後 に公開予定となっているようですね。

ということで、今日は Rust のリリースプロセスについてかんたんに見てみたいと思います。

リリースプロセス

Rust のリリースサイクルは、原則として 6 週間ごととなっていることを先程お伝えしました。また、リリース予定日を確認したときに、チャネルというものがありました。リリースプロセスの中では、このチャネルがどのように 6 週間のなかで扱われるかが大事になってきます。

詳細なリリースプロセス (どのように PR して、判定してなど) については、次のドキュメントに記載されているようですので、興味のあるかたは見てください。

リリースプロセスのポイントだけを簡単に説明すると、Stable リリース (安定版リリース) をするために、各チャネルを昇格していくという流れが大事なのです。

チャネルには以下の 3 つがあります。

  • Nightly
  • Beta
  • Stable

Nightly チャネル

Nightly チャネルは新しいコミットを日々行い、ビルドをしているチャネルです。文字通り、毎日ビルドをしているのがこのチャネルになります。そのため、新しい機能はいち早く入ってきていますが、十分に精査された品質なのかどうかはわかりません。

Beta チャネル

Beta チャネルは Nightly チャネルからの昇格です。6 週間ごとに Beta チャネルへのリリースするタイミングが発生します。

nightly: * - - * - - *
                     |
beta:                *

つまり、Stable リリースだけでなく、Beta チャネルへのリリースも 6 週間ごとに行われているのです。
Beta チャネルへのリリースが行われたあとは、Nightly チャネルでは、引き続き新しい開発が続けれられます、
また、Stable リリースにむけて、Beta チャネルでテストが行われるわけですが、不具合が見つかった場合は、Nightly チャネルから Beta チャネルに対してバックポートされます。

nightly: * - - * - - * - - * - - * - - *
                     |
beta:                * - - - - - - - - *

Stable チャネル

Stable チャネル は、安定版として公開されるチャネルです。
ベータリリースが行われてから、6 週間後に Stable チャネルへのリリースするタイミングが発生します。

nightly: * - - * - - * - - * - - * - - * - * - *
                     |
beta:                * - - - - - - - - *
                                       |
stable:                                *

また、Beta チャネルも 6 週間のサイクルが経ったのでリリースのタイミングが発生します。Nightly チャネルから、次の Beta バージョンとしてリリースが行われます。

nightly: * - - * - - * - - * - - * - - * - * - *
                     |                         |
beta:                * - - - - - - - - *       *
                                       |
stable:                                *

このようにして、各チャネルでの開発・テストが行われ、安定版の公開が行われるリリースプロセスになっています。

Day 60 のまとめ

次の Rust の Stable バージョンになる 1.65.0 のリリース日付が近くなってきたことに気づいたので、今回は リリースプロセスについて簡単に見てみました。

以下の 3 つのチャネルを昇格しながら機能と品質をつくりあげているトレインモデルになっていたことが分かったと思います。

  • Nightly
  • Beta
  • Stable

さて、1.65.0 がどのような特徴があるのかも見てみたいなと思います。

GitHubで編集を提案

Discussion