package b0
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha512=e9aa779e66c08fc763019f16d4706f465d16c05d6400b58fbd0313317ef33ddea51952e2b058db28e65f7ddb7012f328c8bf02d8f1da17bb543348541a2587f0
doc/index.html
b0 v0.0.6
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.
Manuals
Some quick hints if you need to use the b0
tool occasionally.
For all users
- The b0 manual is a conceptual overview of the b0 system and b0 files. It is recommended reading.
- The testing manual describes support to test your software with
b0 test
. - The release manual describes support to publish source software with the
.release
action. - The action manual describes how to define your own actions.
- The build unit manual describes how to create your own build units.
- The memo manual describes the
b0.memo
build library.
For OCaml users
- The b0 OCaml manual describes support for handling your OCaml projects.
- The b0 opam manual describes support to generate
opam
files and publish them in repositories with the.opam
action.
For b0 developers
- The driver manual describes how to make your own drivers to operate on b0 files.
- The TODO page
- Old manual fragments and TODO which will eventually disappear.
- The rationale of b0, written a long time ago but still relevant
Library b0.std
The 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.
Standard needs
B0_std
Standard needs for b0 programs.B0_std_cli
Cmdliner support formore
programs.B0_hash
Hash values and functions.
Codecs
B0_adhoc
Ad-hoc data extraction.B0_base64
base64
andbase64url
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_url
Sloppy URL processing.B0_version
Software version numbers.
Tools
B0_rsync
rsync
support.B0_testing
Unit, random and snapshot testing for OCaml.
VCS and code hosting
B0_vcs_repo
Version control system (VCS) repositories.B0_github
GitHub interaction.
Viewers and editors
B0_editor
Editor interaction.B0_pager
Pager interaction.B0_pdf_viewer
PDF viewer interaction.B0_web_browser
Web browser interaction.
Library b0.memo
The 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 formatB0_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.
Library b0.file
This 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 definitions
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.
Driver support
The following is only needed if you want to process b0 files your own own way. See the driver manual.
Library b0.kit
All 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
Testing and releasing
B0_expect
Expectation tests.B0_release
Source software release helpers.B0_show_url
Action and unit execution to show URLs after builds.
OCaml support
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.