Disarankan agar saya mengambil proyek open source saya karena ukurannya dan kurangnya keterampilan saya, jadi saya memeriksa Google Code, dan mulai membuat proyek dan sekarang saya bertanya apakah saya ingin proyek memiliki Git, Mercurial, atau Subversion hosting kode.
Saya bahkan tidak tahu apa itu hosting kode, dan pencarian semakin membingungkan saya dengan perdebatan antara semua hal ini, dan ini menjadi lebih buruk karena Google Code menanyakan jenis lisensi yang saya inginkan.
Saya pikir saya tidak begitu mengerti apa arti open source sebenarnya, bisakah seseorang membuat lembar contekan orang awam tentang apa semua ini? Sangat dihargai.
Sunting Ada banyak tanggapan hebat pada ketiga versi hosting kode ini, tapi saya rasa saya gagal mengomunikasikan pertanyaan sebenarnya: Pada dasarnya saya tidak tahu bagaimana cara kerja sumber terbuka ini, mengapa saya meng-host kode di tempat seperti ini ? Dan apakah itu berarti saya harus menghapus situs dari hosting saya saat ini, atau apakah ini jenis hosting yang sama sekali berbeda? Apa yang terjadi ketika saya membuat situs saya open source, hak apa yang saya miliki, hak apa yang saya berikan. Bagaimana cara kerjanya, apakah orang hanya datang dan melemparkan kode kepada saya secara gratis? Mungkin ini adalah pertanyaan bodoh, dan jika itu masalahnya maka saya kira saya perlu jawaban bodoh, saya benar-benar tidak tahu apa itu open source, kecuali untuk konsep kode berbagi ...
Jawaban:
Titik kunci pengembangan perangkat lunak sumber terbuka adalah untuk membagikan kode sumber. Ada beberapa cara untuk melakukan ini, seperti meletakkan file tar / zip di web atau server ftp. Layanan seperti kode google (atau sourceforge.net, gitorious.org, bitbucket.org, dan banyak lainnya) menghilangkan kebutuhan untuk menjalankan server Anda sendiri untuk tujuan ini.
Layanan ini bukan web host tujuan umum, tetapi menjalankan layanan yang sangat khusus. Mereka tidak dimaksudkan sebagai beranda suatu produk, tetapi lebih merupakan dasbor pengembang.
Dengan kode google yang Anda dapatkan
Tentu saja Anda dapat mengatur perangkat lunak ini pada server web biasa (hal-hal kontrol versi mungkin rumit, tetapi itu sangat tergantung pada detail), tetapi manfaat utama menggunakan pengembang pengembangan adalah bahwa Anda tidak perlu berhati-hati dari sistem ini untuk Anda sendiri. Kelemahan utama adalah bahwa Anda tidak memiliki kontrol tentang perangkat lunak apa yang digunakan di server, Anda harus hidup dengan apa yang tersedia di host itu. Anda juga perlu mempertimbangkan apa yang terjadi jika layanan keluar dari bisnis (ok, google tidak pernah gagal), dan jika Anda dapat mengambil data dari host saat ini ke server lain atau server Anda sendiri (pikirkan cadangan).
Ini adalah pertanyaan yang sulit, karena ini tergantung pada hukum negara tempat Anda tinggal.
Ini tergantung pada lisensi yang Anda berikan kepada produk. Itu bisa pergi dari open source milik (pikirkan PGP) di mana pengguna pada dasarnya tidak bisa melakukan apa pun dengan kode, di ujung skala adalah domain publik, di mana setiap orang dapat melakukan apa pun yang dia inginkan.
Ini sangat tidak mungkin terjadi, karena produk Anda membutuhkan popularitas yang cukup untuk menarik pengembang lain.
Ini adalah tiga sistem kontrol versi yang berbeda, di mana Subversion adalah yang terpusat, sementara Git dan Mercurial didistribusikan.
Ada perang agama tentang mana yang harus digunakan, tetapi intinya adalah menggunakan perang itu. Lihat http://martinfowler.com/bliki/VersionControlTools.html untuk detail lebih lanjut.
Kapan harus memilih Subversi:
¹ Ada ekstensi kunci untuk lincah, tapi saya tidak punya pengalaman dengannya, dan tidak bisa mengatakan apakah itu dapat digunakan.
Ketika Anda tidak membutuhkan fitur sebelumnya, lebih baik menggunakan Mercurial atau Git. Keduanya memiliki keunggulan berikut dibandingkan Subversi:
angka revisi yang diamankan secara kriptografis, yang berarti bahwa bahkan ketika seseorang membobol server, ia tidak dapat memasukkan kode tanpa mengubah riwayat revisi
sumber
Hosting kode adalah persis seperti itu - tempat untuk menyimpan (atau menyimpan) kode Anda.
Git, Mercurial dan Subversion adalah semua alat kontrol sumber yang Anda gunakan untuk mengelola riwayat kode Anda. Git dan Mercurial adalah sistem terdistribusi sedangkan Subversion adalah pengaturan berbasis server yang lebih tradisional.
Lihatlah Wikipedia atau semacamnya dan lihat mana yang paling menarik bagi Anda. Secara pribadi kita menggunakan Mercurial dan itu bekerja dengan sangat baik untuk kita.
sumber
Joel Spolsky menulis tutorial hebat tentang Hg (Mercurial) dan saya percaya bagian pengantar mencakup Subversion, termasuk alasan mengapa Anda meningkatkan ke Mercurial. Berikan itu bacaan, itu benar-benar membantu saya memahami banyak tentang Mercurial dan DVCS secara umum.
Oh, dan ketika Anda siap menjadi tuan rumah, Anda dapat menggunakan Google Code, BitBucket , Github (dengan bantuan ekstensi yang luar biasa ini ) atau yang lainnya.
sumber
Saya menggunakan git, yang menurut saya lebih mudah dikelola karena kontrol yang didistribusikan. Hg bagus juga untuk tujuan khusus ini, tapi saya tidak bisa memberi Anda saran tentang hal itu, karena tidak pernah menggunakannya. SVN adalah sistem terpusat dan karenanya kurang praktis, tetapi mungkin sedikit lebih sederhana.
Open source pada dasarnya berarti Anda memberi siapa pun kemampuan untuk menggunakan pekerjaan Anda dan membangunnya. Anda dapat mengatur batasan penggunaan itu: GPL berarti pengguna harus membuat karya open source tambahannya, LGPL berarti dia tidak, misalnya.
sumber
Subversi akan menjadi pilihan termudah karena ini adalah VCS. Git dan Mercurial adalah sistem DVCS. Mereka lebih modern dan lebih kuat tetapi lebih sulit untuk dipahami. Menggunakan front-end seperti TortoiseSVN atau TortoiseHG (untuk Mercurial alias HG) juga sangat membantu.
Jika perangkat lunak Anda adalah program yang berdiri sendiri, Anda dapat menggunakan GPL atau benar-benar membukanya dengan lisensi BSD. Jika proyek Anda adalah perpustakaan yang orang lain akan tautkan menggunakan LGPL atau BSD lagi; tapi jangan gunakan GPL.
[sunting]
Adapun motivasi awal Anda untuk sumber terbuka perangkat lunak: Sayangnya hanya membuat perangkat lunak open source tidak berarti Anda akan mendapatkan gelombang tenaga kerja gratis berbakat. Ada ratusan ribu proyek sumber terbuka. Hanya sebagian kecil dari mereka yang memiliki anggota aktif yang berkontribusi. Alasan yang membuat proyek ini berhasil atau tidak beragam seperti mengapa bisnis berhasil dan gagal. Jika Anda ingin menjadi programmer yang baik dan menghasilkan perangkat lunak yang baik, Anda harus menghabiskan banyak waktu untuk belajar, menulis kode, dan berkomunikasi dengan orang lain di situs-situs seperti StackOverflow.
sumber
Tampak bagi saya bahwa sementara kebanyakan orang di sini menjawab bagaimana , tidak ada yang benar-benar menjawab mengapa dalam pertanyaan Anda.
Salah satu proyek open source pertama yang saya alami adalah proyek Fractint yang luar biasa , ini dikembangkan oleh Stone Soup Group yang terinspirasi oleh cerita rakyat sup batu kuno .
Bagi saya, ini merangkum semangat open source lebih baik daripada kata - kata kasar Stallman atau bahkan Manifesto GNU asli . Ini adalah bukti kekuatan komunitas itu bahwa Fractint masih dikembangkan 23 tahun setelah api dinyalakan di bawah pot kode memasak .
sumber
Sumber terbuka berarti siapa pun dapat membaca, menyalin, memodifikasi, dan mendistribusikan kode Anda. Anda harus memiliki pemahaman yang kuat tentang implikasi ini sebelum melanjutkan. Mungkin Anda harus membaca buku atau setidaknya meramban artikel Wikipedia tentang topik itu dan / atau http://opensource.org/ hingga Anda merasa sudah memahami konsep tersebut.
(Buku Sumber Terbuka O'Reilly http://oreilly.com/openbook/opensources/book/index.html sangat membantu tetapi mungkin tidak persis apa yang Anda cari.)
Sistem kontrol kode sumber apa yang digunakan sepenuhnya sepenuhnya sekunder. Anda dapat menyalin / menempelkan kode Anda di halaman web dan selesai. Karena itu, kontrol versi adalah penting, dan kendaraan yang baik untuk menurunkan standar bagi pengembang untuk berkontribusi. Opsi apa pun yang ditawarkan oleh Google Code baik-baik saja; pergi dengan yang Anda suka, atau mungkin menunda pertanyaan sampai Anda dapat bertanya kepada kontributor Anda mana yang ingin mereka gunakan.
sumber
Membuat kode atau proyek Anda sumber terbuka berarti bahwa semua orang dapat mengambil dan memodifikasinya sesuai keinginannya. Ini tergantung pada jenis lisensi yang Anda pilih untuk digunakan, tetapi secara umum open source berarti kode sumber tersedia untuk siapa saja untuk mengunduhnya, memodifikasinya dan menggunakannya sesuka mereka.
Pokoknya kode ini harus dapat dijangkau oleh orang lain untuk mendapatkannya.
Membawa kode Anda ke repositori online publik seperti GitHub adalah cara terbaik untuk melakukannya. Pertama, kode Anda sekarang dapat diakses oleh publik. Kemudian, karena layanan tersebut juga menawarkan Kontrol Versi, kode Anda diatur oleh proyek. Anda dapat melacak perubahan yang Anda dan orang lain lakukan. Karena itu juga memungkinkan percabangan (memisahkan) proyek menjadi proyek lain yang berbeda, Anda dapat melacak semua versi berbeda yang dibuat orang lain dari kode Anda.
Ini juga memastikan kode Anda disimpan di tempat yang aman, Anda tidak perlu khawatir hilang oleh hard disk yang rusak pada komputer Anda misalnya. Dan ketika Anda ingin mengerjakannya, Anda dapat bekerja dari mana saja karena kode Anda daring, Anda dapat menemukannya di mana saja.
Jika kemudian Anda memutuskan untuk memamerkan kode Anda ke dunia, itu hanya masalah mengirimkan tautan ke repositori proyek online Anda. Ini adalah teknologi yang digunakan orang, jadi karena semua orang mengetahuinya, lebih mudah untuk memahami cara mengunduhnya, memposting pesan, membuat versi yang berbeda, dll.
Ini seperti standar umum dalam melakukan sesuatu, praktik umum.
Beberapa tautan yang mungkin berguna untuk menjelaskan lebih lanjut tentang open source
Definisi Sumber Terbuka
Lisensi Sumber Terbuka
GPL
Yayasan Perangkat Lunak Bebas
sumber
Tentang sistem kontrol versi, saya akan mengatakan bahwa Anda harus tetap dengan alternatif yang paling banyak digunakan dan lebih baru: Yaitu: "Git". Mercurial kurang populer, dan SVN tua, lambat, dan terpusat. Dengan GIT Anda akan mendapat manfaat dari sistem kontrol versi yang modern dan populer. Praktis tidak ada ruginya.
Sumber (berdasarkan popularitas DVCS):
/programming/tagged/git ~ 10k pertanyaan /programming/tagged/mercurial ~ 3k pertanyaan
http://www.googlefight.com/index.php?lang=en_GB&word1=git&word2=mercurial
11700000 hasil vs
1580000 hasil
Mengenai lisensi: Mungkin Anda harus melihat yang paling umum: GLP, MIT, LGPL, BSD, dan pilih yang sesuai dengan proyek Anda.
sumber