sapling/eden/scm/lib
Xin Tong e882926adb configs: add hostprefix configuration condition to Mercurial
Summary:
## Why this diff
we want hostname prefix to support targeting configs at clients in corp ("corp" means laptop, labs, and other machines that are not in "prod" datacenters), like FRL machines, that don't support our existing tier mechanism.

## Changes
* Extract hostname prefix in `dynamicconfig.rs` and add a getter function `hostname_prefix()` for it.
*A hostname prefix only consists of alphabetical letters and dashes, which is followed by one or more digits in the hostname. If no valid match, the prefix is set to the empty string.*

* Use `gen.hostname_prefix()` in the `evaluate()` fn inside `mod.rs` to check the generator's prefix against a list of given prefixes.
* Copy changes from `configerator/source/scm/hg/hgclientconf/hgclient.thrift` to `fbsource/fbcode/configerator/structs/scm/hg/hgclientconf/hgclient.thrift`.
* Rebuild in `eden/scm/`.

Reviewed By: DurhamG

Differential Revision: D26706686

fbshipit-source-id: 725506a1c1f0983e981b0b3f3993c7c14510b1db
2021-03-02 12:58:05 -08:00
..
async-runtime async-runtime: reduce worker_threads to min(nproc, 8) 2021-02-19 10:20:57 -08:00
auth autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
backingstore configparser: move conversion related to a separated module 2021-02-12 12:33:47 -08:00
blackbox Prepare for rustfmt 2.0 2020-09-07 20:47:59 -07:00
bookmarkstore types: address clippy warnings 2020-03-16 14:58:21 -07:00
checkout checkout: handle update_meta in sparse profile update 2021-03-01 20:25:18 -08:00
clib Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
clidispatch io: move clidispatch::IO to a separate crate 2021-02-23 22:33:47 -08:00
cliparser debug: introduce error classification and metadata propagation 2020-07-15 10:03:10 -07:00
commitcloudsubscriber fix order of arguments in error message 2020-12-16 06:23:00 -08:00
configparser configs: add hostprefix configuration condition to Mercurial 2021-03-02 12:58:05 -08:00
cpython-async cpython-async: release GIL on PyFuture.wait 2021-02-23 15:09:15 -08:00
cpython-ext cpython-ext: add isatty and close to PyObject wrapping Rust Write 2021-02-23 22:33:48 -08:00
dag dag: add a way to describe bytes in indexedlog IdDag store 2021-02-25 08:32:48 -08:00
dev-logger dev-logger: traced(func) -> [log] for testing purpose 2021-02-02 16:39:46 -08:00
drawdag autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
edenapi autocargo v2: rollout and replace v1 in all use-cases 2021-03-02 06:43:29 -08:00
edenfs-client clidispatch: drop unused mut from IO APIs 2021-02-23 15:09:14 -08:00
encoding Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
fsinfo eden: add config and awareness for our edenfs.kext 2020-12-07 11:18:09 -08:00
fsyncglob hgcommands: add debugfsync 2020-08-27 18:26:03 -07:00
hg-http http-client: move with_stats_reporting to event listener 2021-03-02 10:40:05 -08:00
hg-metrics metrics: crate for collecting metrics 2020-09-09 17:35:48 -07:00
hgcommands hgcommands: fsync shared storage files 2021-03-01 18:40:44 -08:00
hgcommits autocargo v1: changes to how thrift-related generation is done to match v2 2021-02-23 11:38:45 -08:00
hgtime hgtime: address clippy warnings 2020-03-16 14:58:22 -07:00
http-client http-client: move streaming request report to report_result_and_drop_receiver 2021-03-02 10:40:08 -08:00
indexedlog indexedlog: add an API to manually clean up rotated logs 2021-01-12 21:38:03 -08:00
io upgrade streampager to 0.9.3 2021-03-01 06:12:00 -08:00
linelog Apply clang-format update fixes 2021-01-10 10:06:29 -08:00
lz4-pyframe autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
manifest manifest: add testutil in core package 2020-01-14 11:49:52 -08:00
manifest-tree checkout: introduce file system tests 2021-02-11 19:10:24 -08:00
metalog metalog: explicitly use tuple serialization for HgId 2020-09-28 21:32:21 -07:00
mincode Add version specificiation to internal dependencies 2021-01-25 22:10:24 -08:00
minibench autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
minibytes minibytes: add Bytes::into_vec 2021-02-05 13:57:49 -08:00
mpatch Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
mpatch-sys use absolute includes for the native cext modules 2020-02-19 13:05:06 -08:00
mutationstore dag: ensure MetaSet has Hints set 2021-02-05 11:53:46 -08:00
nodemap Update formatter to rustfmt 2.0 2020-09-09 07:52:34 -07:00
nonblocking autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
pathmatcher pathmatcher: introduce XorMatcher 2021-03-01 20:25:17 -08:00
procinfo procinfo: fix buck build on OSX 2020-11-03 17:40:19 -08:00
progress autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
radixbuf radixbuf: use concrete error types 2020-08-06 12:31:57 -07:00
renderdag renderdag: move to dag 2020-08-21 13:00:45 -07:00
revisionstore lfs: make more errors retryable 2021-02-24 13:53:23 -08:00
revlogindex dag: ensure MetaSet has Hints set 2021-02-05 11:53:46 -08:00
spawn-ext spawn-ext: bump the number of handles we are closing 2021-02-25 19:58:31 -08:00
streams autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
taggederror Format fbsource with rustfmt-2.0.0-rc.2 2021-02-27 18:46:09 -08:00
taggederror-util taggederror: Introduce taggederror-util for more ergonomic error tagging for eden error types. 2020-08-06 19:37:25 -07:00
third-party mman-win32: remove 2020-10-02 10:47:24 -07:00
thrift-types configs: add hostprefix configuration condition to Mercurial 2021-03-02 12:58:05 -08:00
tracing-analyzer autocargo v1: changes to how thrift-related generation is done to match v2 2021-02-23 11:38:45 -08:00
tracing-collector tracing-collector: stop forwarding to log eco-system 2021-02-23 15:09:15 -08:00
tracing-runtime-callsite autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
treestate Prepare for rustfmt 2.0 2020-09-07 20:47:59 -07:00
types types: update HgId to use "bytes" serialization by default 2021-02-24 09:20:35 -08:00
util util: introduce a select_drop stream combinator 2021-02-08 10:39:32 -08:00
version configparser: fix non-fb dependencies (#45) 2020-08-26 16:31:00 -07:00
vfs vfs: use &[u8] instead of Bytes for content 2021-02-17 10:45:46 -08:00
vlqencoding autocargo v1: changes to match autocargo v2 generation results. 2021-02-19 11:03:55 -08:00
workingcopy pathmatcher: allow errors in match function definition 2021-01-07 16:22:17 -08:00
xdiff autocargo v2: rollout and replace v1 in all use-cases 2021-03-02 06:43:29 -08:00
xdiff-sys autocargo v2: rollout and replace v1 in all use-cases 2021-03-02 06:43:29 -08:00
zstdelta third-party/rust: import async-compression + update zstd 2020-09-15 07:59:53 -07:00
zstore autocargo v1: changes to how thrift-related generation is done to match v2 2021-02-23 11:38:45 -08:00
CMakeLists.txt clib: remove buffer.[ch] 2020-10-02 10:47:23 -07:00
README.md Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
run_cargo_tests.py config: use Rust graph render as default 2020-10-19 17:07:30 -07: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).