sapling/lib
Mateusz Kwapich 21069062f4 argparse crate (derived from fbcode/scm/telemetry/telemetry/src)
Summary:
let's turn the wez's argparse library from telemetry into a separate
crate withing hg/lib. We'll experiment on it and if things go well we'll make
`telemetry` depend on that.

Reviewed By: quark-zju

Differential Revision: D7752615

fbshipit-source-id: 0814d91d704abdb746894a0289bf082e8d799b73
2018-04-25 16:00:36 -07:00
..
argparse argparse crate (derived from fbcode/scm/telemetry/telemetry/src) 2018-04-25 16:00:36 -07:00
cdatapack hg: some portability fixes to py-cdatapack.h 2018-04-13 21:51:24 -07:00
clib hg: fix test-checks broken in windows treemanifest stack 2018-04-13 21:51:50 -07:00
indexedlog indexedlog: replace div with shr to make checksum faster 2018-04-17 18:54:39 -07:00
linelog hg: basic support for building hg using buck 2018-04-13 21:50:58 -07:00
minibench minibench: simple test filtering support 2018-04-17 18:54:39 -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
third-party xdiff: backport upstream changes 2018-04-13 21:51:48 -07:00
treestate treedirstate: move non-Python part to a separate crate 2018-04-24 15:59:07 -07:00
vlqencoding vlqencoding: replace criterion with minibench 2018-04-17 18:54:39 -07:00
watchman_client watchman client: add missing crates 2018-04-23 23:34:28 -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).