sapling/lib
Jun Wu 7b9867ac12 crates: pin rand to 0.4 version
Summary:
`rand` 0.5 has too many breaking changes that the code is not ready to
migrate yet. So let's ping rand to 0.4. Ideally all dependencies in
Cargo.toml should avoid using "*". But for now `rand` is the only
troublemaker.

Note `rand 0.4` is a dependency of `quickcheck 0.6.2` so it's available.

Reviewed By: phillco, singhsrb

Differential Revision: D8158406

fbshipit-source-id: 417ae6807a2efc650acb8d82370964fab6531fdb
2018-05-25 09:51:19 -07:00
..
argparse fix pyflakes.t failure 2018-05-01 13:44:40 -07:00
cdatapack update cdatapack utilities to check open success 2018-05-24 11:30:48 -07:00
clib hg: fix test-checks broken in windows treemanifest stack 2018-04-13 21:51:50 -07:00
commitcloudsubscriber code fixes to support Rust < 1.26 2018-05-24 12:19:55 -07:00
hg_watchman_client watchman rust client for hg: add test for arrays of objects 2018-05-21 04:30:34 -07:00
indexedlog crates: pin rand to 0.4 version 2018-05-25 09:51:19 -07:00
linelog hg: basic support for building hg using buck 2018-04-13 21:50:58 -07:00
lz4-pyframe lz4: add rust lz4 bindings 2018-05-16 09:13:18 -07:00
minibench minibench: simple test filtering support 2018-04-17 18:54:39 -07:00
mpatch mpatch: add rust bindings 2018-05-14 16:06:32 -07:00
mpatch-sys mpatch: add rust bindings 2018-05-14 16:06:32 -07:00
pathencoding pathencoding: utility for converting between bytes and paths 2018-04-13 21:51:35 -07:00
pathmatcher gitignore: avoid quadratic behavior 2018-04-13 21:51:48 -07:00
radixbuf radixbuf: replace criterion with minibench 2018-04-17 18:54:39 -07:00
revisionstore add tests for empty union date store 2018-05-15 18:37:47 -07:00
third-party xdiff: backport upstream changes 2018-04-13 21:51:48 -07:00
treestate crates: pin rand to 0.4 version 2018-05-25 09:51:19 -07:00
vlqencoding vlqencoding: replace criterion with minibench 2018-04-17 18:54:39 -07:00
watchman_client watchman rust client for hg: initial implementation 2018-05-21 04:30:32 -07:00
zstdelta zstdelta: rust library to use zstd to do delta-ing and compression 2018-05-25 09:34:34 -07:00
README.md READMEs: tweaks based on feedback 2018-01-12 12:35:52 -08:00

lib

Any native code (C/C++/Rust) that Mercurial (either core or extensions) depends on should go here. Python code, or native code that depends on Python code (e.g. #include <Python.h> or use cpython) is disallowed.

As we start to convert more of Mercurial into Rust, and write new paths entrirely in native code, we'll want to limit our dependency on Python, which is why this barrier exists.

See also hgext/extlib/README.md, mercurial/cext/README.mb.

How do I choose between lib and extlib (and cext)?

If your code is native and doesn't depend on Python (awesome!), it goes here.

Otherwise, put it in hgext/extlib (if it's only used by extensions) or mercurial/cext (if it's used by extensions or core).