Memilih Repository Untuk Proyek Software Anda

Ada 4 hal penting yang dibutuhkan untuk menunjang keberhasilan pengembangan software yang tengah Anda lakukan. Hal tersebut adalah website, mailing list, issue tracker dan kode repositori.

Meskipun semua kebutuhan infrastruktur untuk pengembangan proyek perangkat lunak dapat Anda penuhi dengan sistem yang telah Anda miliki, tetapi saat ini banyak terdapat piranti dan layanan yang tentu saja dapat membantu Anda dalam mengembangkan, memelihara serta mempublikasikan perangkat lunak yang sedang Anda kembangkan. Artikel ini akan memberikan Anda sedikit panduan serta gambaran dalam memilih repositori untuk membantu Anda menentukan pilihan yang tepat dalam memilih repositori untuk proyek perangkat lunak yang tengah Anda kembangkan.

Apakah Repositori Yang Sesuai Untuk Proyek Anda?

Langakah pertama dalam menentukan repositori yang sesuai bagi proyek pengembangan perangkat lunak yang tengah Anda kembangkan adalah dengan cara membuat daftar apa saja yang Anda butuhkan dalam proyek tersebut. Untuk membantu proses ini, kami telah menyertakan beberapa hal yang harus Anda pertimbangkan yang terdapat pada akhir panduan ini. Selanjutnya Anda harus memutuskan apakah Anda akan menggunakan layanan host, repositor institusional, atau Anda akan menjalankan semuanya sendiri.

Apa Saja Layanan Host Yang Ada Saat Ini?

Layanan host biasanya digunakan ketika software project Anda bekerja dengan kolaborator untuk berbagai institusi yang berbeda. Berikut ini adalah beberapa layanan host yang paling popular dan paling banyak digunakan saat ini.

  • SourceForge (Mendukung: CVS / SVN / Git / Mercurial / Bazaar, Didirikan: 1999, Pengguna:> 2 juta; Proyek:> 200K)

SourceForge merupakan layanan software project hosting terbaik saat ini. Selain itu, SourceForge juga merupakan situs layanan software project terbesar. Situs ini dapat menyediakan semua fitur yang Anda harapkan dari sebuah repositori serta menyediakan layanan untuk membantu Anda mendapatkan developer baru. Beberapa user telah menemukan sedikit masalah bahwa server menjadi sedikit lebih lamban ketika permintaan akses tinggi atau akses visitor dalam jumlah besar secara bersamaan, hal ini juga disebabkan karena iklan yang tidak sesuai untuk semua proyek. SourceForge tidak mengizinkan akses dari beberapa Negara, terutama Iran dan Suriah.

  • Google Code (SVN / Mercurial, 2005,> 250k)
    Raksasa internet Google juga menyediakan Project Hosting. Namun, project hosting milik Google ini memiliki batasan: hanya sembilan  lisensi open source populer yang tersedia dan Anda dibatasi hanya untuk 25 proyek per orang. Google Code tidak mengizinkan akses dari beberapa Negara, terutama Iran dan Suriah. Manfaat repositori dari sebuah komunitas besar karena digunakan sebagai host untuk berbagai macam Google project dan juga Google Summer of Code Project.
  • GitHub (Git, SVN eksperimental, 2008,> 400k,> 1.4m)
    GitHub menyediakan lebih banyak developer-focussed environment (sebagai lawan dari project-focussed one). Hal ini tentu saja sangat membantu perkembangan dalam bidang biosciences.
  • CodePlex (SVN / Mercurial, 2006,> 150K,> 15k)
    Codeplex di kelola oleh Microsoft dan merupakan dasar untuk berbagai macamproyek untuk Windows serta yang berhubungan dengan Ajax.
  • Launchpad (Bazaar, CVS / SVN / Git / Mercurial import only,2004,> 1m> 15k)
    Launchpad dikelola oleh Canonical. Launchpad menyediakan sistem (Blueprints) untuk fitur spesifikasi pelacakan dan Soyuz release-management system.
  • Assembla (SVN / Git, 2005,> 180k,> 60k)
    Assembla memiliki user yang sebagian dari perusahaan-perusahaan yang lebih kecil dan memiliki fasilitas project-management yang lebih luas sebagai tambahan dari layanan software development.
  • Savannah (CVS / SVN / Git / Mercurial / Bazaar, 2000; ~ 50k,> 3k)
    Savannah menjadi host dari sebagian besar software GNU dan beberapa perangkat lunak non-GNU. Fokus Savannah adalah untuk proyek-proyek perangkat lunak gratis. Untuk memastikan bahwa penggunanya adalah khusus untuk software gratis, Savannah menerapkan kebijakan hosting yang sangat ketat, termasuk larangan terhadap penggunaan format berbayar (seperti Macromedia Flash).

