Kelola modul khusus di berbagai instalasi

19

Kami memiliki beberapa modul khusus yang digunakan untuk beberapa situs. Mereka tidak dapat dirilis sebagai modul kontribusi, misalnya karena mereka khusus untuk klien, membuat asumsi yang tidak berfungsi untuk modul kontribusi dan sebagainya.

Saya tahu tentang kemungkinan berikut untuk menangani ini:

  • salin & tempel di sekitar. Jelas sulit untuk menjaga agar modul selalu terbaru di semua instalasi.

  • Miliki satu instalasi multi-situs, tetapi ini tidak selalu memungkinkan.

  • Gunakan submit git, tetapi bisa jadi jahat, mudah untuk lupa memperbaruinya dan tidak selalu didukung (mis. Pantheon)

  • Drush membuat skrip untuk memeriksa dari repositori git yang umum. Untuk ini, Anda AFAIK perlu menggunakan drush make untuk seluruh situs dan kami tidak menggunakannya saat ini.

  • http://drupal.org/project/fserver . Saya belum mencobanya, apakah ada yang tahu apakah itu cukup stabil? Deskripsi proyek kedengarannya tidak terlalu menjanjikan dan tidak ada versi 7.x.

Ada lagi / lebih baik? Apa yang Anda sukai dan mengapa?

Berdir
sumber
saya pikir cara baru untuk melakukan hal-hal ini adalah dengan aplikasi: drupal.org/project/apps
mojzis

Jawaban:

10

Pendekatan Drush make, seperti yang telah Anda sebutkan, adalah versi yang digunakan tim saya.

Meskipun saat ini Anda tidak menggunakan drush make untuk situs Anda, itu seharusnya relatif mudah bagi Anda untuk pindah ke alur kerja ini jika Anda mau karena drush juga menyediakan drush make-generate yang akan menghasilkan file make dari situs yang ada. Jadi tidak perlu merasa seperti itu hanya layak untuk situs baru. :)

Letharion
sumber
Terima kasih, saya telah memutuskan untuk menerima jawaban Anda. Saya perlu membiasakan diri dengan membuat, mencari tahu cara terbaik untuk menangani ini dalam proyek-proyek besar dengan banyak modul khusus dan meyakinkan rekan kerja saya sebelum saya dapat mulai menggunakan ini, meskipun;) Apakah Anda memiliki sumber daya tentang cara mempertahankan situs, mis. cara terbaik untuk memperbarui versi, membangun kembali situs.
Berdir
2
Saya tidak punya sumber daya, jadi saya menulis satu :) drupal.stackexchange.com/questions/33403/... Tentu saja, jangan ragu untuk berkomentar dengan pertanyaan yang lebih dalam jika Anda mau. :)
Letharion
1

Jika semua situs berada di server yang sama, Anda dapat menggunakan symlinkuntuk memuat modul dari tempat pusat, atau rsyncjika Anda berurusan dengan beberapa server.

Ini akan menyelesaikan masalah mendistribusikan file, tetapi Anda masih perlu mem-upgrade. Ini dapat diotomatisasi dengan drush, bersama dengan skrip sederhana yang menyerukan peningkatan di setiap situs, satu per satu.

Máté Gelei
sumber
0

Tampaknya Anda hampir terlihat cukup banyak untuk semua solusi. Ketika saya membacanya, pertama-tama apa yang terlintas dalam pikiran saya dengan dua solusi lain seperti rsyncatau symlinktetapi sekali lagi tidak nyaman untuk dipertahankan.

Kemudian di ingat tentang modul Git Deploy yang sebenarnya menjadi kombo yang bagus dengan submodules git.

Saya belum mencoba ide ini, tetapi ini bisa berhasil, atau setidaknya memberi Anda petunjuk bagaimana meretasnya untuk melakukan sistem Anda sendiri.

yvan
sumber
Git menyebarkan memperlihatkan informasi versi modul contrib, tetapi kami tidak memiliki modul contrib jadi saya pikir itu tidak akan membantu.
Berdir
0

Saya menggunakan repositori git yang terpisah untuk semua modul yang dikontribusikan / dikustomisasi di mana setiap modul yang dikontribusikan atau kustom berada di cabang terpisah (bukan dalam submodule).

inilah cara git merge bekerja di sini:

menguasai

      <-- custom
        <-- custom module 1
        <-- custom module 2    

      <-- contrib
        <-- contrib module 1
        <-- contrib module 2     

master -> rilis

dan skrip bash / drush untuk memperbarui cabang

Refineo
sumber
Solusi saya didasarkan pada artikel ini nvie.com/posts/a-successful-git-branching-model
Refineo
Hm Jadi saya kemudian bisa menambahkan situs lain sebagai remote dan mengimpor cabang modul khusus dari sana. Itu bisa berhasil, tetapi relatif kompleks.
Berdir
0

Saya menggunakan SVN sebagai ganti Git untuk menyimpan modul yang dikembangkan khusus kami. Setelah saya melakukan perubahan dari localhost, saya hanya menjalankan skrip bash yang menjalankan perintah "svn update" di lokasi server yang telah ditentukan. Setiap kali saya menyebarkan modul ke lokasi baru, saya memperbarui skrip bash. Ini benar-benar pengaturan yang sederhana dan berfungsi tanpa kesulitan.

Ajinkya Kulkarni
sumber