みなさんこんにちは! 年末年始の時期が近づいており、これはあなたのオープンソースプロジェクトを始める絶好の機会です。 私の名前はDimaで、Ruby開発者です。今日は、オープンソースソリューションの作成経験を共有したいと思います。プロジェクトをどの段階で進めるか、最初のリリースに適切な機能を選択する方法、プロジェクト作成時に個人的に遭遇したエラーについて詳しく説明します。
半年前、私は自分のオープンソースプロジェクトを作成するというアイデアを思いつきました。 インタビューのタスクをテストする代わりに、リポジトリへのリンクを送信するだけで十分であり、同僚が日々の問題を解決できるよう支援する見込みがさらに強くなりました。
管理パネルを作成するための宝石はいつも好きではありませんでした。ファイルを変更するために必要なフィールドを変更するには、不必要な移動にはクラスの再定義が必要です。 同僚との意見交換と会話の後、柔軟でダッシュボードや構成ファイルを必要としない新しいライブラリを作成することが決定されました。
目標を定義する
各オープンソースプロジェクトは特定の問題を解決します。 同僚、チャット、フォーラムとコミュニケーションを取り、アイデアを伝えましょう。これらはすべて、早い段階で、既に存在するソリューションを把握し、外部から批判を聞くのに役立ちます。 すでに独自のオープンソースプロジェクトを持っている人々とチャットしてください。彼らは非常に貴重なアドバイスを与えることができ、恐れずにイニシアチブを求めてください。
この段階で受け取った貴重なヒントの1つは、主にプロジェクトのドキュメントに注意を払うことです。 あなたは非常に良いプロジェクトを持っているかもしれませんが、誰もソースを読んで、それがどのように機能するかを理解しようとしません。
それ以上のステップが不可能である最も重要な側面は、モチベーションです。 プロジェクトのアイデアは、最初にあなたをキャッチする必要があります。 ほとんどの場合、人々は作業に使用するツールに慣れ、快適ゾーンに落ちます。
計画中
タスクを修正し、プロジェクト全体の現在の段階を明確に把握する必要があります。 タスクをサブタスクに分割します。1つのタスクのパフォーマンスが3〜4時間を超えないようにするのが理想的です。小さなタスクを楽しむことが重要です。これにより、燃え尽きやモチベーションの損失を防ぐことができます。
特定のタスクマネージャーの選択は好みの問題です。 私はピボットトラッカーを使用します。主な利点は、オープンソースプロジェクト用の無料バージョンが利用できることです。タイプ(機能、バグ、雑用、リリース)によるタスクのソートがあり、タスクをリリースにグループ化し、期限を定義できます。
ピボットトラッカーのもう1つの優れた機能は、githubとの統合です。 コミットの命名で特定の規則に従うと、このタスクに関連するすべての変更がタスク内に自動的に表示されます。
クリアランス
すべてのオープンソースプロジェクトには、次のものが必要です。
- Readme
- オープンソースライセンス
- 貢献ガイドライン
READMEファイルには、プロジェクトの使用方法だけでなく、プロジェクトの目的、使用開始方法も説明されています。 READMEを適切に実行する方法がわからない場合は、他の有名なオープンソースプロジェクトを見るか、 テンプレートを使用できます。
このライセンスは、他者がプロジェクトのソースコードを使用、コピー、および変更できることを保証します。 このファイルをオープンソースプロジェクトの各リポジトリに追加する必要があります。 MIT、Apache 2.0 GPLv3は、オープンソースプロジェクトで最も人気のあるライセンスです。どちらを選択すべきかわからない場合は、便利なサービスを使用できます。
CONTRIBUTINGファイルは、他の開発者がプロジェクトに貢献するのに役立ちます。 プロジェクトの最初のステップでは、このファイルに細心の注意を払う必要はありません。別のプロジェクトの既製のテンプレートを使用できます。
私の間違い
最初の段階を分析すると、アイデアはありましたが、明確な計画はありませんでした。 どれだけ時間がかかるか、ライブラリの最初のバージョンに含まれる機能の具体的なプレゼンテーションを明確に把握せずに、これを実行することにしました。
たくさんの欲求があり、明確な計画がなかった
オープンソースだけでなく、他のプロジェクトの歴史も読んで、初期段階では楽観的な計画があり、自分の強みと能力を再評価していることに気付きました。 プロジェクトで新しい機能を作成する時間を毎日見つけるのはそれほど簡単ではありません。 その結果、ほとんどのタスクを取り除く必要があり、 MVPに必要な最小値を残しました 。
現時点では、私のシンプルな管理プロジェクトはアルファ版です。さらなる計画には、hanami用のライブラリの別のバージョンの作成が含まれます。