Ini adalah perbandingan dari berbagai macam fitur dari software hosting yang open source yang tersedia di Wikipedia.

Itu adalah poin-poin umum yang dapat dilayani oleh repositori untuk proyek-proyek dengan lisensi open source. Situs-situs tersebut mungkin tidak cocok bagi Anda yang mengembangkan closed source code-base ataupun software yang menggunakan lisensi campuran. Selain itu, Anda mungkin akan menemukan bahwa layanan yang Anda terima merupakan layanan trade-off diantara stabilitas melalui banyak pengguna dan depersonalisasi layanan yang Anda terima.

Salah satu alternative yang mungkin bisa Anda gunakan adalah Bitbucket yang memperbolehkan untuk menghost repositori terbuka dan tertutup.  Ini merupakan layanan gratis dengan maksimal 5 pengguna, tetapi jika Anda menginginkan proyek yang lebih besar, Anda harus membayar biaya layanan.

Ada juga layanan yang disediakan khusus untuk komunitas-komunitas besar tertentu. CCPForge menyediakan repositori yang berbasis GForge terutama untuk Collaboratives Computational Projects (CCPs). Repositori ini mampu menghost kedua-duanya baik itu proyek yang berbasis open source maupun proyek yang berbasis closed-source.Proyek yang kita kembangkan dengan repository ini harus memiliki kontribusi yang signifikan dari UK research group dan harus melakukan penelitian yang di danai oleh public. Satu hal yang perlu dicatat, meskipun CCPForge memiliki kebijakan untuk melakukan back-up data pada proyek yang sedang Anda kerjakan, tetapi mereka tidak memberikan jaminan bahwa data Anda yang tersimpan akan selalu aman.

Repositori Institusional

Banyak organisasi yang menjalankan layanan pengawasan secara mandiri, mengatur mailing list, serta layanan infrastruktur lainya. Secara umum, layanan ini akan sangat bermanfaat bila committer dan pengembang untuk proyek Anda didasari oleh sebuah organisasi yang menghost layanan tersebut. Meskipun repository institusional biasnaya dapat menangani beberapa external collaborator.

Keuntungan utama dari sebuah repository institusional adalah bahwa akan sangat mudah untuk mencari seseorang yang mau membantu ketika Anda membutuhkan sesuatu. Di sisi lain, jika suatu saat proyek Anda telah mencapai skala global, maka tentu saja proyek Anda tidak bisa terikat dengan pihak tertentu.

Menjalankan Infrastruktur Anda Sendiri

Jika Anda mau, relative mudah bagi Anda untuk menjalankan repository software ANda menggunakan paket seperti Trac, GForce, Savane, Codendi dan LibreSource.

Jika Anda ingin menjalankan infrastruktur Anda sendiri tentu saja hal ini membutuhkan komitmen serta waktu luang untuk melakukan setup serta memelihara instalasi. Menyiapkan repository Anda sendiri biasanya akan bermanfaatv jika Anda berencana untuk menghost proyek dalam skala besar dimasa yang akan datang.

Kesimpulan

