タグ

2020年6月8日のブックマーク (3件)

  • Bazelとモノレポ

    エントリは オリジナル の一部を再編集して掲載しています。(2020/03/31) モノレポのメリット gitでこのようなリポジトリ運用をされている方はそんなに多くはないのではないでしょうか? むしろこのような運用は嫌われる傾向にあるかもしれません。 それでもモノレポを使うのには理由があります。 リファクタリングが楽 コードレビューが楽 コンフリクト地獄に陥らない 一つのリポジトリですべて手に入る そして リポジトリに関わる人にすべてを触ってほしい という思いもあります。 一方、モノレポを実現するためにはいくつか工夫をする必要があります。 今までモノレポで運用をしていなかった場合ビルドツール等はモノレポに耐えられないものが多いと思います。 モノレポの運用をする場合はその点を考え直す必要があります。 モノレポを運用していくにあたって大事なのはビルドツールだと考えています。 複数のソフトウェ

  • 依存ライブラリは常にvendoringする

    BazelでGoの依存ライブラリを管理する方法は2つあります。 go.mod からWORKSPACEファイルを生成する vendorディレクトリを使う 以前はリポジトリに go.mod ファイルが1つしかない(単一モジュール構成のリポジトリ)の場合は前者を、 複数の go.mod ファイルがある場合は後者の方法を取るのがいいと思っていました。 しかし最近は常に後者を選択する方がいいと思っています。 見えない依存 Bazel で Go をビルドする際は rules_go と gazelle を利用していることでしょう。 rules_go 自身が 依存しているライブラリ もBazelによって管理されるため同じライブラリに自分のソフトウェアが依存している場合は競合します。 うまく競合しなかった場合は問題ありません。その時は幸せに利用できます。 ですが、競合して2つのバージョンを保持しないといけな

  • Bazelの使い方詰め合わせ

    エントリは オリジナル の一部を再編集して掲載しています。 (2020/03/31) 前の記事 ではBazelについて簡単に紹介しました。 ここでは更に1歩、Bazelの使い方に踏み込んでみたいと思います。 自分のリポジトリに含まれている色々なツール等をビルドしてshipするにあたって分かりづらかったりした点を中心に説明したいと思います。 すべてを網羅できているわけではありませんし、あくまで自分のリポジトリの頻出パターンなので皆さんのリポジトリでは違った点で悩むかもしれません。 Bazelを使い始めようという時に思い出して見ていただけるとよいかもしれません。 今回もサンプルコードは前回と同じリポジトリに置いてあります。 https://github.com/f110/bazel-example コンテナを作る サンプルリポジトリの helloworld1 はコンテナの作成もできるようにな