Dynamo のソースは、クローンを作成して他のユーザに提供するために、GitHub でホストされています。この章では、git を使用してリポジトリをクローン作成する方法、Visual Studio を使用してソース ファイルをコンパイルする方法、ローカル ビルドを実行およびデバッグする方法、および GitHub から新しい変更を取得する方法について説明します。
GitHub は、利用者間の変更を追跡し、作業を調整するためのバージョン管理システムである git に基づくホスト サービスです。git は、Dynamo のソース ファイルをダウンロードして、いくつかのコマンドでそれらを更新するために活用できるツールです。この方法を使用すると、更新のたびにソース ファイルをダウンロードし、手動で置き換えるといった面倒な作業を回避できます。git バージョン管理システムは、ローカルおよびリモート間のコード リポジトリの違いを追跡します。
Dynamo のソースは、次のリポジトリの DynamoDS GitHub でホストされます。 https://github.com/DynamoDS/Dynamo
Dynamo ソース ファイルです。
リポジトリ全体をクローン作成またはダウンロード
他の DynamoDS リポジトリを表示
Dynamo のソース ファイル
git 固有ファイル
リポジトリをクローン作成する前に、git をインストールする必要があります。インストール手順、および GitHub ユーザ名と電子メールの設定方法については、この簡易ガイドに従ってください。この例では、コマンド ラインで git を実行します。このガイドでは、Windows を使用することを前提としていますが、Mac または Linux で git を使用して Dynamo ソースをクローン作成することもできます。
クローン作成する Dynamo リポジトリの URL が必要です。これは、リポジトリのページの「クローンまたはダウンロード」ボタンにあります。URL をコピーしてコマンド プロンプトに貼り付けます。
「クローンまたはダウンロード」を選択する
URL をコピーする
git がインストールされていると、Dynamo リポジトリをクローン作成できます。はじめに、コマンド プロンプトを開きます。次に、フォルダの変更コマンド cd
を使用して、クローン作成するソース ファイルのあるフォルダに移動します。この例では、Github
というフォルダを Documents
に作成します。
cd C:\Users\username\Documents\GitHub
「username」をユーザ名と置き換えます
次の手順では、git コマンドを実行して、指定した場所に Dynamo リポジトリをクローン作成します。コマンドの URL は、GitHub の「クローンまたはダウンロード」ボタンをクリックして取得します。コマンド ターミナルでこのコマンドを実行します。これにより、Dynamo の最新のコードである Dynamoリポジトリのマスター ブランチをクローン作成します。このマスター ブランチには、最新バージョンの Dynamo コードが含まれます。このブランチは毎日変更されます。
git clone https://github.com/DynamoDS/Dynamo.git
クローン作成操作が正常に完了したことで、git が動作していることを確認できました。ファイルのエクスプローラで、クローン作成したフォルダに移動してソース ファイルを表示します。フォルダ構造は、GitHub の Dynamo リポジトリのマスター ブランチと同じに見える必要があります。
Dynamo のソース ファイル
git ファイル
ソース ファイルがローカル マシンにクローン化されたため、Dynamo の実行可能ファイルを構築できるようになりました。これを進めるには、Visual Studio IDE をセットアップし、.NET Framework と DirectX がインストールされていることを確認する必要があります。
完全な機能を備えた無料の IDE (統合開発環境) Microsoft Visual Studio Community 2015 をダウンロードしてインストールします(これ以降のバージョンでも動作する可能性があります)。
Microsoft .NET Framework 4.5 以降をダウンロードしてインストールします
ローカルの Dynamo リポジトリ(Dynamo\tools\install\Extra\DirectX\DXSETUP.exe
)から、Microsoft DirectX をインストールします
.NET および DirectX は、すでにインストールされている可能性があります。
インストールがすべて完了したら、Visual Studio を起動して、Dynamo\src
にある Dynamo.All.sln
ソリューションを開きます。
File > Open > Project/Solution
を選択します。Dynamo リポジトリを参照して
src
フォルダを開きます。ソリューション ファイル
Dynamo.All.sln
を選択します。
Open
を選択します。
ソリューションを構築する前に、いくつか設定が必要です。まず、Dynamo のデバッグバージョンを構築し、デバッグ中に Visual Studio が詳細情報を収集することで、それを開発に役立てることができます。また、AnyCPU をターゲットにします。
bin
フォルダ内のフォルダとして設定されます。
このサンプルでは、ソリューション設定として
Debug
を選択しますソリューション プラットフォームを
Any CPU
に設定します
プロジェクトを開いて、ソリューションを構築できます。このプロセスでは、実行可能な DynamoSandbox.exe ファイルを作成します。
プロジェクトをビルドすると、NuGet の依存関係が復元されます。
Build > Build Solution
を選択します。出力ウィンドウで正常にビルドされたことを確認します。次のように表示されます。
==== Build: 69 succeeded, 0 failed, 0 up-to-date, 0 skipped ====
Dynamo が正常にビルドを完了すると、DynamoSandbox.exe ファイルを含む bin
フォルダが Dynamo リポジトリに作成されます。このサンプルでは、デバッグ オプションを使用してビルドしているため、実行可能ファイルは bin\AnyCPU\Debug
に配置されます。これ実行すると、Dynamo のローカル ビルドが開きます。
先ほどビルドした DynamoSandbox の実行可能ファイルです。これを実行して Dynamo を起動します。
これで、Dynamo の開発を始めるための設定はほぼ完了しました。
その他のプラットフォーム(Linux や OS X など)向けに Dynamo を構築する手順については、Wiki ページを参照してください。
デバッグは、不具合や問題を特定し、分離、修正するプロセスです。Dynamo がソースから正常に構築されると、Visual Studio のいくつかのツールを使用して、DynamoRevit アドインなど実行中のアプリケーションをデバッグすることができます。ソース コードを分析して問題の原因を特定したり、現在実行中のコードを検討することができます。Visual Studio のコードのデバッグ方法およびナビゲーション方法の詳細については、「Visual Studio ドキュメント」を参照してください。
デバッグ用の 2 つのオプション、スタンドアロンの Dynamo アプリケーション、DynamoSandbox について説明します。
Visual Studio から直接 Dynamo をビルドして起動する
Dynamo の実行中のプロセスに Visual Studio をアタッチする
Visual Studio から Dynamo を起動すると、必要に応じてデバッグ セッションごとにソリューションが再構築されるため、ソースに変更を加えた場合は、デバッグ時に反映されます。Dynamo.All.sln
ソリューションを開いたまま、ドロップダウン メニューから Debug
、AnyCPU
、DynamoSandbox
を選択し、[Start
]をクリックします。これにより、Dynamo が構築され、新しいプロセス(DynamoSandbox.exe)が開始されて、Visual Studio のデバッガがアタッチされます。
Visual Studio から直接アプリケーションを構築して起動します
環境設定を
Debug
に設定しますプラットフォームを
Any CPU
に設定しますスタートアップ プロジェクトを
DynamoSandbox
に設定しますデバッグ プロセスを開始するには[
Start
]をクリックします
あるいは、特定のグラフやパッケージが開いている場合の問題をトラブルシューティングするために、すでに実行中の Dynamo プロセスをデバッグすることもできます。そのためには、Visual Studio でプロジェクトのソース ファイルを開き、Attach to Process
デバッグ メニュー項目を使用して実行中の Dynamo プロセスにアタッチします。
実行中のプロセスを Visual Studio にアタッチする
Debug > Attach to Process...
を選択します。
DynamoSandbox.exe
を選びます。
Attach
を選択します。
いずれの場合も、デバッグするプロセスにデバッガをアタッチしています。デバッガを起動する前または後に、コードが実行される直前にプロセスを一時停止させるブレーク ポイントをコードに設定することができます。デバッグ中にキャッチされていない例外が発生した場合、Visual Studio はソース コード内の発生した場所にジャンプします。これは、単純なクラッシュ、未処理の例外を検出し、アプリケーションの実行フローを理解できる効率的な方法です。
DynamoSandbox のデバッグ中に、Color.ByARGB ノードのコンストラクタにブレーク ポイントを設定します。このコンストラクタにより、ノードがインスタンス化されたときに Dynamo プロセスが一時停止します。このノードが例外をスローしたり、Dynamo がクラッシュする原因となっている場合は、コンストラクタの各行をステップごとに調べて、問題が発生している場所を特定することができます。
ブレーク ポイント
現在実行中の関数と以前の関数呼び出しを示すコール スタック
次のセクション「ソースから DynamoRevit をビルドする」では、デバッグの特定のサンプルについて説明し、ブレーク ポイントの設定、コードのステップ実行、コール スタックの読み込み方法について説明します。
Dynamo ソースは GitHub でホストされていることから、ローカル ソース ファイルを更新する最も簡単な方法は、git コマンドを使用して変更をプルすることです。
コマンド ラインを使用して、現在のフォルダを Dynamo リポジトリに設定します。
cd C:\Users\username\Documents\GitHub\Dynamo
"username"
をユーザ名に置き換えます。
次のコマンドを実行して、最新の変更を取得します。
git pull origin master
ここでは、ローカル リポジトリがリモートからの変更によって更新されていることが確認できます。
更新プログラムの取得に加えて、さらに 4 つの git ワークフローについて理解しておく必要があります。
Dynamo リポジトリをフォークして、元のリポジトリとは別にコピーを作成します。ここで行った変更は元のリポジトリには影響せず、プル リクエストを使用して更新を取得または送信することができます。フォークは git コマンドではありませんが、GitHub が追加するワークフローです。フォーク、プル リクエスト モデルは、オープン ソース プロジェクトにオンラインで貢献するための最も一般的なワークフローの 1 つです。Dynamo に寄与したいと考えている場合は、学習する価値があります。
ブランチ - ブランチの他の作業か切り離して、実験や新機能に関して作業します。これにより、プル リクエストの送信が容易になります。
作業単位の完了後、および元に戻したい可能性のある変更を行った後は、頻繁にコミットを行ってください。コミット レコードはリポジトリに変更され、メインの Dynamo リポジトリにプル リクエストを行うときに表示されます。
メインの Dynamo リポジトリに正式に変更を提案する準備ができたら、プル リクエストを作成します。
Dynamo チームには、プル リクエストの作成に関する具体的な手順があります。対処する項目の詳細については、このドキュメントの「プル リクエスト」セクションを参照してください。
git コマンドのリファレンス リストについては、ドキュメント ページを参照してください。
DynamoRevit ソース ファイルも、開発者が関与してベータ版をビルドできるように DynamoDS の GitHub にホストされています。ソースから DynamoRevit をビルドする場合は、通常は Dynamo と同じプロセスを実行しますが、重要な詳細がいくつかあります。
DynamoRevit は Dynamo のアセンブリを参照するため、一致する NuGet パッケージを使用してビルドする必要があります。たとえば、DynamoRevit 2.x は Dynamo 1.3 にロードされません。
DynamoRevit は Revit のバージョンに固有です。たとえば、DynamoRevit 2018 ブランチは Revit 2018 で実行する必要があります。
このガイドでは、次のバージョンを使用します。
Revit 2023
ブランチ Revit2023
上の最新の DynamoRevit ビルド
最新の Dynamo ビルド
正常なビルドを確実にするために、この説明で使用する Dynamo と DynamoRevit の両方のリポジトのクローンを作成してビルドします。
注: Dynamo 1.x と DynamoRevit 1.x をビルドする場合にのみ DynamoRevit の前に Dynamo を手動でビルドする必要があります。これより新しいバージョンの DynamoRevit リポジトリでは、NuGet パッケージ マネージャを使用してビルドに必要な Dynamo の依存関係を取得します。DynamoRevit 2.x のビルドでは Dynamo を手動でプルする必要はありませんが、DynamoRevit addin
を実際に実行するには別の場所にコア dlls
が必要であるため、やはり Dynamo のプルおよびビルドが必要です。詳細については、「」を参照してください。
DynamoRevit プロジェクトのコードは、GitHub で、Dynamo のソース コードとは別のリポジトリにあります。このリポジトリには、Revit 固有のノードのソース ファイルと、Dynamo をロードする Revit アドインが含まれています。Revit の異なるバージョン(2016、2017、2018 など)の DynamoRevit のビルドは、リポジトリ内でブランチとして構成されています。
DynamoRevit のソースは、 にホストされています。
リポジトリをクローン作成またはダウンロードします。
DynamoRevit のブランチで Revit のバージョンを参照します。
Dynamo リポジトリのプルと同様のプロセスで、git clone コマンドを使用して DynamoRevit のクローンを作成し、Revit のバージョンに一致するブランチを指定します。まず、コマンド ライン インタフェースを開き、ファイルのクローンを作成する場所に現在のフォルダを設定します。
cd C:\Users\username\Documents\GitHub
で、現在のフォルダを変更します。
username
をユーザ名に置き換えます。
これで、リポジトリのクローンをこのフォルダに作成できました。リポジトリのブランチを指定する必要がありますが、クローン作成後にこのブランチに切り替えできます。
git clone https://github.com/DynamoDS/DynamoRevit.git
で、リポジトリのクローンをリモート URL から作成すると、既定でマスター ブランチに切り替わります。
リポジトリのクローン作成が完了したら、現在のフォルダをリポジトリ フォルダに変更し、インストールされている Revit のバージョンと一致するブランチに切り替えます。この例では、Revit の RC2.13.1_Revit2023 を使用しています。すべてのリモート ブランチは、GitHub ページのブランチのドロップダウン メニューで確認できます。
cd C:\Users\username\Documents\GitHub\DynamoRevit
で、フォルダが DynamoRevit に変更されます。
git checkout RC2.13.1_Revit2023
で、現在のブランチが RC2.13.1_Revit2023
に設定されます。
git branch
で、現在のブランチと、ローカルに存在するその他のブランチが表示されます。
アスタリスクが付いたブランチが、現在チェック アウトされているブランチです。
Revit2018
ブランチが表示されているのは、以前にチェック アウトしているため、ローカルに存在します。
Visual Studio でのプロジェクトのビルドの際に、確実に Revit の正しいバージョンのインストール フォルダ内のアセンブリ(具体的には、RevitAPI.dll
および RevitAPIUI.dll
)を参照するには、リポジトリの正しいブランチを選択することが重要です。
restorepackages.bat
を右クリックして、Run as administrator
を選択します。
パッケージが正常に復元された場合は、最新のベータ版 NuGet パッケージを含む packages
フォルダが src
フォルダに追加されます。
最新のベータ版 Dynamo NuGet パッケージ
パッケージが復元された状態で、src
にある Visual Studio ソリューション ファイル DynamoRevit.All.sln
を開き、ソリューションをビルドします。最初はビルドで AssemblySharedInfo.cs
が見つからない場合があります。その場合は、ビルドを再実行するとこの問題が解決します。
Build > Build Solution
を選択します。出力ウィンドウでビルドが正常に作成されたことを確認します。「
===== Build: 13 succeeded, 0 failed, 0 up-to-date, 0 skipped =====
」というメッセージが表示されるはずです。
C:\ProgramData\Autodesk\Revit\Addins\2023
にある Revit のアドイン フォルダに Dynamo.addin
ファイルを作成します。あるバージョンの DynamoRevit が既にインストールされているため、新しいビルドを指定するように既存のファイルを編集するのみです。
<Assembly>...</Assembly>
内で DynamoRevitDS.dll
のファイル パスを指定します。
または、特定のアセンブリの代わりに、アドインでバージョン セレクタをロードできます。
<Assembly>...</Assembly>
ファイル パスを DynamoRevitVersionSelector.dll
に設定します
<FullClassName>...</FullClassName>
で、上記のアセンブリ要素パスを使用して指したアセンブリからインスタンス化するクラスを指定します。このクラスが、アドインのエントリ ポイントになります。
さらに、Revit に付属している既存の Dynamo を削除する必要があります。これを行うには、C:\\Program Files\Autodesk\Revit 2023\AddIns
で、Dynamo を含む 2 つのフォルダ(DynamoForRevit
および DynamoPlayerForRevit
)を削除します。削除できますが、元の Dynamo for Revit を復元する必要がある場合は別のフォルダにバックアップすることもできます。
次の手順では、Dynamo Core アセンブリのファイル パスを、DynamoRevit の bin
フォルダ内の Dynamo.config
ファイルに追加します。DynamoRevit は、アドインを Revit で開いたときに、これらのアセンブリをロードします。この config ファイルを使用すると、さまざまなバージョンの Dynamo Core に DynamoRevit アドインを指定することができ、開発と変更のテストを Core と DynamoRevit の両方で実施できます。
コードは次のようになります。
bin
フォルダのフォルダ パスを <add key/>
に追加します
このコードが DynamoRevit で適切に動作するように、この手順の前に Dynamo のクローンを作成してビルドしました。フォルダ パスはこのビルドを指します。
Revit を開くと、[管理]タブに Dynamo アドインがあるはずです。
Manage
を選択します。Dynamo アドインのアイコンをクリックします。
DynamoRevit のインスタンス
エラー ダイアログ ウィンドウにアセンブリが見つからないと表示される場合は、構築された DynamoCore のバージョンと実行時にロードするバージョンが一致していない可能性があります。たとえば、DynamoCore の最新の 2.0 ベータ版パッケージに対応する DynamoRevit は、Dynamo 1.3 dll を使用して起動しようとしても動作しません。両方のリポジトリが同じバージョンであり、DynamoRevit が一致するバージョンの NuGet 依存関係をプルしていることを確認します。これらは、DynamoRevit リポジトリの package.json
ファイルで定義されています。
前のセクション「ソースから Dynamo をビルドする」では、Visual Studio でのデバッグと、プロセスに Visual Studio をアタッチする方法について簡単に説明しました。例として、Wall.ByCurveAndHeight ノードの例外を使用して、プロセスへのアタッチ、ブレーク ポイントの設定、コードのステップ実行、およびコール スタックを使用した例外のソースの決定方法について説明します。これらのデバッグ ツールは、一般的に .net 開発ワークフローに適用され、このガイド以外でも役立ちます。
ブレーク ポイントをソース コード内の行に設定すると、アプリケーションがその行を実行する前に一時停止します。ノードが原因で DynamoRevit がクラッシュしたり、予期しない結果が返された場合は、ノードのソースにブレーク ポイントを追加してプロセスを一時停止し、コードにステップ インして、問題の原因が見つかるまで実行中の変数の値を検査できます
コードをステップ実行すると、ソースを 1 行ずつ確認できます。関数を 1 つずつ実行したり、関数呼び出しにステップ インしたり、現在実行中の関数から抜けることができます。
コール スタックでは、プロセスが現在実行している関数が表示され、この関数呼び出しを起動したそれまでの関数呼び出しも表示されます。Visual Studio には、これを表示するコール スタック ウィンドウがあります。たとえば、ソース コードの範囲外で例外に達した場合には、コール スタックに呼び出しコードへのパスが表示されます。
Wall.ByCurveAndHeight ノードは、curve 入力として PolyCurve を指定すると例外をスローし、「To BSPlineCurve が実装されていません」というメッセージが表示されます。デバッグを使用すると、ノードがこのジオメトリ タイプを曲線パラメータの入力として受け取らない理由が正確にわかります。この例では、DynamoRevit が正常にビルドされ、Revit のアドインとして実行できるものとします。
例外をスローしている Wall.ByCurveAndHeight ノード
最初にソリューション ファイル DynamoRevit.All.sln
を開き、Revit を起動して、DynamoRevit アドインを起動します。次に、Attach to Process
ウィンドウで Revit プロセスに Visual Studio をアタッチします。
使用可能なプロセスとして表示するには、Revit と DynamoRevit を実行している必要があります。
Debug > Attach to Process...
を選択してAttach to Process
ウィンドウを開きます。
Transport
をDefault
に設定します。
Revit.exe
を選択します。
Attach
を選択します。
Visual Studio を Revit にアタッチした状態で、Wall.cs
にある Wall.ByCurveAndHeight ソース コードを開きます。これは、ファイルの Public static constructors
領域の Libraries > RevitNodes > Elements
の下にある Solution Explorer で見つけることができます。壁タイプのコンストラクタでブレーク ポイントを設定します。これにより、Dynamo でノードを実行したときにプロセスが中断され、コードの各行を個別にステップ実行できます。通常、Dynamo の Zero Touch タイプのコンストラクタは、By<parameters>
で始まります。
Wall.ByCurveAndHeight のコンストラクタを含むクラス ファイル
行番号の左をクリックするか、コードの行を右クリックして
Breakpoint > Insert Breakpoint
を選択し、ブレークポイントを設定します。
ブレークポイントを設定して、プロセスで Wall.ByCurveAndHeight 関数を実行する必要があります。この関数は、ワイヤをいずれかのポートに再接続することで、Dynamo で再実行でき、ノードが強制的に再実行されます。Visual Studio でブレークポイントにヒットします。
ブレークポイントのアイコンは、ヒットすると変化します。
次に始まるメソッドを示すコール スタック ウィンドウ
ここで、例外にヒットするまでコンストラクタの各行をステップ オーバーします。黄色でハイライト表示されたコードが、次に実行されるステートメントです。
コードをナビゲートするためのデバッグ ツール
Step Over
を押してハイライト表示されたコードを実行すると、関数が返された後に実行が一時停止します黄色のハイライトと矢印で示された、次に実行するステートメント
関数をステップ実行し続けると、DynamoRevit ウィンドウに表示された例外にヒットします。コール スタック ウィンドウを見ると、例外が元は Autodesk.Revit.CurveAPIUtils.CreateNurbsCurve
というメソッドからスローされたことがわかります。ここでは例外が処理されているため、Dynamo はクラッシュしませんでした。デバッグ プロセスによって、ソース コード内の別のメソッドが表示されて、問題のコンテキストがわかりました。
Walls.cs
で例外が発生するステートメントにヒットした際に、デバッグ プロセスにより、ProtoToRevitCurve.cs
内のユーザ コードで問題の原因を詳しく調べることができます。
ProtoToRevitCurve.cs
内の例外が発生するステートメント。コール スタックで、例外がユーザ コード以外から発生していることが確認できます。
例外に関する情報を表示するポップアップ ウィンドウ。
このプロセスは、作業中のソース ファイルに適用できます。Dynamo Studio 用の Zero-Touch ノードのライブラリを開発している場合は、ライブラリのソースを開いて Dynamo プロセスをアタッチするとノード ライブラリをデバッグできます。すべてが完全に機能していても、デバッグは、コードを調べて動作の仕組みを理解するのに最適な方法です。
このプロセスは、Dynamo の変更をプルするプロセスとほとんど同じですが、正しいブランチにいることを確認する必要があります。DynamoRevit リポジトリで git branch
コマンドを使用して、ローカルで使用可能なブランチと現在チェック アウトされているブランチを確認します。
cd C:\Users\username\Documents\GitHub\DynamoRevit
で、現在のフォルダを DynamoRevit リポジトリに設定します。
git branch
で、正しいブランチ RC2.13.1_Revit2023
にいることを確認します。
git pull origin RC2.13.1_Revit2023
で、リモートの元の RC2.13.1_Revit2023
ブランチから変更をプルします。
「origin」は単にクローンの作成元の URL を指しています。
ここでは、現在どのブランチにいるか、またどのブランチからプルするかに注意し、たとえば、
RC2.13.1_Revit2023
からRevit2018
に変更をプルしないようにします。
「ソースから Dynamo をビルドする」で説明したように、DynamoRevit リポジトリに対する変更を送信できる場合は、「プル リクエスト」セクションに記載されている Dynamo チームのガイドラインに従って、プル リクエストを作成できます。
リポジトリをビルドする前に、src
フォルダにある restorepackages.bat
ファイルを使用して NuGet パッケージを復元する必要があります。この bat ファイルは、 パッケージ マネージャを使用して、DynamoRevit で必要な Dynamo Core のビルド済みのバイナリをプルします。Dynamo Core を変更せずに DynamoRevit のみを変更する場合は、バイナリを手動でビルドすることもできます。これにより、より迅速に作業を開始できます。このファイルは必ず管理者として実行してください。
Revit には、DynamoRevit を認識するためのアドイン ファイルが必要です。で自動的に作成される場合もあります。開発の際には、使用する DynamoRevit のビルドを指定するアドイン ファイル、具体的には DynamoRevitDS.dll
アセンブリを手動で作成する必要があります。また、DynamoRevit で Dynamo のビルドを指定する必要があります。
プロセスにアタッチすると、実行中のアプリケーションが Visual Studio にリンクされ、デバッグできます。DynamoRevit のビルドで発生する動作をデバッグする場合は、Visual Studio で DynamoRevit ソース ファイルを開き、DynamoRevit アドインの親プロセスである Revit.exe
プロセスをアタッチできます。Visual Studio は、(.pbd
)を使用して、DynamoRevit が実行しているアセンブリとソース コードとの間に接続を作成します。
「」では、コール スタックについて詳しく説明しています。
これはオープン ソース ライブラリではないため、変更を加えることはできませんが、詳細な情報が得られたため、GitHub の を提出して問題を詳しくレポートしたり、プル リクエストを行ってこの問題の回避策を提案できます。