Skip to content

Latest commit

 

History

History
132 lines (97 loc) · 10.6 KB

RELEASEja.md

File metadata and controls

132 lines (97 loc) · 10.6 KB

web3.js リリースガイドライン

バージョン番号の定義

web3.jsプロジェクトは、semver 2.0.0 仕様に従っています。

メジャー

メジャーバージョンは、Breaking Changeが導入された時点で増加させなければなりません。breaking changeの定義は、依存するプロジェクトがコードベース、ビルドパイプライン、またはテストを更新する必要があるものです。

マイナー

Minor は、新しい小さな機能が導入されるとすぐに増やされます。マイナーリリースは、依存するプロジェクトに影響を与えません。このようなリリースでは、プロジェクトが使用できる小さな拡張や機能のみが導入されます。

パッチ

パッチリリースは、必要なバグフィックスのみを含み、依存するプロジェクトに影響を与えるリスクは低くなっています。

バージョン管理の詳細については、semver 2.0.0 仕様書 に従ってください。

リリースプロセス ルール

メジャー

  1. リリースは RC バージョンとして、以下の指定されたトラックでリリースされる必要があります。
  2. マイナーな RC バージョンはテスト用に month の間だけリリースされます。
    1. リリースレビューの間、新しい変更が提案され、承認され、マージされない限り、コードは凍結されます。
      1. 変更は新しい RC リリースをトリガーし、レビュアーが新しい変更をテストするために必要な時間を確保するために、リリースクロックを week にセットする必要があります。
    1. プロジェクトリーダーは RC を Node プロジェクトと公開されたバンドルに対して、ブラウザーのコンテキストで手動でテストします。 minified bundle をブラウザコンテキストでテストします。外部のレビュアーは同じことを行ったかどうかを確認する必要があります。

マイナー

マイナーリリースはメジャーリリースのルールを継承していますが、テスト期間が1週間と短く、公開されたコードの変更に伴いリリースクロックが2日遅れます。

パッチ

2019年11月以降、Web3はpatchについてもminorのルールに従っており、一連の壊れないリリースの確立に役立っています。

プリリリース

リリース候補

リリース候補は rc トラックで公開され、もはやアクティブな開発中ではありません。リリース候補は semver 2.0.0 仕様 仕様で定義されているバージョン番号でリリースされます。

ベータ版リリース

ベータ版リリースは beta トラックで公開され、活発に開発が行われています。ベータ版リリースのバージョン番号は semver 2.0.0 ドキュメントで定義されているとおりです。

ロングタームサポート (LTS)

注意: このセクションはまだ決定されていないので、今のところ純粋に参考程度にお考えください。

より長い期間にわたって安全性を提供するために、LTSとタグ付けされたバージョンを持つことが重要です。

| リリース|ステータス|イニシャルリリース|LTS スタート|エンドオブライフ | :-----: | :-----------: | :-------------: | :-----------: | :---------: | | 1.x | LTS | 24. 2017年7月|23. 2019年7月|未定|。 | 2.x|非推奨|13. Jul. 2019 | 13. Jul. 2019 | 13. 2020年7月 | 3.x|非推奨|9. 2021年4月|9. 2021年4月|26. 2022年1月 | 4.x|開発|2022年4月|TBD. | 未定です。 |

非推奨ルール

プロジェクトの開発中には常に壊れるような変更が行われるため、対応するのに十分な時間をかけて、来るべき変更についてプロジェクトに通知する方法についてのルールを定義することが必要です。これは、私たちが破壊的な変更を導入することを計画していることを意味するものではありませんが、時にはそれが必要になることがあります。

    1. Deprecations は CHANGELOG とリリースの説明で発表されます。
    1. 非推奨の機能については、開発者向けドキュメント、関数ドキュメント、関連する型に非推奨であることを明記する必要があります。
    1. 非推奨の機能は、次の X (TBD) のマイナーバージョンアップまで非推奨のままです。

web3.js リリースプロセス

以下は web3.js の新バージョンをリリースするために必要な手順を説明したものです。コミュニティの標準と期待に沿うために、この手順に従っています。

