Buck2, નવી ફેસબુક બિલ્ડ સિસ્ટમ

બક2-હીરો

Buck2, Facebookની નવી ઓપન સોર્સ બિલ્ડ સિસ્ટમ

ફેસબુક રજૂ કર્યું તાજેતરમાં "Buck2" નામની નવી બિલ્ડ સિસ્ટમ બહાર પાડી, જે નોંધે છે કે તે છે રિપોઝીટરીઝમાંથી પ્રોજેક્ટ બનાવવા પર ધ્યાન કેન્દ્રિત કર્યું ખૂબ જ મોટી જેમાં વિવિધ ભાષાઓમાં કોડનો સમાવેશ થાય છે પ્રોગ્રામિંગ.

તફાવતો નવા અમલીકરણ અને સિસ્ટમ વચ્ચે અગાઉ વપરાયેલ બક ફેસબુક દ્વારા જાવાની જગ્યાએ રસ્ટ ભાષાનો ઉપયોગ કરી રહ્યાં છે અને એસેમ્બલી પ્રક્રિયાની કાર્યક્ષમતા અને કામગીરીમાં નોંધપાત્ર વધારો (સમાન ઈન્ફ્રાસ્ટ્રક્ચર પર આંતરિક પરીક્ષણોમાં, બક2 બક કરતા બમણી ઝડપથી એસેમ્બલી કાર્યો કરે છે).

બિલ્ડ સિસ્ટમ્સ વિકાસકર્તા અને તેમના ચાલતા કોડ વચ્ચે ઊભી છે, તેથી અનુભવને ઝડપી અથવા વધુ ઉત્પાદક બનાવવા માટે અમે જે કંઈ પણ કરી શકીએ છીએ તે વિકાસકર્તા કેટલા અસરકારક હોઈ શકે તેની સીધી અસર કરે છે. Buck2 માટેનો ધ્યેય બક1 (બેઝિક્સ અને વર્કફ્લો) વિશે અમને જે ગમતો હતો તે જાળવી રાખવાનો હતો, બક1 પછીની નવીનતાઓમાંથી પ્રેરણા લેવી (બેઝલ, એડેપ્ટન અને શેક સહિત), અને ઝડપ પર ધ્યાન કેન્દ્રિત કરવું અને નવા અનુભવોને સક્ષમ કરવાનું હતું.

બક2 વિશે

તે પ્રકાશિત થયેલ છે સિસ્ટમ ચોક્કસ ભાષાઓમાં કોડની રચના સાથે જોડાયેલી નથી અને બૉક્સની બહાર, તે Facebook દ્વારા ઉપયોગમાં લેવાતા C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell અને OCaml માં લખેલા બિલ્ડર પ્રોજેક્ટ્સને સપોર્ટ કરે છે.

પાયથોન પર આધારિત સ્ટારલાર્ક ભાષાનો ઉપયોગ પ્લગઈન્સ ડિઝાઇન કરવા, સ્ક્રિપ્ટો અને નિયમો બનાવવા માટે થાય છે. સ્ટારલાર્ક તમને બિલ્ડ સિસ્ટમની ક્ષમતાઓને વિસ્તારવા અને પ્રોજેક્ટ્સમાં ઉપયોગમાં લેવાતી વિશિષ્ટ ભાષાઓમાંથી અમૂર્ત કરવાની મંજૂરી આપે છે.

તેવો ઉલ્લેખ છે પરિણામોને કેશ કરીને ઉચ્ચ પ્રદર્શન પ્રાપ્ત થાય છે, કાર્યનું સમાંતરીકરણ અને કાર્યોના રિમોટ એક્ઝેક્યુશન માટે સપોર્ટ (રિમોટ બિલ્ડ એક્ઝેક્યુશન).

બિલ્ડ પર્યાવરણ "હર્મેટીસીટી" ના ખ્યાલનો ઉપયોગ કરે છે: સંકલિત કોડ બહારની દુનિયાથી અલગ છે, બિલ્ડ પ્રક્રિયા દરમિયાન બહારથી કંઈપણ લોડ કરવામાં આવતું નથી, અને વિવિધ સિસ્ટમો પર જોબનું પુનરાવર્તિત અમલ સમાન પરિણામ તરફ દોરી જાય છે (પુનરાવર્તિત બિલ્ડ્સ, ઉદાહરણ તરીકે, પ્રોજેક્ટ કમ્પાઇલ કરવાનું પરિણામ વિકાસકર્તાનું મશીન સતત એકીકરણ સર્વર પરના બિલ્ડ જેવું જ હશે). બક2 માં નિર્ભરતાની સ્થિતિનો અભાવ બગ તરીકે જોવામાં આવે છે.

