Bazel 2.0 එකලස් කිරීමේ පද්ධතිය මුදා හැරීම

ඇත විවෘත එකලස් කිරීමේ මෙවලම් නිකුත් කිරීම බාසල් 2.0, Google හි ඉංජිනේරුවන් විසින් වැඩි දියුණු කරන ලද අතර සමාගමේ අභ්‍යන්තර ව්‍යාපෘති බොහොමයක් එකලස් කිරීමට භාවිතා කරන ලදී. අවශ්‍ය සම්පාදක සහ පරීක්ෂණ ක්‍රියාත්මක කිරීමෙන් Bazel ව්‍යාපෘතිය ගොඩනඟයි. එය Java, C++, Objective-C, Python, Rust, Go සහ තවත් බොහෝ භාෂා වල කේතය ගොඩනැගීමට සහ පරීක්ෂා කිරීමට මෙන්ම Android සහ iOS සඳහා ජංගම යෙදුම් තැනීමට සහය දක්වයි. ව්යාපෘති කේතය විසින් බෙදා හරිනු ලැබේ Apache 2.0 යටතේ බලපත්‍ර ලබා ඇත.

සැලකිය යුතු අනුවාද වෙනසකට පසුගාමී අනුකූලතාව බිඳ දමන වෙනස්කම් එකතු කිරීම ඇතුළත් වේ. Bazel 2.0 සමඟින් පටන් ගෙන, පහත මාතයන් පෙරනිමියෙන් සක්‍රීය කර ඇත: “—incompatible_remap_main_repo” (නම මගින් සබැඳි සහ @ now හරහා එම ගබඩාවට සබැඳිය), “—incompatible_disallow_dict_lookup”_ (නොහැකි යතුරු භාවිතය),
"--නොගැලපෙන_remove_native_maven_jar" සහ "--incompatible_prohibit_aapt1". අනෙකුත් වෙනස්කම් වලට ඇතුළත් වන්නේ:

  • කණ්ඩායමක ජලධරය “ප්‍රෝටෝ” ප්‍රතිදාන ආකෘතියේ (-output=proto) නව සංස්කරණයක් සඳහා පර්යේෂණාත්මක සහාය දර්ශනය වී ඇත, එය දැනට පෙරනිමියෙන් අබල කර ඇත (-incompatible_proto_output_v2) සහ දත්ත වඩාත් සංයුක්ත ඉදිරිපත් කිරීමක් සපයයි;
  • PlatformConfiguration.enabled_toolchain_types ක්ෂේත්‍රය ඉවත් කිරීමට "--incompatible_remove_enabled_toolchain_types" ධජය එක් කරන ලදී;
  • ඒවා විස්තාරණය කිරීමේදී මාර්ග පූරණය කිරීමේදී චක්‍රීය සංකේතාත්මක සබැඳි භාවිතා කරන පැකේජ පැටවීමට එරෙහිව එකතු කරන ලද ආරක්ෂාව;
  • බාහිර gRPC හැඹිලි සමඟ “--disk_cache” ධජය භාවිතා කිරීමේ හැකියාව ක්‍රියාත්මක කරන ලදී;
  • Debian පැකේජය සහ ද්විමය ස්ථාපකය තුළ ~/.bazelversion ගොනු හසුරුවන වැඩිදියුණු කළ ස්ථරයක් සහ $USE_BAZEL_VERSION පරිසර විචල්‍යය ඇතුළත් වේ;
  • ධාවන ගොනු මැනිෆෙස්ට් ගොනු අවලංගු කිරීම සඳහා සූදානම් වීමේදී, "--experimental_skip_runfiles_manifests" ධජය එක් කර ඇත.

Bazel හි සුවිශේෂී ලක්ෂණ අතර, එකලස් කිරීමේ ක්රියාවලියේ අධික වේගය, විශ්වසනීයත්වය සහ පුනරාවර්තනය වේ. ඉහළ ගොඩනැගීමේ වේගයක් ලබා ගැනීම සඳහා, Bazel ගොඩනැගීමේ ක්‍රියාවලිය සඳහා හැඹිලි සහ සමාන්තරකරණ ක්‍රම සක්‍රීයව භාවිතා කරයි. BUILD ගොනු සියලු පරායත්තයන් සම්පූර්ණයෙන් නිර්වචනය කළ යුතු අතර, වෙනස්කම් සිදු කිරීමෙන් පසුව (වෙනස් කළ ගොනු පමණක් නැවත ගොඩනඟා ඇත) සහ එකලස් කිරීමේ ක්‍රියාවලිය සමාන්තරගත කිරීමෙන් පසු සංරචක නැවත ගොඩනැගීමට තීරණ ගනු ලැබේ. මෙවලම් මඟින් නැවත නැවතත් එකලස් කිරීම සහතික කරයි, i.e. සංවර්ධකයාගේ යන්ත්‍රය මත ව්‍යාපෘතියක් ගොඩනැගීමේ ප්‍රතිඵලය අඛණ්ඩ ඒකාබද්ධතා සේවාදායක වැනි තෙවන පාර්ශවීය පද්ධති මත ගොඩනැගීමට සම්පූර්ණයෙන්ම සමාන වේ.

Make සහ Ninja මෙන් නොව, Bazel එකලස් කිරීමේ නීති ගොඩනැගීම සඳහා ඉහළ මට්ටමේ ප්‍රවේශයක් භාවිතා කරයි, එහිදී, ගොඩනගනු ලබන ලිපිගොනු වලට විධාන බන්ධනය කිරීම අර්ථ දැක්වීම වෙනුවට, “ක්‍රියාත්මක කළ හැකි ගොනුවක් තැනීම වැනි වඩා වියුක්ත සූදානම් කළ කුට්ටි භාවිතා කරයි. C++”, “C++ හි පුස්තකාලයක් තැනීම” හෝ “C++ සඳහා පරීක්ෂණයක් ක්‍රියාත්මක කිරීම”, මෙන්ම ඉලක්ක හඳුනා ගැනීම සහ වේදිකා තැනීම. BUILD පෙළ ගොනුව තුළ, ව්‍යාපෘති සංරචක තනි ගොනු සහ සම්පාදක ඇමතුම් විධාන මට්ටමින් විස්තර නොකර පුස්තකාල, ක්‍රියාත්මක කළ හැකි ගොනු සහ පරීක්ෂණ සමූහයක් ලෙස විස්තර කෙරේ. දිගු සම්බන්ධ කිරීම සඳහා යාන්ත්රණය හරහා අතිරේක ක්රියාකාරිත්වය ක්රියාත්මක වේ.

විවිධ වේදිකා සහ ගෘහ නිර්මාණ සඳහා තනි එකලස් ගොනු භාවිතය සඳහා සහය දක්වයි; උදාහරණයක් ලෙස, වෙනස්කම් නොමැතිව එක් එකලස් ගොනුවක් සේවාදායක පද්ධතියක් සහ ජංගම උපාංගයක් සඳහා භාවිතා කළ හැක. ගොඩනැංවීමේ පද්ධතිය ගොඩනඟා ඇත්තේ ඉතා විශාල ව්‍යාපෘති සහ බහු ක්‍රමලේඛන භාෂාවලින් කේත අඩංගු ව්‍යාපෘති ඇතුළුව Google ව්‍යාපෘති ප්‍රශස්ත ලෙස ගොඩ නැගීම සඳහා, විස්තීර්ණ පරීක්ෂණ අවශ්‍ය සහ බහු වේදිකා සඳහා ගොඩනගා ඇත.

මූලාශ්රය: opennet.ru

අදහස් එක් කරන්න