リリース候補(RC)リリース手順

  1. GitHubのドラフトリリースを作成する。
    1. - 最低限、リリースノート、チェンジログ、その他重要なメモが含まれている必要があります。
    2. web3.jsのコントリビューター(@cgewecke)に、ドラフトリリースについて、完全性や文法などのレビューを依頼します。
  2. リリースブランチを作成する (例: release/1.2.7).
    1. CHANGELOG.md を更新してコミットする。
    2. セクションヘッダー [Unreleased] を一番下に移動。
      1. 次のリリース予定のバージョン番号を一番下に追加 (新しいチェンジログエントリーのプレースホルダーとして)。
    1. プロジェクトルートで、npm run build を実行し、次のようなコミットメッセージの後に変更をコミットします。1.0.0-rc.0 用にビルドします`。
    2. 次のステップでは、各パッケージもビルドされますが、Lernaはパッケージをビルドする前にタグ付きコミットを行います(そのため、パッケージは含まれません)
  3. リリースコミットとタグを作成 例:lerna version 1.2.7-rc.0 --no-push 1.
    1. (パッケージのバージョン番号を更新し、minifiedファイルをビルドします (1.x用)、リリースコミットとタグを作成します)
    1. リリースブランチをタグを付けて origin にプッシュします git push origin release/1.2.7 --follow-tags.
    1. ドラフトとしてリリースPRを作成(example)。
  4. 6.CIがグリーンであること/合格していることを確認します。
    1. (ここで、CIログを調査して、すべてが有効であること、結果が正しく報告されたことを確認します)
  5. npm run publish from-package -- --dist-tag rc` を実行します。
      1. Lernaはパッケージの数が多いため、うまくいかないことがあります。上記のコマンドでうまくいかない場合は、未公開のパッケージごとに以下を実行してください。lerna publish --scope="package-name" npm dist-tag add <package-name>@<version> rc) を実行してください。
  6. GitHubのリリースを公開します。
    1. リリースの公開後、GitHub WebhookがReadTheDocsのビルドを開始する。
    2. (ビルドは、ReadTheDocsの管理パネルで手動で起動する必要がある場合があります。バージョンが表示されない場合は、以前のバージョンのビルドを作成し、リストを更新してください)。
    3. 新バージョンをアクティベートします。
    1. 主要な貢献者にPRレビューを依頼する。 1. EthereumJSのChris (@cgewecke) 1. Nomic LabsのPatricio (@alcuadrado)。 1. Embarkのマイケルさん(@michaelsbradleyjr) 1. ニコラス・フロム・トリュフ (@gnidan) 1. ENSに触れる、または影響を与える場合:Nick Johnson (@Arachnid)
  7. コミュニティの議論と2人のレビュアーの承認を得るために1週間待ちます。 (リリースが緊急パッチの場合、重要度に応じて制限時間が短縮されることがあります)。

正式なリリース手順

  1. GitHub のドラフトリリースを rc リリースのテキストから作成します。
  2. リリースブランチ (例: release/1.2.7) をチェックアウトします。
  3. リリースコミットとタグを作成し、プッシュします。lerna version 1.2.7 --force-publish --no-push` とします。
  4. リリースブランチをタグを付けて origin にプッシュします git push origin release/1.2.7 --follow-tags.
  5. GitHubのリリースを公開する。
  6. GitHubのWebhookは、リリースが公開された後にReadTheDocsのビルドをトリガーする必要があります。
    1. (ビルドはReadTheDocsの管理パネルで手動で起動する必要がある場合があります。バージョンが表示されない場合は、以前のバージョンのビルドを作成して、リストを更新してください)。
    2. 新バージョンをアクティベートします。
      1. バージョンをデフォルトに設定します。
  7. npm run publish from-package` を実行する。
  8. リリースPRをマージする。
  9. リリースのアナウンスを共有する。 (Note: npm は地域によって遅延があるので、すべての人がすぐにリリースを見ることができないかもしれません。) 1.
    1. ツイッター
    2. Gitter
    3. イーサリアムJavaScriptコミュニティ(EJC)Discord
    4. Reddit
    5. 特定のプロジェクトにおけるリリースの重要性に応じて、以下のアドレスに書き込んでください。
      1. 0x の Fabio (@fabioberger)
      2. OpenZeppelin の Santiago (@spalladino) 1.
      3. WalletConnectのPedro (@pedrouid)
      4. FunFairのJoshさん(@joshstevens19)
      5. トリュフ、グノーシス、アラゴン、エンバーク、アルケミー、ブイドラー、リミックス