ના ભાગ પર Buck2 મુખ્ય લક્ષણો, નીચે આપેલ સ્ટેન્ડ:

  • પ્રોગ્રામિંગ ભાષાઓ અને કોર બિલ્ડ સિસ્ટમને સપોર્ટ કરવાના નિયમો સંપૂર્ણપણે અલગ છે. નિયમો સ્ટારલાર્ક ભાષામાં લખાયેલા છે, અને સ્ટારલાર્ક ટૂલકીટ અને અમલીકરણ રસ્ટમાં લખાયેલ છે.
  • બિલ્ડ સિસ્ટમ સિંગલ ઇન્ક્રીમેન્ટલ ડિપેન્ડન્સી ગ્રાફ (કોઈ સ્ટેજીંગ) નો ઉપયોગ કરે છે, જે તમને બક અને બેઝલની તુલનામાં કામની સમાંતરતાની ઊંડાઈ વધારવા અને અનેક પ્રકારની ભૂલોને ટાળવા દે છે.
  • GitHub પર પોસ્ટ કરવામાં આવેલ બક2નો કોડ અને પ્રોગ્રામિંગ ભાષાના આધાર નિયમો લગભગ ફેસબુકના ઈન્ફ્રાસ્ટ્રક્ચરમાં વપરાતા આંતરિક સંસ્કરણ સાથે સમાન છે (માત્ર તફાવતો Facebook દ્વારા ઉપયોગમાં લેવાતી કમ્પાઈલર આવૃત્તિઓ અને બિલ્ડ સર્વર્સની લિંકમાં છે).
  • બિલ્ડ સિસ્ટમ રિમોટ જોબ એક્ઝિક્યુશન સિસ્ટમ્સ સાથે સંકલિત કરવા માટે ડિઝાઇન કરવામાં આવી છે જે તમને રિમોટ સર્વર્સ પર નોકરીઓ ચલાવવા માટે પરવાનગી આપે છે. રીમોટ એક્ઝેક્યુશન API Bazel સાથે સુસંગત છે અને Buildbarn અને EngFlow સાથે સુસંગતતા માટે પરીક્ષણ કરવામાં આવ્યું છે.
  • વર્ચ્યુઅલ ફાઇલ સિસ્ટમ્સ સાથે એકીકરણ પ્રદાન કરવામાં આવે છે, જેમાં સમગ્ર રીપોઝીટરીની સામગ્રીઓ રજૂ કરવામાં આવે છે, પરંતુ હકીકતમાં, કાર્ય રીપોઝીટરીના એક ભાગના વાસ્તવિક સ્થાનિક ભાગ સાથે હાથ ધરવામાં આવે છે (વિકાસકર્તા સમગ્ર રીપોઝીટરી જુએ છે, પરંતુ માત્ર શું આવશ્યક છે) ઍક્સેસ કરેલી ફાઇલો રીપોઝીટરીમાંથી પુનઃપ્રાપ્ત કરવામાં આવે છે). EdenFS-આધારિત VFS અને Git LFS સપોર્ટેડ છે, જેનો ઉપયોગ Sapling દ્વારા થાય છે.

છેલ્લે, જેઓ તેના વિશે વધુ જાણવા માટે સક્ષમ થવામાં રસ ધરાવતા હોય, તેઓને ખબર હોવી જોઈએ કે કોડ અપાચે 2.0 લાયસન્સ હેઠળ વિતરિત કરવામાં આવ્યો છે અને તેઓ વિગતોનો સંપર્ક કરી શકે છે. નીચેની કડીમાં


તમારી ટિપ્પણી મૂકો

તમારું ઇમેઇલ સરનામું પ્રકાશિત કરવામાં આવશે નહીં. આવશ્યક ક્ષેત્રો સાથે ચિહ્નિત થયેલ છે *

*

*

  1. ડેટા માટે જવાબદાર: મિગ્યુએલ gelંજેલ ગેટóન
  2. ડેટાનો હેતુ: નિયંત્રણ સ્પામ, ટિપ્પણી સંચાલન.
  3. કાયદો: તમારી સંમતિ
  4. ડેટાની વાતચીત: કાયદાકીય જવાબદારી સિવાય ડેટા તૃતીય પક્ષને આપવામાં આવશે નહીં.
  5. ડેટા સ્ટોરેજ: cસેન્ટસ નેટવર્ક્સ (ઇયુ) દ્વારા હોસ્ટ કરેલો ડેટાબેઝ
  6. અધિકાર: કોઈપણ સમયે તમે તમારી માહિતીને મર્યાદિત, પુન recoverપ્રાપ્ત અને કા deleteી શકો છો.