WARNING. This package is unstable and work in progress, do not depend on it.
b0 describes software construction and deployments using modular and customizable definitions written in OCaml.
At the core of b0 is the b0.memo library wich provides arbitrary build abstraction with reliable, efficient incremental rebuilds.
Some quick hints if you need to use the b0 tool occasionally.
b0 test..release action.b0.memo build library.opam files and publish them in repositories with the .opam action.b0.stdThe b0.std library has a few things that should be in the stdlib and a few others that should not be but are useful for b0 based programs and do not specifically depend on b0.
B0_std Standard needs for b0 programs.B0_std_cli Cmdliner support for more programs.B0_hash Hash values and functions.B0_adhoc Ad-hoc data extraction.B0_base64 base64 and base64url codecs.B0_bincode Binary coding of values.B0_dot Dot graph generation.B0_http HTTP client.B0_html HTML generation.B0_json JSON text support.B0_sexp S-expression support.B0_tar tar file archives.B0_text UTF-8 text lexing tools.B0_version Software version numbers.B0_rsync rsync support.B0_testing Unit, random and snapshot testing for OCaml.B0_vcs_repo Version control system (VCS) repositories.B0_github GitHub interaction.B0_editor Editor interaction.B0_pager Pager interaction.B0_pdf_viewer PDF viewer interaction.B0_web_browser Web browser interaction.b0.memoThe b0.memo library implements the build model used by b0. It can be used for its own good without resorting to the b0.file library to devise domain specific build systems – see for example the brzo or odig tools.
B0_random_queue Random queueB0_zero Build memoizer plumbing.B0_zero_conv Serialize and format B0_zero values.B0_memo Build memoizerB0_memo_log Memo log.B0_memo_cli Command line interface fragments and logic.B0_build_trace Trace build operations.B0_memo_kit Higher-level memoizing operations.b0.fileThis library has the the system for describing software construction and deployments via b0 files.
B0_cli Command line interface fragments and logic.B0_file_exts File extension sets and maps.B0_srcs Select source files.B0_build Builds.B0_build_kit Build tools.B0_def b0 definitions.B0_env Execution environments.B0_meta Metadata.B0_pack Build packs.B0_scope Name scopes.B0_store Lazy immutable stores.B0_unit Build units.The following is only needed if you want to process b0 files your own own way. See the driver manual.
b0.kitAll the convenience you need for writing b0 files.
B0_kit APIs to use in b0 files.B0_action_kit Tools for actions and unit executions.B0_cmark cmark support.B0_findex File indexes.B0_init Generate files from templates.B0_os Operating system and machine information.B0_srcs Select source files.B0_web_page B0_expect Expectation tests.B0_release Source software release helpers.B0_show_url Action and unit execution to show URLs after builds.B0_dune dune support.B0_jsoo js_of_ocaml support.B0_ocaml ocaml support.B0_odoc odoc support.B0_opam opam support.Note. The B0_ocaml module is in fact defined in the b0.file library as it is used to compile B0.ml files.