Rhyddhau system adeiladu Bazel 1.0

A gyflwynwyd gan rhyddhau offer cydosod agored Bazel 1.0, a ddatblygwyd gan beirianwyr o Google a'i ddefnyddio i gydosod y rhan fwyaf o brosiectau mewnol y cwmni. Roedd Datganiad 1.0 yn nodi'r newid i fersiynau rhyddhau semantig ac roedd hefyd yn nodedig am gyflwyno nifer fawr o newidiadau a oedd yn torri'n ôl ar gydnawsedd. Cod prosiect dosbarthu gan trwyddedig o dan Apache 2.0.

Mae Bazel yn adeiladu'r prosiect trwy redeg y casglwyr a'r profion angenrheidiol. Mae'r system adeiladu wedi'i chynllunio o'r gwaelod i fyny i adeiladu prosiectau Google yn y ffordd orau bosibl, gan gynnwys prosiectau mawr iawn a phrosiectau sy'n cynnwys cod mewn ieithoedd rhaglennu lluosog, sydd angen profion helaeth, ac wedi'u hadeiladu ar gyfer llwyfannau lluosog. Mae'n cefnogi adeiladu a phrofi cod yn Java, C ++, Amcan-C, Python, Rust, Go a llawer o ieithoedd eraill, yn ogystal ag adeiladu cymwysiadau symudol ar gyfer Android ac iOS. Cefnogir y defnydd o ffeiliau cydosod sengl ar gyfer gwahanol lwyfannau a phensaernïaeth; er enghraifft, gellir defnyddio un ffeil cydosod heb newidiadau ar gyfer system gweinydd a dyfais symudol.

Ymhlith nodweddion nodedig Bazel mae cyflymder uchel, dibynadwyedd ac ailadroddadwyedd y broses ymgynnull. Er mwyn cyflawni cyflymder adeiladu uchel, mae Bazel yn defnyddio technegau caching a parallelization ar gyfer y broses adeiladu. Rhaid i ffeiliau ADEILADU ddiffinio'r holl ddibyniaethau yn llawn, ar sail y penderfyniadau a wneir i ailadeiladu cydrannau ar ôl i newidiadau gael eu gwneud (dim ond ffeiliau wedi'u newid sy'n cael eu hailadeiladu) a chyfochrog â'r broses gydosod. Mae offeru hefyd yn sicrhau cydosod y gellir ei ailadrodd, h.y. bydd canlyniad adeiladu prosiect ar beiriant y datblygwr yn hollol union yr un fath â'r adeiladu ar systemau trydydd parti, megis gweinyddwyr integreiddio parhaus.

Yn wahanol i Make a Ninja, mae Bazel yn defnyddio dull lefel uwch o adeiladu rheolau cydosod, lle, yn lle diffinio rhwymiad gorchmynion i'r ffeiliau sy'n cael eu hadeiladu, defnyddir blociau parod mwy haniaethol, megis “adeiladu ffeil gweithredadwy yn C++”, “adeiladu llyfrgell yn C++” neu “rhedeg prawf ar gyfer C++”, yn ogystal â nodi llwyfannau targed ac adeiladu. Yn ffeil testun BUILD, disgrifir cydrannau'r prosiect fel criw o lyfrgelloedd, ffeiliau gweithredadwy a phrofion, heb fanylu ar lefel ffeiliau unigol a gorchmynion galwadau casglwr. Gweithredir ymarferoldeb ychwanegol trwy'r mecanwaith ar gyfer cysylltu estyniadau.

Ffynhonnell: opennet.ru

Ychwanegu sylw