https://github.com/golang/go/issues/15201#issuecomment-208602586の裏側
cmd / goとその仲間が通常のファイルを活用して、プラットフォームに依存しない方法でGOPATHパッケージの解決中にリポジトリ内のシンボリックリンクのような動作をシミュレートする手段を提案します。
https://docs.google.com/document/d/1n5y3mZPs_4PjI80a0vZEaHLe7r9PeiiE9xsIrQFT8Is/edit
彼の最初の考えをオフラインで共有してくれた@kardianosに感謝します
_「シンボリックリンク」という名前は、それ自体で良い議論を促すためにバインドされています。提案の核心とは別に、名前/名前付けについて議論できることを願っています_
いくつかのコメント/質問:
@ kostya-sh
「リポジトリ」という用語は定義されていません
最初の脚注は詳細を示しています-これはここで想定されているのと同じ定義です。 しかし、「リポジトリ」がどこかで正式に定義されているかどうかという疑問がまだ残っていることに同意しますか?
GOPATHのソースコードがVSCからのものではない場合、またはディレクトリのチェックアウトをサポートするSubversionからのものでない場合はどうなりますか?
未解決の質問-これまでのところ、「リポジトリ」の一部であるコードについてのみ考慮されてきたことを認めます。 この質問を参照する「未解決の質問」セクションを下部に追加しました。
リポジトリに複数のパブリックバイナリが含まれている場合は、依存関係を複数回コピーする必要はありません。 ベンダーの依存関係は、cmd/vendorの下に配置できます
実際、これはバイナリ間でベンダーコードを共有するための1つのアプローチです。 ただし、「シンボリックリンク」アプローチは、その「ベンダー」をライブラリコードと共有するアプローチを容易にするのに役立ちます(次のポイントを参照)。
私の知る限り、この提案は「同じリポジトリ内のライブラリとプログラム」の問題を解決するものではありません。
この提案自体はそうではありません。 しかし、「動機付けの例」セクションからリンクされているリポジトリは、「シンボリックリンク」とGOPATH拡張の組み合わせを使用してその問題を解決する方法の概要を示しています。
シンボリックリンクは問題が多すぎます。 それらを許可するのは賢明ではないようです。