sapling/eden
Meyer Jacobs 4ccbd119d7 debug: introduce error classification and metadata propagation
Summary:
Introduce new rust library, taggederror, which contains utilities for attaching metadata to errors. The library provides two main methods for attaching metadata to an error, the TaggedError wrapper type, and the AnyhowExt trait methods. Provides a struct, CommonMetadata, which contains all the metadata types introduced by taggederror (fault, transience, category, and typename), which can also be attached individually (and the same pattern can be used to attach other metadata).

Introduce a new native rust command, debugthrowrustexception, which causes the command to return an error, with some attached metadata.

Modify hg rust native command dispatch error handling to use debug formatter to print anyhow::Error errors. This will print out the source chain, contexts, and backtrace if available, which will cause the metadata we attach as a wrapper error or context to be printed.

Reviewed By: DurhamG

Differential Revision: D22420941

fbshipit-source-id: d38c5a10b686d86b69a2c0a19f5bcbf4ca24dff6
2020-07-15 10:03:10 -07:00
..
fs add 4k random writes benchmark 2020-07-14 16:13:37 -07:00
integration revlog: turn on head-based-commit-transaction for tests 2020-07-08 14:33:58 -07:00
locale add a copyright header to glibc_en.po 2019-04-26 14:38:27 -07:00
mononoke scs_server: increase list_bookmarks limits (part 2) 2020-07-15 08:15:06 -07:00
scm debug: introduce error classification and metadata propagation 2020-07-15 10:03:10 -07:00
scripts packaging: use scheduled tasks 2020-06-10 19:29:15 -07:00
test_support enable asynchronous integration tests 2020-06-15 15:53:50 -07:00
test-data enable treemanifest in snapshots 2019-08-28 18:46:03 -07:00
win add .clang-format 2020-04-28 08:42:03 -07:00
.clang-format Cut FOR_EACH_KV 2020-06-10 19:29:43 -07:00
.gitignore eden: wire up mac contbuild 2019-02-05 21:52:30 -08:00
Eden.project.toml Eden.project.toml file for Nuclide 2018-04-26 11:05:23 -07:00