प्रभावी रूप से Drush बनाने वाली साइट का प्रबंधन कैसे करें?


जवाबों:


28

Drush और Drupal के संदर्भ में, "फाइलें बनाएं" मॉड्यूल, थीम और लाइब्रेरी के एक सेट को परिभाषित करते हैं जो साइट बनाते हैं। जबकि एक पूरी साइट / सभी / मॉड्यूल निर्देशिका को गिट में चिपका सकता है, लेकिन फ़ाइल को संभालने के लिए बहुत तेजी से होता है, दोनों के लिए गिट और डेवलपर्स। नीचे एक वास्तविक परियोजना से एक फ़ाइल बनाओ। मैंने बहुत सारी चीजों को काट दिया है क्योंकि पूरी फाइल सैकड़ों पंक्तियों की है, लेकिन मैंने अपने द्वारा उपयोग की गई सभी कार्यक्षमता को दिखाने के लिए पर्याप्त रूप से बनाए रखा है।

; API
api = 2

; Core
core = 7.x
projects[drupal][version] = 7.14

; Contrib modules
projects[date][version] = 2.0-alpha4
projects[email][version] = 1.0

; Media and file_entity go hand in hand - please make sure they work together.
projects[media][version] = 2.0-unstable5
projects[file_entity][version] = 2.0-unstable5

; Cron modules
projects[ultimate_cron][version] = 1.6
projects[background_process][version] = 1.12

; Performance modules
projects[expire][version] = 1.0-alpha2
projects[cache_actions][version] = 2.0-alpha3

; Unstable modules
projects[menu_node_views][type] = module
projects[menu_node_views][download][type] = git
projects[menu_node_views][download][url] = http://git.drupal.org/project/menu_node_views.git
projects[menu_node_views][download][revision] = f46dd41eb8c4e693a6642a6c461afa57d99a6f1b

projects[filefield_sources_plupload][type] = module
projects[filefield_sources_plupload][download][type] = git
projects[filefield_sources_plupload][download][url] = http://git.drupal.org/project/filefield_sources_plupload.git
projects[filefield_sources_plupload][download][revision] = da374770b80fcbc0dab17158d38c8436ef29caca

projects[menu_token][type] = module
projects[menu_token][download][type] = git
projects[menu_token][download][url] = http://git.drupal.org/project/menu_token.git
projects[menu_token][download][revision] = 8c18fbb

; Libraries
libraries[mediaelement][download][type] = "file"
libraries[mediaelement][download][url] = "https://github.com/johndyer/mediaelement/zipball/2.7.0"

; Patches

; #1491150: node_load in menu_node_menu_link_insert is not safe - http://drupal.org/node/1491150
projects[menu_node][patch][] = http://drupal.org/files/menu_node-node_load-in-menu_node_menu_link_insert-1491150-1.patch

; Fix rendering of relation endpoints
projects[relation][patch][] = http://drupal.org/files/relation_table_endpoints_break.patch
projects[relation][patch][] = http://drupal.org/files/relation_bundle_permissions.patch

libraries[jquery-json-min][download][type] = "file"
libraries[jquery-json-min][download][url] = "http://jquery-json.googlecode.com/files/jquery.json-2.3.min.js"
libraries[jquery-json-min][download][sha1] = "2a4615b93c65dd50f92117c570121035a0327fee"
libraries[jquery-json-min][destination] = "libraries/jquery-json"

Api लाइन परिभाषित करती है कि Drush बाकी फ़ाइल के लिए किस API का उपयोग करता है। फ़ाइल के बारे में नोटिस करने के लिए एक महत्वपूर्ण बात यह है कि सभी मॉड्यूल में या तो एक विशिष्ट संस्करण होता है, या एक विशिष्ट गिट कमिट की ओर इशारा किया जाता है। हम कभी नहीं हमारे फ़ाइलों में -dev संस्करण है। जब हम एक क्लाइंट मीटिंग में दिखाते हैं, या मेक फाइल को जेनकिंस सर्वर को सौंपते हैं, तो कभी भी कोई आश्चर्य नहीं होना चाहिए । फ़ाइल में शामिल सटीक संस्करण का परीक्षण किया जाना चाहिए और सभी प्रकार के परीक्षणों को पारित करने की उम्मीद की जानी चाहिए। यह उच्च गुणवत्ता के कुछ देने में सक्षम होने के लिए महत्वपूर्ण है।

