2017-09-22 3 views
4

新しいバージョンのクレートを慎重にリリースして、ユーザーに最初にテストする機会を与えたいと思います。どのように私はそれを "ベータ"としてcrates.ioにリリースできますか? (npmにタグ付きリリース@nextがある方法に似ています)。限定公開テストのためにクレートのベータ版をリリースするには?

私はセブン - メジャーバージョンを増やすつもりはありません。ベータテスト期間が終了するまでユーザーがcargo upgradeを実行したときに自動的に選択されることは望ましくありません。

  • リリースにはどのバージョン構文を使用しますか?

  • 放出する際に特別な貨物オプションを使用する必要がありますか?

  • ユーザーはcargo/Cargo.tomlを使用してベータ版にどのようにオプトインするのですか?

答えて

8

Semantic versioningpre-release versionの概念を定義:

プレリリースバージョンはハイフンとドットのシリーズを追加することによって表すことができるパッチバージョンの直後の識別子を分離しました。識別子はASCII英数字とハイフン[0-9A-Za-z-]のみで構成されなければなりません。識別子は空であってはいけません。数値識別子には先行ゼロを含めてはならない(MUST NOT)。プレリリースバージョンは、関連する通常バージョンよりも優先順位が低くなります。プレリリースバージョンは、バージョンが不安定であり、関連する通常バージョンで示される意図された互換性要件を満たしていない可能性があることを示します。例:1.0.0-alpha、1.0.0-alpha1,1.0.0-0.3.7,1.0.0-x.7.z.92

これをCargoで使用するには、リリース前の識別子を追加します。これを使用するには

[package] 
name = "library" 
version = "0.1.1-beta.0" 

、あなたは特別バージョン要件にbetaを置くことによって、それにオプトインする必要があります:私はあなたが秒を必要とする場合は、簡単に増やすことができ、-beta.0を示唆

[dependencies] 
library = "0.1.1-beta" 

これをテストするには、I:

  1. ローカルcrates.ioサーバーをスピーンアップします
  2. 0123それはバージョン0.1.1-beta.0とクレート ライブラリをアップロード0.1.0
  3. に解決 - バイナリプロジェクトアプリlibrary = "0.1.0"を使用したバージョン0.1.0
  4. とクレートライブラリをアップロード
  5. an cargo updateapp - バージョンに変更されていません。 アプリlibrary = "0.1.1-beta"に変更
  6. cargo updateを走った - バージョン変更をしました。変更をしたバージョン - バージョン0.1.1-beta.1
  7. とクレートライブラリをアップロード
  8. アプリcargo update蘭。
+0

ファンタスティックな答え。ありがとうございました。 – Kornel

関連する問題