以下の内容はhttps://msyksphinz.hatenablog.com/entry/2025/01/27/040000より取得しました。


ハードウェア開発用の依存関係解決ツールBenderについて (3. 実際に使ってみる)

PULPの開発する、ハードウェア開発用の依存関係解決ツールBenderについて調査している。

github.com

repo_B がマイナーバージョンアップした場合:

次に、 repo_B が下位互換性を維持しつつマイナーバージョンアップした場合を考える。これを、マイナーバージョン 0.1.0として登録しよう。

module B
  (
   input  inA,
   input  inB,
   output outC
   );

always_comb begin
  outC = inA + inB;
end

endmodule // B

この状態で、 repo_A 側で最新の repo_B を取得してみよう。

この時、 repo_B の最新リポジトリをチェックアウトする方法がどうにも分からない。仕方がないので、 Bender.lockdeps をいったん削除してからやり直す必要がある。これについては良く分からない。

Bender.yml は以下のようにして依存関係を記述した。

dependencies:
  repo_B : { git: "git@github.com:msyksphinz-self/bender_repo_B.git", 
                       version: ">=0.0.0"}

つまり、 v0.0.0 以上 v1.0.0 以下の最新のバージョンを取得してくることになる。

$ rm -rf Bender.lock deps
$ bender update
$ less Bender.lock
packages:
  repo_b:
    revision: 910dbe4c4f8211e40e8484b2f5e3b4c9b6514097
    version: 0.1.0
    source:
      Git: git@github.com:msyksphinz-self/bender_repo_B.git
    dependencies: []

repo_Bが破壊的な変更を含むv1.0.0に更新された場合

次に、 repo_B が破壊的な変更を含んで v1.0.0に更新されたとしよう:

module B
  (
   input  inA,
   input  inB,
   output outC,
   output outD
   );

always_comb begin
  outC = inA + inB;
  outD = inA ^ inB;
end

endmodule // B

これにバージョンアップをしないために、 repo_ABender.yml に依存関係を追加する。

dependencies:
  repo_B : { git: "git@github.com:msyksphinz-self/bender_repo_B.git", 
                       version: ">=0.0.0,<1.0.0"}

つまり、破壊的な変更を含む v1.0.0 に変更しないように制約を加える。

こうすることで、変更を抑制する:

$ rm -rf Bender.lock deps
$ bender update
$ less Bender.lock
packages:
  repo_b:
    revision: 910dbe4c4f8211e40e8484b2f5e3b4c9b6514097
    version: 0.1.0
    source:
      Git: git@github.com:msyksphinz-self/bender_repo_B.git
    dependencies: []



以上の内容はhttps://msyksphinz.hatenablog.com/entry/2025/01/27/040000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14