मेरी कंपनी में, सामान्य समझौता यह है कि प्रत्येक टीम रिपॉजिटरी की जड़ में "बिल्ड" नामक एक शेल-स्क्रिप्ट प्रदान करती है, जो साइट को स्थापित करने के लिए जिम्मेदार है, ताकि स्वचालित परीक्षण उसी क्रॉस-टीम द्वारा चलाए जा सकें सीआई सेटअप।

मॉड्यूल अपडेट को परीक्षण के लिए सीधे साइटों पर जल्दी से किया जा सकता है, लेकिन आधिकारिक तौर पर मेक फाइल को अपडेट करके, और साइट का पुनर्निर्माण किया जा सकता है।

मेरी टीम वर्तमान में बिल्ड-स्क्रिप्ट के इस सेट का उपयोग करती है । मैं बहुत अधिक कार्यक्षमता को एक ड्रश एक्सटेंशन में स्थानांतरित करने की दिशा में काम कर रहा हूं जो हालांकि प्रावधान का भारी उपयोग करेगा। यदि आप करेंगे तो एजिर का एक सीएलआई संस्करण।


1
प्रतिभा। समय निकालने के लिए धन्यवाद इस लिखने के लिए यह बहुत उपयोगी है
क्लाइव

हां, मैं क्लाइव से सहमत हूं, एक बहुत ही उपयोगी पोस्ट के रूप में। मुझे बार-बार मॉड्यूल और पैच के एक ही सेट को स्थापित करने में नहीं दिलचस्पी है। यदि आप उस के साथ कैसे आगे बढ़ते हैं, तो @Letharion मैं गर्मजोशी से स्वागत करूंगा। क्या आप इसे स्थानीय या दूरस्थ सर्वर पर स्थापित करते हैं?
आर्टुर

1
चारों ओर ढोलक के साथ बजाना। मैं वहाँ में निश्चित संस्करण संख्या डालने का कारण पूरी तरह से समझता हूँ। हालाँकि, आप उन्हें कैसे अपडेट करते हैं? क्या कोई ड्रश ड्रिंक के बराबर है? कुछ बिंदु पर, आपको अपने संस्करणों को नवीनतम संस्करण (विशेष रूप से सुरक्षा अपडेट) में अपडेट करने की आवश्यकता है। दर्जनों मॉड्यूल के साथ मैन्युअल रूप से ऐसा करने के बजाय थकाऊ लगता है ...
20

1
Moar प्रश्न: क्या आपके पास एक .gitignore फ़ाइल है या आप "maked" फ़ाइलों के आने से कैसे बचते हैं? यदि हाँ, तो यह कैसे दिखता है? वाइल्डकार्ड के साथ कुछ फैंसी करने की कोशिश की और! लेकिन यह निर्देशिकाओं के लिए काम नहीं करता है।
बर्दिर

1
मैं वास्तव में सहमत नहीं हूँ। -देव की कमी वह है जो निरंतरता सुनिश्चित करती है, अन्य तरीके से नहीं। पैच को लागू करना सुनिश्चित करने के लिए यह प्रत्येक डेवलपर्स की जिम्मेदारी है, जिसका अर्थ हो सकता है कि एक स्थिर रिलीज के बजाय एक गिट संशोधन का जिक्र हो, लेकिन कभी भी अप्रत्याशित-कभी भी बदलाव नहीं हो सकता है जो बिल्ड से दूसरे पर बदल सकता है।
लेटेरियन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.