Daftar periksa untuk memulai proyek sumber terbuka [ditutup]

51

Untuk memulai proyek open-source bukan hanya membuang kode sumber pada beberapa repositori publik dan kemudian senang dengan itu. Anda harus memiliki dokumentasi teknis (selain pengguna), informasi tentang cara berkontribusi dll.

Jika membuat daftar periksa untuk hal-hal penting yang harus dilakukan, apa yang akan Anda sertakan di dalamnya?

Anto
sumber
1
+1 Pertanyaan Bagus. Bolehkah saya merekomendasikan: gawande.com/the-checklist-manifesto
JeffO
2
Saya merekomendasikan buku Karl Fogel (salah satu penulis subversi asli) Memproduksi Perangkat Lunak Sumber Terbuka - cara menjalankan proyek perangkat lunak bebas yang sukses. Ini buku O'Reilly.
Michael
Memproduksi Perangkat Lunak Sumber Terbuka oleh Karl Fogel akan membantu Anda. Buku ini tersedia sepenuhnya online.
Coyote21

Jawaban:

34

Hal yang paling penting adalah:

  • gunakan proyek Anda sendiri dan masuk ke dalam kondisi yang berguna di mana Anda menikmati menggunakannya. pastikan proyek bekerja dan bermanfaat.

Hal-hal yang saya masukkan dalam prioritas awal adalah:

  • punya sederhana "apa itu?" situs web dengan tautan ke beberapa forum diskusi (baik email atau chat) dan ke repositori kode sumber
  • pastikan kode tersebut dikompilasi dan biasanya berfungsi, jangan melakukan perbaikan yang sedang berjalan atau patch setengah-setengah pada cabang utama yang merusak barang-barang, karena pekerjaan orang lain akan terganggu
  • letakkan file lisensi di repositori kode dengan lisensi yang terkenal, dan tandai pemilik hak cipta (mungkin Anda, atau perusahaan Anda). jangan mengabaikan lisensi, membuat lisensi, atau menggunakan lisensi yang tidak jelas.
  • memiliki instruksi bagaimana berkontribusi, katakan dalam file HACKING atau sertakan dalam README Anda. Ini harus mencakup tempat untuk mengirim tambalan, cara memformat tambalan, aturan indentasi kode, konvensi penting lainnya dari proyek
  • memiliki instruksi tentang cara melaporkan bug
  • membantu di milis atau apa pun forum Anda

Setelah prioritas itu saya akan mengatakan:

  • dokumentasi (ini menghemat Anda bekerja di milis ... membuat FAQ dari posting daftar Anda adalah awal yang mudah)
  • cobalah untuk melakukan hal-hal dengan cara "normal" (jangan menemukan sistem build Anda sendiri atau menggunakan yang aneh, jangan menggunakan indentasi 1-ruang, jangan aneh nyentrik secara umum karena itu menambah kurva belajar)
  • promosikan proyek Anda. pemasaran pemasaran pemasaran. Anda memerlukan beberapa blog dan situs berita dan hal-hal seperti itu untuk melindungi Anda, dan kemudian ketika orang-orang muncul tertarik, Anda perlu berbicara dengan mereka dan memastikan mereka membuatnya berfungsi dan melihat tambalan mereka. Mungkin sebutkan proyek Anda di forum untuk proyek terkait.
  • selalu tinjau dan terima tambalan secepat mungkin secara manusiawi. Segera sempurna. Lebih dari beberapa hari dan Anda kehilangan banyak orang.
  • selalu membalas email tentang proyek secepat mungkin secara manusiawi.
  • menciptakan suasana yang ramah / positif / menyenangkan. jangan menjadi brengsek. ucapkan tolong, terima kasih, dan bagikan pujian. kejar semua bajingan yang muncul dan mulai meracuni komunitas. cobalah untuk bertemu orang secara langsung ketika Anda bisa dan membentuk ikatan.
Havoc P
sumber
Bagaimana dengan potensi masalah hukum? Bagaimana cara memastikan bahwa implementasi tidak secara tidak sengaja mengandung algoritma yang dipatenkan?
Den
Sayangnya, tidak mungkin untuk menentukan itu. Diberikan potongan kode, tidak ada cara untuk mengetahui istilah pencarian apa yang Anda perlukan untuk menemukan paten yang relevan, yang merupakan salah satu alasan mengapa paten perangkat lunak menjadi masalah. Terkadang Anda tahu ada paten yang berlaku, tetapi saya belum pernah mendengar cara untuk yakin bahwa tidak ada paten yang berlaku. Sulit dibuktikan negatif. Paten adalah topik yang cukup besar sehingga mereka seharusnya menjadi pertanyaan mereka sendiri ...
Havoc P
17

Sebagai permulaan, Turunkan penghalang untuk masuk , ini berarti:

  • membuatnya mudah untuk menginstal,
  • membuatnya mudah untuk dimodifikasi,
  • membuatnya mudah untuk menemukan proyek Anda,
  • buat saja semua yang Anda inginkan mudah dilakukan.

Bagaimana?

  • Berikan jawaban untuk setiap pertanyaan yang dapat Anda pikirkan dalam dokumentasi Anda,
  • Buat sistem build yang mudah digunakan,
  • Bersihkan kode Anda, tidak ada yang suka mengerjakan kode spaghetti,
  • Buat sesuatu yang orang butuhkan.
dan_waterworth
sumber