2009-04-24 4 views
3

私が働いている会社はいくつかの困難に直面しています。私たちの未来は不透明です。ここ数年、私たちはコミュニティアプリとソーシャルネットワークを構築するためのフレームワークを開発しました。私たちは、このイニシアチブが完全に失われるべきではなく、コミュニティにとって有益かもしれないと考えて、オープンソースにすることを決めました。既存のコードベースをオープンソース化する方法は?

  • がどのように原作者がまだ貢献および/またはいくつかのコンサルティングを行うことができることを知って、最も適切なライセンスを選択する:

    私はこのプロセスに関するいくつかの質問がありますか?
  • コードベースで必要な変更は何ですか?
  • この幅広いトピックをカバーする既存のドキュメント/書籍の一部を紹介していますか?

私は、これらの質問は非常にオープンであり、簡単な答えはないことを知っていますが、同様の経験を持つ一部の人から聞きたいことがあります。

ありがとうございます!

答えて

6

ライセンスについては、ライセンスの目標を尋ねる必要があります。あなたの目標は、コードを返す人々のコミュニティを構築し、他の誰かがコードの独自のフォークを作成させないようにすることですか?その後、GPLは選択するのに適したライセンスになります。あなたは著作権を保持し、オープンソースとして配布することができますが、独自のソフトウェアにリンクしたい人には代替ライセンスを提供するという目標はありますか?この場合も、GPLが良い選択かもしれませんが、この場合は、貢献を再ライセンスできるように、あなたに変更を送り返す他のコントリビュータから著作権の割り当てを設定する必要があります。

あなたのコードはサーバ側のソフトウェアかもしれないようですが、その場合はAGPLを調べるとよいでしょう。 AGPLはGPLに似ていますが、自分のサーバー(GPLには必要ありません)にソースを配布するには、ソースを変更する必要があります。

プロプライエタリソフトウェアを作成している間に人がビルドできるようにするには、ソフトウェア自体に変更を反映させたい場合は、LGPLはかなり良いです。プロプライエタリなフォークを気にせず、単純に許されるものを望むなら、MITライセンスが良い選択です。

あなたが合法的にリリースできないコードを削除するものだけが必要です。すべてのコードについて著作権を所有している場合は、すべてのコードを暗号化コードに注意し、弁護士に相談してください。輸出制限は対処するのが難しいかもしれませんが、オープンソースソフトウェアにとってプロセスを簡単にするための規定があります。

必要な変更以外にも、できるだけ多くのシステムでコードを構築して実行することをお勧めします。たとえば、どの依存関係が必須であり、どの依存関係がオプションかを確認する必要があります。あなたのソフトウェアをビルドしてインストールする方法に関する良い文書は、システム構築や単体や回帰テストなど、ソフトウェア開発(オープンソースだけでなく)に必要な通常のものと同様に良いものです。

考えるべきいくつかの他のものは以下のとおりです。

  1. 他の人があなたにその変更を取得する方法は?メーリングリストのパッチ?バグレポートに添付されたパッチ?フォークはGitHubにありますか?
  2. どのリビジョン管理システムを使用しますか?私は一般的に、GitMercurialのような分散リビジョンコントロールシステムを主張しますが、Subversionも非常に人気があり、仕事をする必要があります。
  3. コミュニティがどのように働いているかを明確にしてください。ソフトウェアの入手方法や貢献方法、あなたのメーリングリストやIRCチャンネルへのポインタなど、あなたが議論したい媒体を記述したウェブページ。あなたがコミッターなどのコアグループを持つ予定の場合は、コミッターを選ぶプロセスがどのように機能するかを文書化してください。

私は詳細と詳細を掲載することができますが、すでに言われていることを繰り返していると思います。さらに詳しい情報が必要な場合は、Karl FogelのProducing Open Source Softwareとお読みください。

+0

この詳細な回答をいただきありがとうございます。本当に助かります! – MatthieuP

0

先週も同じ処理が行われました。私たちはMercurialをバージョン管理システムとして選択します。これは魅力的です。 Bitbucketはホスティング会社で、無料のホスティングサービスを提供するオープンソースプロジェクトです。また、世界中の人々があなたのプロジェクトにうまく参加できるようになるため、さらにドキュメントが必要になります。これは隣の同僚に物事を説明するのとは異なるものです。

1つの重要なことは、迷惑をかけたくない聴衆がいることを覚えておく必要があることです。社内開発では、API、データベーススキーマなどを変更することがよくあります。オープンソースでは、マイナーバージョンと必要に応じて明確な移行パスとの間に互換性がなければならないことに留意する必要があります。

2

あなたの会社のためにお金を稼ぐための戦略にこのソフトウェアのオープンソーシングを取り入れる方法を探しているなら、Joel Spolsky's takeは私が読んだことの中で最もクリアなものです。

オープンソースライセンスの件について1冊の本しか読んでいない場合、Lawrence RosenのOpen Source Licensingよりもうまくやっていくことは難しいでしょう。

関連する問題