ローカルにある依存プロジェクト・パッケージを参照する [Elixir]
自分用メモ
自分が書いているライブラリが依存しているプロジェクト・パッケージを
ローカルにおいて、依存パッケージのソースをちょっと編集して動作確認したい時がある。
Elixir でも絶対できるはず!と思ってたけど、調べずにごまかしながらやってきた。
今回、行き詰まって調べた。
ついでに、他のプログラミング言語でも調べた。
相対パスが指定できるところは、大体 github や gitlab のリポジトリの URL も受け付けるようになっている。
Elixir
--------
https://qiita.com/hakaicode/items/6466ee9c2acefc7d8899
例えば、依存するのが foo というプロジェクトなら mix.exs に
{:foo, path: "../foo", override: true},
とか書いて、
foo の project で
mix deps.get
mix archive.install
と、すればいいみたい。
Go
--------
go get でダウンロードされた ~/go/pkg/mod/の下のソースを編集するとやりたいことができるけど、
go mod edit -replace とか、 go.mod を直接書き換えるとかして、指定パスをモジュールの参照パスにできるみたい
https://www.asobou.co.jp/blog/web/go-mod-replace
go.mod を書き換えるのは綺麗だけど、覚えてられないし、戻すの忘れそう。
Python
--------
pip instal -e パス
でできるけど、自分は、 venv 環境 pip install した site-package の中のファイルを編集してる。
複数ディレクトリに置かれたパッケージをインストールするときに便利な時はあると思うけど自分はやったことない。
github のリポジトリにあるパッケージを
pip instal -e git+https://github.com/some/package
とかしたことはある。
Rust
--------
cargo.toml の
[dependencies] に
bar = { path = "../bar" }
と書けばいい。
https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html
自分が書いているライブラリが依存しているプロジェクト・パッケージを
ローカルにおいて、依存パッケージのソースをちょっと編集して動作確認したい時がある。
Elixir でも絶対できるはず!と思ってたけど、調べずにごまかしながらやってきた。
今回、行き詰まって調べた。
ついでに、他のプログラミング言語でも調べた。
相対パスが指定できるところは、大体 github や gitlab のリポジトリの URL も受け付けるようになっている。
Elixir
--------
https://qiita.com/hakaicode/items/6466ee9c2acefc7d8899
例えば、依存するのが foo というプロジェクトなら mix.exs に
{:foo, path: "../foo", override: true},
とか書いて、
foo の project で
mix deps.get
mix archive.install
と、すればいいみたい。
Go
--------
go get でダウンロードされた ~/go/pkg/mod/の下のソースを編集するとやりたいことができるけど、
go mod edit -replace とか、 go.mod を直接書き換えるとかして、指定パスをモジュールの参照パスにできるみたい
https://www.asobou.co.jp/blog/web/go-mod-replace
go.mod を書き換えるのは綺麗だけど、覚えてられないし、戻すの忘れそう。
Python
--------
pip instal -e パス
でできるけど、自分は、 venv 環境 pip install した site-package の中のファイルを編集してる。
複数ディレクトリに置かれたパッケージをインストールするときに便利な時はあると思うけど自分はやったことない。
github のリポジトリにあるパッケージを
pip instal -e git+https://github.com/some/package
とかしたことはある。
Rust
--------
cargo.toml の
[dependencies] に
bar = { path = "../bar" }
と書けばいい。
https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html