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
.releaseaction. - 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.memobuild library.
For OCaml users
- The b0 OCaml manual describes support for handling your OCaml projects.
- The b0 opam manual describes support to generate
opamfiles and publish them in repositories with the.opamaction.
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_stdStandard needs for b0 programs.B0_std_cliCmdliner support formoreprograms.B0_hashHash values and functions.
Codecs
B0_adhocAd-hoc data extraction.B0_base64base64andbase64urlcodecs.B0_bincodeBinary coding of values.B0_dotDot graph generation.B0_httpHTTP client.B0_htmlHTML generation.B0_jsonJSON text support.B0_sexpS-expression support.B0_tartarfile archives.B0_textUTF-8 text lexing tools.B0_urlSloppy URL processing.B0_versionSoftware version numbers.
Tools
B0_rsyncrsyncsupport.B0_testingUnit, random and snapshot testing for OCaml.
VCS and code hosting
B0_vcs_repoVersion control system (VCS) repositories.B0_githubGitHub interaction.
Viewers and editors
B0_editorEditor interaction.B0_pagerPager interaction.B0_pdf_viewerPDF viewer interaction.B0_web_browserWeb 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_queueRandom queueB0_zeroBuild memoizer plumbing.B0_zero_convSerialize and formatB0_zerovalues.B0_memoBuild memoizerB0_memo_logMemo log.B0_memo_cliCommand line interface fragments and logic.B0_build_traceTrace build operations.B0_memo_kitHigher-level memoizing operations.
Library b0.file
This library has the the system for describing software construction and deployments via b0 files.
B0_cliCommand line interface fragments and logic.B0_file_extsFile extension sets and maps.B0_srcsSelect source files.
b0 definitions
B0_buildBuilds.B0_build_kitBuild tools.B0_defb0 definitions.B0_envExecution environments.B0_metaMetadata.B0_packBuild packs.B0_scopeName scopes.B0_storeLazy immutable stores.B0_unitBuild 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_kitAPIs to use in b0 files.B0_action_kitTools for actions and unit executions.B0_cmarkcmarksupport.B0_findexFile indexes.B0_initGenerate files from templates.B0_osOperating system and machine information.B0_srcsSelect source files.B0_web_page
Testing and releasing
B0_expectExpectation tests.B0_releaseSource software release helpers.B0_show_urlAction and unit execution to show URLs after builds.
OCaml support
B0_dunedunesupport.B0_jsoojs_of_ocamlsupport.B0_ocamlocamlsupport.B0_odocodoc support.B0_opamopamsupport.
Note. The B0_ocaml module is in fact defined in the b0.file library as it is used to compile B0.ml files.