Banyak skrip kecil, satu repositori atau banyak?

15

Seorang rekan kerja dan saya sendiri mengalami masalah yang kami punya banyak pendapat.

Saat ini kami memiliki repositori git yang menyimpan semua cronjobs kami. Ada sekitar 20 crons dan mereka tidak benar-benar terkait kecuali kenyataan bahwa mereka semua adalah skrip python kecil dan penting untuk beberapa aktivitas. Kami menggunakan fabric.pyfile untuk digunakan dan requirements.txtfile untuk mengelola persyaratan untuk semua skrip.

Masalah kita pada dasarnya, apakah kita menyimpan semua skrip ini dalam satu repositori git atau haruskah kita memisahkannya menjadi repositori mereka sendiri? Dengan menyimpannya dalam satu repositori, lebih mudah untuk menyebarkannya ke satu server. Kita dapat menggunakan hanya satu file cron untuk semua skrip.

Namun ini terasa salah, karena 20 cronjobs tidak berhubungan secara logis. Selain itu, ketika menggunakan satu requirements.txtfile untuk semua skrip, sulit untuk mengetahui apa dependensi untuk skrip tertentu dan mereka semua harus menggunakan versi paket yang sama.

Kita dapat memisahkan semua skrip ke dalam repositori mereka sendiri tetapi ini menciptakan 20 repositori berbeda yang perlu diingat dan ditangani. Sebagian besar skrip ini tidak terlalu besar dan solusinya tampaknya berlebihan.

Pertanyaan terkait adalah, apakah kita menggunakan satu file crontab besar untuk semua cronjobs, atau file terpisah untuk masing-masing? Jika masing-masing memiliki sendiri, bagaimana instalasi satu crontab menghindari menimpa 19 lainnya? Ini juga tampak seperti rasa sakit karena kemudian akan ada 20 file cron yang berbeda untuk dilacak.

Singkatnya, pertanyaan dan masalah utama kita adalah apakah kita menjaga mereka tetap terikat sebagai satu repositori atau kita memisahkan mereka ke dalam repositori mereka sendiri dengan requirement.txt dan fabfile.py? Kami merasa seperti kami mungkin juga mencari beberapa solusi yang sangat sederhana. Apakah ada cara yang lebih mudah untuk menangani masalah ini?

Kendi itu
sumber
Apakah skrip ini merupakan pekerjaan cron yang terkait dengan aplikasi lain, atau secara harfiah hanya sebagai tempat pembuangan skrip utilitas?
Greg Burghardt
Saya tidak melihat mengapa memiliki mereka di repositori yang sama akan berarti mereka harus berbagi persyaratan yang sama.txt? Mereka masing-masing dapat memiliki requirement.txt yang berbeda jika Anda menempatkannya di subdirektori terpisah dari repositori ...
Sean Burton

Jawaban:

16

Kecuali ada alasan khusus bagi Anda untuk berpikir bahwa masing-masing dari mereka layak mendapatkan repo invidual (Akankah mereka tumbuh banyak? Mungkin tidak!) Tampaknya lebih masuk akal untuk menempatkan semuanya dalam satu repo, dan menyelamatkan diri dari kesulitan mengkloning semua dari mereka dari 20 repo.

Menyimpan masing-masing dalam repo terpisah sepertinya jalan menciptakan masalah di mana masalah tidak ada.

Jangan membuat pekerjaan ekstra untuk diri sendiri (dan orang lain).

Benteng
sumber
2
Setuju - selama skrip diberi nama dengan baik, dan duplikasi dijaga tetap rendah di antara mereka (yaitu hal-hal perpustakaan bersama) sehingga pencarian grep tidak terlalu berantakan, saya pikir ini berfungsi.
Danny Staple
1

Kecuali jika ada alasan yang sangat bagus untuk pemisahan (kinerja; masalah organisasi / keamanan yang luar biasa, dll.) Naluri saya adalah menyimpan dokumen sumber dalam repositori yang sama.

Memisahkan sistem menjadi repositori terpisah umumnya menciptakan hambatan yang menghambat penggunaan kembali; karena menggunakan kembali adalah satu-satunya cara bahwa organisasi harus mengamortisasi biaya pengembangan, apa pun yang menghalangi penggunaan kembali adalah hal yang benar-benar buruk.

William Payne
sumber