web-dev-qa-db-ja.com

別の言語に移植する場合、リポジトリをフォークする必要がありますか?

私はフォークとオープンソースが初めてで、RustライブラリをSwiftに移植していますが、オリジナルをフォークする必要があるかどうかはわかりませんでした。リポジトリを作成して新しいファイルで置き換えるか、自分のリポジトリをアップロードして、READMEで既存のライブラリのSwiftポートであることを

3
swigganicks

1.技術的な観点

GitHubでリポジトリをフォークすると、独自のフォークリポジトリと元のリポジトリの間に双方向リンクが作成されます。

ソーシャルな側面(つまり、それが他の誰かの作業に基づいていることを示し、元の作成者にあなたのフォークについて知らせる)のほかに、主な目的は、リポジトリに加えた変更や改善の共有を、それらを元のプロジェクト。 forkに関するGitHubガイド は、これを豊富な詳細で説明しています。

あなたの特定のケースでは、あなたのSwiftバージョンはRustコミュニティと関係がないので、変更を取り戻すつもりはありません。したがって、フォークは役に立ちません。私見、それは混乱の原因になるかもしれないとさえ思います。

2.法的観点

元のライブラリのポートを別の言語に翻訳および適応して作成した場合、元のコードが1行もない場合でも、あなたの作品は派生作品となり、元の作者の著作権に従います。 。

「しかし、私はすべて自分で書き直しましたが、これはどのように著作権になるのでしょうか?」これは 非リテラルコピー の原理によるものです。

したがって、元のライブラリのライセンスで派生作業(「変更」)が許可されているかどうか、およびその条件下で確認する必要があります。ライセンスが何も伝えていない場合、または疑わしい場合は、元の作者に連絡することをお勧めします。

3.道徳的および実践的な側面

Caesarに属しているものをCaesarに返すこと、つまり、それが作者xyzからのライブラリabcのポートであることを明確に伝え、元のリンクへのリンクを提供することは、常に良いことです。 。

ライセンスがあなたにすべての権利をすでに与えているとしても、オリジナルの作者と連絡を取ることもお勧めの習慣です:結局のところ、作者がコミュニティにSwiftポート?

最後に重要なことですが、バージョン管理戦略について考えましたか?元のライブラリが進化した場合はどうなりますか?あなたはそれをフォローしますか?

免責事項:これはソフトウェア専門家の見解です。それは決して法的助言とはみなされないものとします。法的助言については、管轄区域の弁護士または資格のある法律顧問に相談してください。

5
Christophe

@Christopheと@Robertによる他の思慮深い議論に加えて、

フォークは、実際の問題から元のプロジェクトにマージするつもりがない場合でも、元のファイルの正式な承認を提供します。

オリジナルの著作権、さらにはオリジナルのソースも保持できます。翻訳を何らかのミラー構造(トップレベルの並列ツリーなど)として追加することをお勧めします。このようにして、プルリクエストは、実際的でなくても、実際には起こらない場合でも、理論的には実行できます。

これは、@ Christopheが必要に応じて呼び出す戦略のバージョン管理にも役立ちます。ベースを更新し、フォークに特定のバグやバグ修正があるかどうかを確認できます。

このようなことは、少なくとも概念実証として他の場所で行う必要があります。APIやその他のものがさまざまなプログラミング言語に移植され、場合によってはこのような第三者によって移植されることもあります。

2
Erik Eidt