Senin, 02 Juli 2018

Sponsored Links

The top 14 new open source projects | InfoWorld
src: images.techhive.com

In software development, Bazel is free software that enables development automation and software testing. Google Company uses the internally and released Blaze build tool and sourced part of the Blaze tool as Bazel, named as anagram Blaze. Bazel was first released in March 2015 and reached beta status in September 2015.

Similar to building tools like Make, Apache Ant, or Apache Maven, Bazel builds software applications from source code using a set of rules. Rules and macros are made in Skylark language, part of Python. There are built-in rules for building software written in the Java, C, C, Go, Python, Objective-C and Bourne shell programming languages. Bazel can generate appropriate software application packages for deployment for Android and iOS operating systems.

In designing Bazel, emphasis has been placed on the speed of build, accuracy, and reproducibility. Tools use parallelization to accelerate part of the build process. This includes the Bazel Query language that can be used to analyze build dependencies in complex build frames.


Video Bazel (software)



Rationale

One of the goals of Bazel is to create a build system in which construct target input and output is fully determined and therefore known as build system. This allows more accurate analysis and determination of outdated build artifacts in the build system dependency graph. Creating dependency graph analysis leads more deterministically to the potential increase in building time by avoiding the re-implementation of unnecessary build targets. Building improved reliability by avoiding errors when building targets may depend on expired input artefacts.

To achieve more accurate graphical dependency analysis, Bazel uses digested content rather than time-based file stamps. Time stamp files are usually used to detect changes in tools like Make or Apache Ant. Timestamp can be a problem when build is distributed to multiple hosts due to problems with clock synchronization. One of Bazel's goals is to enable parallel and distributed distributions on remote cloud infrastructure. Bazel is also designed to scale up to very large building repositories that may not be practical to download to an individual developer's machine.

Bazel provides tooling that helps developers to create output builds that can be reproduced with identical bits. Bazel's applied rules avoid typical traps such as pasting timestamps in the resulting results to ensure content match. This in turn allows the system wake up to reliably cache (memoize) the output of the intermediate build steps. Furthermore, reproducible creation makes it possible to share results between teams or departments within an organization, using a dedicated build server or distributed cache. Therefore, Bazel is best suited for larger organizations and software projects that have significant number of development dependencies. Builds the deterministic and ability to precisely analyze building input artifacts and outputs across the dependency graphs suitable for the implementation of parallel build steps.

Bazel can be expanded with special Skylark programming language. Skylark uses a syntax that is part of the syntax of the Python programming language. Skylark does not, however, implement many Python language features, such as the ability to mutate collections or access I/O files, to avoid extensions that can create side effects or create build output unknown to the build system itself. Such side effects potentially lead to a false analysis of the development dependency graph.

Bazel is designed as a multi-language build system. Many commonly used build systems are designed with a preference for a particular programming language. Examples of such systems include Ant and Maven for Java, Leiningen for Clojure, sbt for Scala, etc. In a multi-lingual project, combining a separate build system and reaching the build speed and the truth benefits described above can be difficult and problematic.

Bazel also provides execution of building sandboxes. This can be used to ensure all build dependencies are precisely determined and builds are independent of, for example, in libraries that are only locally installed on the developer's workstation. This helps ensure that build remains portable and can run in other (remote) environments.

Building the system most similar to Bazel is Pants and Buck. Pants and Buck aims for the same technical design purposes as Bazel and is inspired by the Blaze system used internally on Google. Blaze is also a precursor to Bazel. An independently developed development system with the same goal of efficient graphical dependability analysis and automated build artefact tracking has been implemented in building systems such as tup.

Maps Bazel (software)



Since the early release of the logo Bazel is a "b" green lettering into basil with two leaves.

On July 5, 2017, Blog Bazel announces a new logo, which consists of three green building blocks that are structured to form the heart.

Golang UK Conference 2017 | Paul Bellamy - Building Go with Bazel ...
src: i.ytimg.com


See also

  • List of building automation software

Monster Hunter: World - 10 Best Armour Sets You Must Unlock รข€
src: cdn3.whatculture.com


References


Front End Development with Bazel: Angular/TypeScript and ...
src: i.ytimg.com


External links

  • Official website

Source of the article : Wikipedia

Comments
0 Comments