Memilih repository untuk proyek software Anda tidak seperti memilih tempat untuk menghost website Anda. Ada banyak pilihan yang harus ditentukan, mulai dari melakukan semuanya sendiri sampai membayar untuk layanan penuh. Pilihan yang harus Anda pilih tergantung pad kondisi Anda, terutama fitur-fitur layanan yang Anda butuhkan.  Jumlah usaha yang diperlukan untuk memanage proyek tersebut, popularitas layanan antara kelompok tempat Anda bekerja, serta ukuran serta jumlah kontributor untuk proyek Anda.

Hal yang paling penting yang harus Anda ingat ketika Anda harus memilih repository adalah bahwa repository hanya melayani proyek Anda saat ini. Anda harus secara rutin mereview ketentuan dari penyedia repository Anda dalam kaitanya jika suatu saat Anda ingin berganti layanan.

Faktor-Faktor Yang Harus Anda Pertimbangkan Ketika Memilih Repositori

  • Fungsi apakah yang Anda butuhkan saat ini?

Version-control system, termasuk antarmuka web untuk kode-browsing online
Mailing list, manajemen daftar dan arsip
Bug / issue tracker
Dasar-dasar web server untuk proyek / halaman software
Berita
Software paket hosting / publishing
Statistik laporan (misalnya jumlah komit, jumlah download)
Forum
Wiki
Proyek / release manajemen
Access Control

  • Seberapa mudah untuk upgrade fungsi tambahan di masa yang akan datang?
  • Apakah pilihan Anda untuk version-control system, misalnya CVS, SVN, Git, Mercurial?
  • Apakah penting untuk membuat kode Anda tersedia untuk umum?
  • Apakah semua commiter kode Anda adalah lokal?
  •  Seberapa mudah untuk mengintegrasikan hal-hal lain yang Anda jalankan secara terpisah (misalnya website) dengan repositori?
  • Bagaimanakah dukungan untuk pilihan IDE Anda?
  • Apakah ada dukungan untuk sistem otentikasi seperti OpenID atau SSH?
  • Apa additional forge, jejaring sosial, fungsi manajemen proyek yang Anda inginkan dari situs ini?
  • Dimana proyek yang serupa dengan host Anda?
  • Berapa kecepatan upload / download?
  • Seberapa mudah untuk membackup seluruh repositori Anda(kode, mailing list, issue ticket, …)
  • Apakah repository tersebut stabil?
  • Apakah memiliki user support yang baik?
  • Berapakah usaha yang hartus Anda keluarkan untuk pemeliharaan repositori?
  •  Akan lebih baik untuk menggunakan lebih dari satu repositori, misalnya kode yang tersimpan dalam GitHub Anda menghubungkanya ke Assembla untuk berbagai tool tambahan?
  • Bagaimana persetujuan mereka tentang uptime, downtime, waktu yang dibutuhkan untuk memperbaiki ketika down serta bandwidth?Jika Anda mencoba untuk bermigrasi proyek Anda dari satu repositori ke repositori yang lain, Anda sebaiknya juga mempertimbangkan dua faktor tambahan berikut ini:
  • Apakah mudah untuk mentransfer tidak hanya kode Anda, tetapi komunitas Anda, ke situs baru, misalnya Anda memiliki arsip milis, wiki serta account pengguna.
  • Apakah Anda perlu untuk menjaga revision history yang terkait dengan kode Anda, atau mungkin Anda bisa mulai dari awal?

Bagaimana apakah anda sudah mendapatkan ide tentang layanan repository mana yang akan anda gunakan?
Sumber : http://software.ac.uk/resources/guides/choosing-repository-your-software-project

Informasi Lainnya :

Pembahasan lainya seputar subversion bisa anda temukan pada Index Artikel Subversion

Share your vote!


Do you like this post?
  • Fascinated
  • Happy
  • Sad
  • Angry
  • Bored
  • Afraid

Subscribe / Langganan Artikel

Nama

Email Address

Dapatkan Info terbaru via Feedburner

Masukan email anda untuk mendapatkan artikel terbaru:

About Hadi Suwantoro

Sehari-hari ya bagian Monitoring, Review, Pembuat dokumentasi, Penulis tutorial dan Googling. Circle me

Leave a Reply

Your email address will not be published. Required fields are marked *