ラッシュとChangelogの生成-パート2
私は、私が単独でそのラッシュを望んでいないと思いますuses commit messages 変更ログ生成用.
それは実際には難しくない😎).
要件 変更ログファイルを生成するためにコミットメッセージを使いたい.私はすでに正しいフォーマットを確実にするためにCommitLintとそれらをlint. フォローしたいconventional commits 変更ログを生成する際の仕様、およびバージョンをバインディングする
FIX :型のコミット
feat :タイプfeatのコミットはCodeBaseに新しい機能を導入します
変化を破る:フッターを持つコミット 他の種類 私のコミットがそうでないならば 私が同じメッセージでコミットしているなら、私は変更ファイル生成をスキップしたいです. 私はそれを確認したい
デザイン
トリガ
パーフェクト.私はとにかく最後の2つのコミットを取りたいです、そして、私のコードのどんな失敗もコミットに影響しないことを確認したいです.
カスタムラッシュコマンド
フックはカスタムラッシュコマンドを呼び出します.カスタムコマンドを使用する利点の一つは、すべての必須パッケージをインストールするautoinstallersから利益を得ることです
オートインストーラ
ラッシュautoinstaller私のスクリプトで必要なパッケージをインストールする気になります.私はレポのルートにそれらをインストールしたくないです、これはラッシュがどのように働くかではありません.
そして最後に、スクリプトそのもの
JavaScriptスクリプト.まあ、はい、ビジネスロジック.
マイツールボックス
私はここでのカップルが必要です.
@microsoft/rush-lib で
@rushstack/node-core-library 提供
gitlog : ノードのGitログパーサー.複数の行にまたがってもコミットを正しく読むための解決策が必要だからです.
recommended-bump 従来のコミット仕様を尊重する推奨バンプを計算します.
レディ?安定した?行け!
オートインストーラ
あなたはドリルを知っている.クリエイト
一般的な\autoinstallers\ラッシュchangemanager\パッケージ.JSON
カスタムコマンド
追加する
一般的な\config\ラッシュ\コマンドライン.JSON
脚本
ラッシュchangefilesを作成します.一般的な\スクリプトフォルダのjsファイル.
ビジネスロジックの実装に飛び込む前に、すべての作業を確実にしましょう.コンソール出力に「ラッシュchangefiles . js」を印刷するだけです.
一般的な\スクリプト\ラッシュchangefiles.js
テスト
新しい呼び出し
autoinstallerジョブは、最初に実行されます
さて、不足している唯一のものは、実際のビジネスロジックです.
ソースコード
ソースコードを見つけることができますGitHub .
それは実際には難しくない😎).
要件
FIX :型のコミット
fix
あなたのコードベースのバグをパッチしますPATCH
セマンティックバージョン管理において.feat :タイプfeatのコミットはCodeBaseに新しい機能を導入します
MINOR
セマンティックバージョン管理において.変化を破る:フッターを持つコミット
BREAKING CHANGE:
, または!
タイプ/スコープの後に、MAJOR
セマンティックバージョン管理において.壊れた変化はどんなタイプのコミットの一部でありえます.fix:
and feat:
例えば、@ commit lint/config通常推奨を許可しますbuild:
, chore:
, ci:
, docs:
, style:
, refactor:
, perf:
, test:
, など.fix:
, feat:
, または壊れた変更、ラッシュ変更ファイルを生成したくない.rush change --verify
コードをプッシュする前にパスします.私は自分のPRが失敗することを知りたくない.なぜなら、私はそれを生成するのを忘れてしまったからだ.デザイン
トリガ
post-commit
This hook is invoked by
git commit
. It takes no parameters, and is invoked after a commit is made.
This hook is meant primarily for notification, and cannot affect the outcome of git commit.
パーフェクト.私はとにかく最後の2つのコミットを取りたいです、そして、私のコードのどんな失敗もコミットに影響しないことを確認したいです.
カスタムラッシュコマンド
フックはカスタムラッシュコマンドを呼び出します.カスタムコマンドを使用する利点の一つは、すべての必須パッケージをインストールするautoinstallersから利益を得ることです
オートインストーラ
ラッシュautoinstaller私のスクリプトで必要なパッケージをインストールする気になります.私はレポのルートにそれらをインストールしたくないです、これはラッシュがどのように働くかではありません.
そして最後に、スクリプトそのもの
JavaScriptスクリプト.まあ、はい、ビジネスロジック.
マイツールボックス
私はここでのカップルが必要です.
@microsoft/rush-lib で
RushConfiguration
「ラッシュ. JSON」設定ファイルに基づくリポジトリのラッシュ設定を表すクラスです.ProjectChangeAnalyzer
これは変更されたプロジェクトのリストを取得します注意:これはまだプレビューです.このAPIを生産環境で使用しないでください.ChangeManager
ラッシュの変更ファイルとプログラム的に相互作用するのを助けるクラス.@rushstack/node-core-library 提供
Terminal
and ConsoleTerminalProvider
呼び出すときに必要なクラスprojectAnalyzer.getChangedProjectsAsync
. gitlog : ノードのGitログパーサー.複数の行にまたがってもコミットを正しく読むための解決策が必要だからです.
recommended-bump 従来のコミット仕様を尊重する推奨バンプを計算します.
レディ?安定した?行け!
オートインストーラ
あなたはドリルを知っている.クリエイト
rush-changemanager
次のコマンドを使用したautoinstallerrush init-autoinstaller --name rush-changemanager
cd common/autoinstallers/rush-changemanager
pnpm add @microsoft/rush-lib
pnpm add @rushstack/node-core-library
pnpm add gitlog
pnpm add recommended-bump
# When you are finished, run this command to ensure that the
# common/autoinstallers/rush-commitizen/ppnpm-lock.yaml file is up to date
rush update-autoinstaller --name rush-changemanager
次のパッケージが必要です.JSONファイル一般的な\autoinstallers\ラッシュchangemanager\パッケージ.JSON
{
"name": "rush-changemanager",
"version": "1.0.0",
"private": true,
"dependencies": {
"@microsoft/rush-lib": "^5.62.4",
"@rushstack/node-core-library": "^3.45.0",
"gitlog": "^4.0.4",
"recommended-bump": "^1.5.2"
}
}
カスタムコマンド
追加する
changefiles
コマンド行へのコマンド.JSONファイル一般的な\config\ラッシュ\コマンドライン.JSON
{
"$schema": "https://developer.microsoft.com/json-schemas/rush/v5/command-line.schema.json",
"commands": [
{
"name": "changefiles",
"commandKind": "global",
"summary": "",
"autoinstallerName": "rush-changemanager",
"shellCommand": "node common/scripts/rush-changefiles.js"
}
],
//...
}
脚本
ラッシュchangefilesを作成します.一般的な\スクリプトフォルダのjsファイル.
ビジネスロジックの実装に飛び込む前に、すべての作業を確実にしましょう.コンソール出力に「ラッシュchangefiles . js」を印刷するだけです.
一般的な\スクリプト\ラッシュchangefiles.js
console.log("rush-changefiles.js")
テスト
新しい呼び出し
changefiles
コマンドrush changefiles
ラッシュが新しいコマンドを実行し、autoinstallerによって必要とされるすべてのパッケージをインストールし、コンソールに「ラッシュchangefiles . js」を出力することがわかります.autoinstallerジョブは、最初に実行されます
rush changefiles
再び、それははるかに速く完了しますさて、不足している唯一のものは、実際のビジネスロジックです.
ソースコード
ソースコードを見つけることができますGitHub .
Reference
この問題について(ラッシュとChangelogの生成-パート2), 我々は、より多くの情報をここで見つけました https://dev.to/kkazala/rush-and-changelog-generation-part-2-5g11テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol