package alcotest

  1. Overview
  2. Docs
Alcotest is a lightweight and colourful test framework

Install

dune-project
 Dependency

Authors

Maintainers

Sources

alcotest-1.8.0.tbz
sha256=cba1bd01707c8c55b4764bb0df8c9c732be321e1f1c1a96a406e56d8dbca1d0e
sha512=eebb034c990abd253f526e848a99881686d7bd3c7d1b1d373953d568d062e3d5aaa79b6b4807455aaa9a98710eca4ada30e816a0134717a380619a597575564d

Description

Alcotest exposes simple interface to perform unit tests. It exposes a simple TESTABLE module type, a check function to assert test predicates and a run function to perform a list of unit -> unit test callbacks.

Alcotest provides a quiet and colorful output where only faulty runs are fully displayed at the end of the run (with the full logs ready to inspect), with a simple (yet expressive) query language to select the tests to run.

Added to opam-repository:

README

A lightweight and colourful test framework.


Alcotest exposes a simple interface to perform unit tests. It exposes a simple TESTABLE module type, a check function to assert test predicates and a run function to perform a list of unit -> unit test callbacks.

Alcotest provides a quiet and colorful output where only faulty runs are fully displayed at the end of the run (with the full logs ready to inspect), with a simple (yet expressive) query language to select the tests to run. See the manpage for details.

The API documentation can be found here. For information on contributing to Alcotest, see CONTRIBUTING.md.

OCaml-CI Build Status Alcotest Documentation


Examples

A simple example (taken from examples/simple.ml):

Generated by the following test suite specification:

(* Build with `ocamlbuild -pkg alcotest simple.byte` *)

(* A module with functions to test *)
module To_test = struct
  let lowercase = String.lowercase_ascii
  let capitalize = String.capitalize_ascii
  let str_concat = String.concat ""
  let list_concat = List.append
end

(* The tests *)
let test_lowercase () =
  Alcotest.(check string) "same string" "hello!" (To_test.lowercase "hELLO!")

let test_capitalize () =
  Alcotest.(check string) "same string" "World." (To_test.capitalize "world.")

let test_str_concat () =
  Alcotest.(check string) "same string" "foobar" (To_test.str_concat ["foo"; "bar"])

let test_list_concat () =
  Alcotest.(check (list int)) "same lists" [1; 2; 3] (To_test.list_concat [1] [2; 3])

(* Run it *)
let () =
  let open Alcotest in
  run "Utils" [
      "string-case", [
          test_case "Lower case"     `Quick test_lowercase;
          test_case "Capitalization" `Quick test_capitalize;
        ];
      "string-concat", [ test_case "String mashing" `Quick test_str_concat  ];
      "list-concat",   [ test_case "List mashing"   `Slow  test_list_concat ];
    ]

The result is a self-contained binary which displays the test results. Use dune exec examples/simple.exe -- --help to see the runtime options.

Here's an example of a of failing test suite:

By default, only the first failing test log is printed to the console (and all test logs are captured on disk). Pass --show-errors to print all error messages.

Using Alcotest with opam and Dune

Add (alcotest :with-test) to the depends stanza of your dune-project file, or "alcotest" {with-test} to your opam file. Use the with-test package variable to declare your tests opam dependencies. Call opam to install them:

$ opam install --deps-only --with-test .

You can then declare your test and link with Alcotest: (test (libraries alcotest …) …), and run your tests:

$ dune runtest

Selecting tests to execute

You can filter which tests to run by supplying a regular expression matching the names of the tests to execute, or by passing a regular expression and a comma-separated list of test numbers (or ranges of test numbers, e.g. 2,4..9):

$ ./simple.native test '.*concat*'
Testing Utils.
[SKIP]     string-case            0   Lower case.
[SKIP]     string-case            1   Capitalization.
[OK]       string-concat          0   String mashing.
[OK]       list-concat            0   List mashing.
The full test results are available in `_build/_tests`.
Test Successful in 0.000s. 2 tests run.

$ ./simple.native test 'string-case' '1..3'
Testing Utils.
[SKIP]     string-case            0   Lower case.
[OK]       string-case            1   Capitalization.
[SKIP]     string-concat          0   String mashing.
[SKIP]     list-concat            0   List mashing.
The full test results are available in `_build/_tests`.
Test Successful in 0.000s. 1 test run.

Note that you cannot filter by test case name (i.e. Lower case or Capitalization), you must filter by test name & number instead.

See the examples directory for more examples.

Quick and Slow tests

In general you should use `Quick tests: tests that are ran on any invocations of the test suite. You should only use `Slow tests for stress tests that are ran only on occasion (typically before a release or after a major change). These slow tests can be suppressed by passing the -q flag on the command line, e.g.:

$ ./test.exe -q # run only the quick tests
$ ./test.exe    # run quick and slow tests

Passing custom options to the tests

In most cases, the base tests are unit -> unit functions. However, it is also possible to pass an extra option to all the test functions by using 'a -> unit, where 'a is the type of the extra parameter.

In order to do this, you need to specify how this extra parameter is read on the command-line, by providing a Cmdliner term for command-line arguments which explains how to parse and serialize values of type 'a (note: do not use positional arguments, only optional arguments are supported).

For instance:

let test_nice i = Alcotest.(check int) "Is it a nice integer?" i 42

let int =
  let doc = "What is your preferred number?" in
  Cmdliner.Arg.(required & opt (some int) None & info ["n"] ~doc ~docv:"NUM")

let () =
  Alcotest.run_with_args "foo" int [
    "all", ["nice", `Quick, test_nice]
  ]

Will generate test.exe such that:

$ test.exe test
test.exe: required option -n is missing

$ test.exe test -n 42
Testing foo.
[OK]                all          0   int.

Lwt

Alcotest provides an Alcotest_lwt module that you could use to wrap Lwt test cases. The basic idea is that instead of providing a test function in the form unit -> unit, you provide one with the type unit -> unit Lwt.t and alcotest-lwt calls Lwt_main.run for you.

However, there are a couple of extra features:

  • If an async exception occurs, it will cancel your test case for you and fail it (rather than exiting the process).
  • You get given a switch, which will be turned off when the test case finishes (or fails). You can use that to free up any resources.

For instance:

let free () = print_endline "freeing all resources"; Lwt.return ()

let test_lwt switch () =
  Lwt_switch.add_hook (Some switch) free;
  Lwt.async (fun () -> failwith "All is broken");
  Lwt_unix.sleep 10.

let () =
  Lwt_main.run @@ Alcotest_lwt.run "foo" [
    "all", [
      Alcotest_lwt.test_case "one" `Quick test_lwt
    ]
  ]

Will generate:

$ test.exe
Testing foo.
[ERROR]             all          0   one.
-- all.000 [one.] Failed --
in _build/_tests/all.000.output:
freeing all resources
[failure] All is broken

Comparison with other testing frameworks

The README is pretty clear about that:

Alcotest is the only testing framework using colors!

More seriously, Alcotest is similar to ounit but it fixes a few of the problems found in that library:

  • Alcotest has a nicer output, it is easier to see what failed and what succeeded and to read the log outputs of the failed tests;
  • Alcotest uses combinators to define pretty-printers and comparators between the things to test.

Other nice tools doing different kind of testing also exist:

  • qcheck does random generation and property testing (e.g. Quick Check);
  • crowbar and bun are similar to qcheck, but use compiler-directed randomness, i.e. they take advantage of the AFL support the OCaml compiler;
  • ppx_inline_tests allows to write tests in the same file as your source-code; they will be run only in a special mode of compilation.

Dependencies (9)

  1. ocaml-syntax-shims
  2. uutf >= "1.0.1"
  3. stdlib-shims
  4. re >= "1.7.2"
  5. cmdliner >= "1.2.0"
  6. astring
  7. fmt >= "0.8.7"
  8. ocaml >= "4.08"
  9. dune >= "3.0"

Dev Dependencies (2)

  1. odoc with-doc
  2. cmdliner with-test & < "2.0.0"

  1. ahrocksdb
  2. albatross >= "1.5.4"
  3. alcobar
  4. alg_structs_qcheck
  5. algaeff
  6. ambient-context
  7. ambient-context-eio
  8. ambient-context-lwt
  9. angstrom >= "0.7.0"
  10. ansi >= "0.6.0"
  11. anycache >= "0.7.4"
  12. anycache-lwt
  13. arc
  14. archetype >= "1.4.2"
  15. archi
  16. arp
  17. arrakis < "1.1.0"
  18. art
  19. asai
  20. asak
  21. asli >= "0.2.0"
  22. asn1-combinators >= "0.2.5"
  23. atd >= "2.3.3"
  24. atdgen >= "2.10.0"
  25. atdpy
  26. atdts
  27. avro-simple
  28. awskit < "0.2.0"
  29. awskit-eio < "0.2.0"
  30. awskit-lwt < "0.2.0"
  31. awskit-lwt-unix < "0.2.0"
  32. awskit-s3 < "0.2.0"
  33. awskit-s3-eio < "0.2.0"
  34. awskit-s3-lwt < "0.2.0"
  35. awskit-s3-lwt-unix < "0.2.0"
  36. awskit-s3-sim < "0.2.0"
  37. azure-cosmos-db-eio
  38. backoff
  39. base32
  40. base64 >= "2.1.2" & < "3.2.0" | >= "3.4.0"
  41. bastet
  42. bastet_lwt
  43. bech32
  44. bechamel >= "0.5.0"
  45. bigarray-overlap
  46. bigstringaf
  47. biotk >= "0.4"
  48. bitlib
  49. bizowie-api
  50. blake2
  51. bloomf
  52. bls12-381 < "0.4.1" | >= "3.0.0" & < "18.0"
  53. bls12-381-hash
  54. bls12-381-js >= "0.4.2"
  55. bls12-381-js-gen >= "0.4.2"
  56. bls12-381-legacy
  57. bls12-381-signature
  58. bls12-381-unix
  59. blurhash
  60. bm25
  61. brisk-reconciler
  62. builder-web
  63. bytebuffer
  64. ca-certs
  65. ca-certs-nss
  66. cabal
  67. cachet
  68. cachet-lwt
  69. cachet-solo5
  70. cactus
  71. caldav
  72. calendar >= "3.0.0"
  73. calendars >= "2.0.0"
  74. callipyge
  75. camlix
  76. camlkit
  77. camlkit-base
  78. capnp-rpc
  79. capnp-rpc-unix
  80. caqti >= "1.7.0"
  81. caqti-async >= "1.7.0"
  82. caqti-driver-mariadb >= "1.7.0"
  83. caqti-driver-postgresql >= "1.7.0"
  84. caqti-driver-sqlite3 >= "1.7.0"
  85. caqti-dynload = "2.0.1"
  86. caqti-eio
  87. caqti-lwt >= "1.7.0"
  88. caqti-miou
  89. carray
  90. carton < "1.0.0"
  91. carton-git
  92. carton-lwt >= "0.4.3" & < "1.0.0"
  93. cascade
  94. catala >= "0.6.0"
  95. cborl
  96. cf-lwt
  97. chacha
  98. chamelon
  99. chamelon-unix
  100. charrua-client
  101. charrua-server
  102. checked_oint
  103. checkseum >= "0.0.3"
  104. cid
  105. clarity-lang
  106. class_group_vdf
  107. cohttp
  108. cohttp-curl-async
  109. cohttp-curl-lwt
  110. cohttp-eio >= "6.0.0~beta2"
  111. colombe >= "0.2.0"
  112. color
  113. commons
  114. conan
  115. conan-cli
  116. conan-database
  117. conan-lwt
  118. conan-unix
  119. conex < "0.10.0"
  120. conex-mirage-crypto
  121. conformist
  122. cookie
  123. corosync
  124. cow >= "2.2.0"
  125. crockford
  126. css
  127. css-parser
  128. cstruct
  129. cstruct-sexp
  130. ctypes-zarith
  131. cuid
  132. cure2
  133. curly
  134. current
  135. current-albatross-deployer
  136. current_git >= "0.7.1"
  137. current_incr
  138. current_rpc >= "0.7.4"
  139. data-encoding
  140. dates_calc
  141. dbase4
  142. decimal >= "0.3.0"
  143. decompress
  144. depyt
  145. digestif >= "0.9.0"
  146. dispatch >= "0.4.1"
  147. dkim
  148. dkim-bin
  149. dkim-mirage
  150. dkml-dune-dsl-show
  151. dkml-install
  152. dkml-install-installer
  153. dkml-install-runner
  154. dmarc
  155. dns >= "4.4.1"
  156. dns-cli
  157. dns-client >= "4.6.3"
  158. dns-forward-lwt-unix
  159. dns-resolver
  160. dns-server
  161. dns-tsig
  162. dnssd
  163. dnssec < "10.2.4"
  164. docfd >= "13.0.0"
  165. dockerfile >= "8.2.7" & < "8.3.4"
  166. domain-local-await >= "0.2.1"
  167. domain-local-timeout
  168. domain-name
  169. dream
  170. dream-htmx
  171. dream-pure
  172. dscheck >= "0.1.1"
  173. duff
  174. dune-deps >= "1.4.0"
  175. dune-release >= "1.0.0"
  176. duration
  177. echo
  178. ecma-regex
  179. eio < "0.12"
  180. eio_linux
  181. eio_windows
  182. emile
  183. encore
  184. eqaf >= "0.5"
  185. equinoxe
  186. equinoxe-cohttp
  187. equinoxe-hlc
  188. ezgzip
  189. ezjsonm
  190. ezjsonm-lwt
  191. ezlua
  192. FPauth
  193. FPauth-core
  194. FPauth-responses
  195. FPauth-strategies
  196. faraday != "0.2.0"
  197. farfadet
  198. fat-filesystem
  199. fehu < "1.0.0~alpha3"
  200. ff
  201. ff-pbt
  202. flex-array
  203. flux
  204. fluxt
  205. forcamla
  206. forester >= "5.0"
  207. fsevents-lwt
  208. functoria
  209. fungi
  210. geojson
  211. geoml >= "0.1.1"
  212. git
  213. git-cohttp
  214. git-cohttp-unix
  215. git-kv != "0.1.3"
  216. git-mirage
  217. git-net
  218. git-split
  219. git-unix
  220. gitlab-unix
  221. glicko2
  222. gmap
  223. gmocoin
  224. gobba
  225. gpt
  226. graphql
  227. graphql-async
  228. graphql-cohttp >= "0.13.0"
  229. graphql-lwt
  230. graphql_parser != "0.11.0"
  231. graphql_ppx
  232. h1
  233. h1_parser
  234. h2
  235. hacl
  236. hacl-star >= "0.6.0"
  237. hacl_func
  238. hacl_x25519
  239. handlebars-ml >= "0.2.1"
  240. hedgehog-alcotest
  241. hegel
  242. highlexer
  243. hkdf
  244. hockmd
  245. html_of_jsx
  246. http
  247. http-multipart-formdata < "2.0.0"
  248. httpaf >= "0.2.0"
  249. httpcats
  250. httpun
  251. httpun-ws
  252. hugin < "1.0.0~alpha3"
  253. huml
  254. hvsock
  255. icalendar
  256. idna
  257. imagelib
  258. index
  259. inferno >= "20220603"
  260. influxdb-async
  261. influxdb-lwt
  262. inquire < "0.2.0"
  263. intel_hex >= "0.3"
  264. interval-map
  265. iomux
  266. irmin
  267. irmin-bench
  268. irmin-chunk
  269. irmin-cli
  270. irmin-containers
  271. irmin-fs
  272. irmin-git
  273. irmin-graphql
  274. irmin-pack
  275. irmin-pack-tools
  276. irmin-test != "3.6.1"
  277. irmin-tezos
  278. irmin-unix
  279. irmin-watcher
  280. jekyll-format
  281. jose
  282. json-data-encoding >= "0.9" & < "1.1.1"
  283. json_decoder
  284. jsonfeed
  285. jsonschema-core
  286. jsonschema-validation
  287. jsonxt
  288. junit_alcotest < "2.3.0"
  289. jwto
  290. kaun < "1.0.0~alpha3"
  291. kcas >= "0.6.0"
  292. kcas_data >= "0.6.0"
  293. kdf
  294. ke >= "0.2"
  295. kkmarkdown
  296. kmt
  297. lambda-runtime
  298. lambda_streams
  299. lambda_streams_async
  300. lambdapi
  301. layoutz
  302. letters
  303. liquid_ml >= "0.1.3"
  304. lmdb >= "1.0"
  305. lockfree >= "0.3.1"
  306. logical
  307. logtk
  308. lp
  309. lp-glpk
  310. lp-glpk-js < "0.5.0"
  311. lp-gurobi < "0.5.0"
  312. lru
  313. lt-code
  314. luv
  315. mazeppa
  316. mbr-format
  317. mdx
  318. mec
  319. mechaml >= "1.2.1"
  320. melange >= "7.0.0-51"
  321. melange-edn >= "0.5.0"
  322. menhir-lsp >= "0.3.3"
  323. menhirformat
  324. merlin = "4.17.1-501"
  325. merlin-lib >= "4.17.1-501"
  326. metrics
  327. mfat
  328. miaou-core
  329. middleware
  330. migra
  331. mimic
  332. minicaml = "0.3.1" | >= "0.4"
  333. mirage >= "4.0.0"
  334. mirage-block-partition
  335. mirage-block-ramdisk
  336. mirage-channel >= "4.0.1"
  337. mirage-crypto-ec
  338. mirage-flow-unix
  339. mirage-kv >= "2.0.0"
  340. mirage-kv-mem
  341. mirage-kv-unix >= "3.0.0"
  342. mirage-logs
  343. mirage-nat
  344. mirage-net-unix
  345. mirage-runtime < "4.7.0"
  346. mirage-tc
  347. mjson
  348. mlgpx
  349. mmdb < "0.3.0"
  350. mnd
  351. mqtt
  352. mrmime >= "0.2.0"
  353. msgpck >= "1.6"
  354. mssql
  355. multibase
  356. multicore-magic
  357. multihash
  358. multihash-digestif
  359. multipart-form-data
  360. multipart_form
  361. multipart_form-eio
  362. multipart_form-lwt
  363. multipart_form-miou
  364. named-pipe
  365. nanoid
  366. nbd >= "4.0.3"
  367. nbd-tool
  368. neo4j_bolt
  369. neodriver
  370. neodriver_core
  371. neodriver_eio
  372. neodriver_packstream
  373. nloge
  374. nocoiner
  375. noise
  376. non_empty_list
  377. nx < "1.0.0~alpha3"
  378. nx-datasets
  379. nx-text
  380. OCADml >= "0.6.0"
  381. obatcher
  382. object
  383. ocaml-ai-sdk
  384. ocaml-index < "5.4.1-503"
  385. ocaml-r >= "0.4.0"
  386. ocaml-version >= "3.5.0"
  387. ocamlformat < "0.25.1"
  388. ocamlformat-lib
  389. ocamlformat-mlx-lib
  390. ocamlformat-rpc < "removed"
  391. ocamline
  392. ocgtk
  393. ochre
  394. ochre-cli
  395. ocluster
  396. ocue
  397. odoc < "2.1.1"
  398. oenv >= "0.1.0"
  399. ohex
  400. oidc
  401. oktree >= "0.2.4"
  402. opam-0install
  403. opam-0install-cudf >= "0.5.0"
  404. opam-compiler
  405. opam-file-format >= "2.1.1"
  406. opam-repomin
  407. opencage
  408. opentelemetry >= "0.6"
  409. opentelemetry-client
  410. opentelemetry-client-cohttp-eio
  411. opentelemetry-client-cohttp-lwt >= "0.6"
  412. opentelemetry-client-ocurl >= "0.6"
  413. opentelemetry-client-ocurl-lwt
  414. opentelemetry-cohttp-lwt >= "0.6"
  415. opentelemetry-logs
  416. opentelemetry-lwt >= "0.6"
  417. opium
  418. opium-graphql
  419. opium-testing
  420. opium_kernel
  421. orewa
  422. orgeat
  423. ortac-core
  424. ortac-wrapper
  425. osnap < "0.3.0"
  426. osx-acl
  427. osx-attr
  428. osx-cf
  429. osx-fsevents
  430. osx-keychain
  431. osx-membership
  432. osx-mount
  433. osx-xattr
  434. otoggl
  435. owl >= "0.7.0" & != "0.9.0" & != "1.0.0"
  436. owl-base < "0.5.0"
  437. owl-ode >= "0.1.0" & != "0.2.0"
  438. owl-symbolic
  439. par_incr
  440. parseff
  441. passe
  442. passmaker
  443. patch
  444. pbkdf
  445. pecu >= "0.2"
  446. pf-qubes
  447. pg_query >= "0.9.6"
  448. pgx
  449. pgx_unix
  450. pgx_value_core
  451. pgx_value_ptime
  452. phylogenetics
  453. piaf
  454. picos < "0.5.0"
  455. picos_meta
  456. piece_rope
  457. plebeia >= "2.0.0"
  458. polyglot
  459. polymarket
  460. polynomial
  461. ppx_blob >= "0.3.0"
  462. ppx_catch
  463. ppx_deriving_cmdliner
  464. ppx_deriving_ezjsonm
  465. ppx_deriving_qcheck
  466. ppx_deriving_rpc
  467. ppx_deriving_yaml
  468. ppx_ezlua
  469. ppx_hegel_generator
  470. ppx_hegel_test
  471. ppx_inline_alcotest
  472. ppx_map
  473. ppx_marshal
  474. ppx_mica
  475. ppx_parser
  476. ppx_protocol_conv
  477. ppx_protocol_conv_json
  478. ppx_protocol_conv_jsonm
  479. ppx_protocol_conv_msgpack
  480. ppx_protocol_conv_xml_light
  481. ppx_protocol_conv_xmlm
  482. ppx_protocol_conv_yaml
  483. ppx_repr
  484. ppx_subliner
  485. ppx_units
  486. ppx_yojson >= "1.1.0"
  487. pratter
  488. prbnmcn-ucb1 >= "0.0.2"
  489. prc
  490. preface
  491. pretty_expressive
  492. prettym
  493. proc-smaps
  494. producer
  495. progress
  496. prom
  497. prometheus < "1.2"
  498. prometheus-app
  499. prometheus-lwt
  500. protocell
  501. protocol-9p < "0.11.0" | >= "0.11.2"
  502. protocol-9p-unix
  503. proton
  504. psq
  505. public-suffix
  506. pxshot
  507. pyast
  508. qcaml
  509. qcheck >= "0.25"
  510. qcheck-alcotest
  511. qcheck-core >= "0.25"
  512. qcow-stream >= "0.13.0"
  513. qcow-tool = "0.13.0"
  514. qcow-types = "0.13.0"
  515. qdrant
  516. query-json
  517. quickjs
  518. quill < "1.0.0~alpha3"
  519. randii
  520. reason-standard
  521. red-black-tree
  522. reparse >= "2.0.0" & < "3.0.0"
  523. reparse-unix < "2.1.0"
  524. resp
  525. resp-unix >= "0.10.0"
  526. resto >= "0.9"
  527. rfc1951 < "1.0.0"
  528. routes < "2.0.0"
  529. rpc
  530. rpclib
  531. rpclib-async
  532. rpclib-lwt
  533. rpmfile < "0.3.0"
  534. rpmfile-eio
  535. rpmfile-unix
  536. rune < "1.0.0~alpha3"
  537. SZXX >= "4.0.0"
  538. saga
  539. salsa20
  540. salsa20-core
  541. sanddb >= "0.2"
  542. saturn != "0.4.1"
  543. saturn_lockfree != "0.4.1"
  544. scrypt-kdf
  545. secp256k1 >= "0.4.1"
  546. secp256k1-internal
  547. semver >= "0.2.1"
  548. sendmail
  549. sendmail-lwt
  550. sendmail-miou-unix
  551. sendmail-mirage
  552. sendmsg
  553. seqes
  554. server-reason-react
  555. session-cookie
  556. session-cookie-async
  557. session-cookie-lwt
  558. sha256-cng
  559. shakuhachi
  560. sherlodoc
  561. sihl < "0.2.0"
  562. sihl-type
  563. slug
  564. smaws-clients
  565. smaws-lib
  566. smol
  567. smol-helpers
  568. smtml >= "0.30.0"
  569. sodium-fmt
  570. solidity-alcotest
  571. soteria
  572. sowilo < "1.0.0~alpha3"
  573. spdx_licenses
  574. spectrum >= "0.2.0"
  575. spectrum_capabilities
  576. spectrum_palette_ppx
  577. spectrum_palettes
  578. spectrum_tools
  579. spin >= "0.7.0"
  580. spurs < "0.1.1"
  581. squirrel
  582. ssh-agent
  583. ssl >= "0.6.0"
  584. starred_ml < "0.0.8"
  585. stem
  586. stramon-lib
  587. stringx
  588. styled-ppx
  589. swapfs
  590. symex >= "0.2"
  591. symphony-orchestrator-tui
  592. synchronizer >= "0.2"
  593. syslog-rfc5424 < "0.2"
  594. syto
  595. tabr
  596. talon < "1.0.0~alpha3"
  597. tar-eio >= "3.5.0"
  598. tar-mirage
  599. tbls
  600. tcpip
  601. tdigest < "2.1.0"
  602. term-indexing
  603. term-tools
  604. termaid
  605. terminal
  606. terminal_size >= "0.1.1"
  607. terminus
  608. terminus-cohttp
  609. terminus-hlc
  610. terml
  611. testo
  612. testo-lwt
  613. textmate-language >= "0.3.0"
  614. textrazor
  615. thread-table
  616. timedesc
  617. timere
  618. timmy
  619. timmy-jsoo
  620. timmy-lwt
  621. timmy-unix
  622. tls >= "0.12.8"
  623. toc
  624. topojson
  625. topojsone
  626. trail
  627. traits
  628. transept
  629. tsort >= "2.2.0"
  630. tw
  631. twostep
  632. type_eq
  633. type_id
  634. typeid >= "1.0.1"
  635. tyre >= "0.4"
  636. tyxml >= "4.2.0"
  637. tyxml-jsx
  638. tyxml-ppx >= "4.3.0"
  639. tyxml-syntax
  640. uecc
  641. ulid
  642. universal-portal
  643. unix-dirent
  644. unix-errno
  645. unix-sys-resource
  646. unix-sys-stat
  647. unix-time
  648. unstrctrd
  649. uring < "0.4"
  650. user-agent-parser
  651. uspf
  652. uspf-lwt
  653. uspf-mirage
  654. uspf-unix
  655. utcp
  656. utop >= "2.13.0"
  657. validate
  658. validator
  659. valkey
  660. vercel
  661. vhd-format-lwt >= "0.13.0"
  662. wayland >= "2.0"
  663. wcwidth
  664. websocketaf
  665. wire
  666. x509 >= "0.7.0"
  667. xapi-rrd
  668. xapi-stdext-date
  669. xapi-stdext-encodings
  670. xapi-stdext-std >= "4.16.0"
  671. xdge
  672. xkbcommon
  673. yaml
  674. yaml-sexp
  675. yocaml
  676. yocaml_syndication >= "2.0.0"
  677. yocaml_yaml < "2.0.0"
  678. yojson >= "1.6.0"
  679. yojson-five
  680. yuscii >= "0.3.0"
  681. yuujinchou >= "1.0.0"
  682. zar
  683. zed >= "3.2.2"
  684. zlist < "0.4.0"

Conflicts (2)

  1. js_of_ocaml-compiler < "5.8"
  2. result < "1.5"