diff --git a/.gitignore b/.gitignore index 4771a116f90f6..64561607a170f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,7 @@ /external # cmake /_build + +# Rust libraries and extensions +Cargo.lock +target/ diff --git a/build/fbcode_builder/manifests/mononoke b/build/fbcode_builder/manifests/mononoke new file mode 100644 index 0000000000000..ac795587def1f --- /dev/null +++ b/build/fbcode_builder/manifests/mononoke @@ -0,0 +1,36 @@ +[manifest] +name = mononoke +fbsource_path = fbcode/eden +shipit_project = eden +shipit_fbcode_builder = true + +[git] +repo_url = https://github.com/facebookexperimental/eden.git + +[build.not(os=windows)] +builder = cargo + +[build.os=windows] +# building Mononoke on windows is not supported +builder = nop + +[cargo] +build_doc = true + +[shipit.pathmap] +fbcode/eden/oss = . +fbcode/eden = eden +fbcode/eden/mononoke/public_autocargo = eden/mononoke +fbcode/tools/lfs = tools/lfs +tools/rust/ossconfigs = . + +[shipit.strip] +^fbcode/eden/fs/eden-config\.h$ +^fbcode/eden/hg/.*$ +^fbcode/scm/mononoke/(?!public_autocargo).+/Cargo\.toml$ + +[dependencies] +rust-shed + +[dependencies.fb=on] +rust diff --git a/eden/mononoke/Cargo.toml b/eden/mononoke/Cargo.toml new file mode 100644 index 0000000000000..ac91087f81d87 --- /dev/null +++ b/eden/mononoke/Cargo.toml @@ -0,0 +1,6 @@ +[workspace] + +members = [ + "server/session_id", + "sshrelay", +] diff --git a/eden/mononoke/README.md b/eden/mononoke/README.md new file mode 100644 index 0000000000000..8415a5b0cd486 --- /dev/null +++ b/eden/mononoke/README.md @@ -0,0 +1,23 @@ +# Mononoke + +Mononoke is a next-generation server for the [Mercurial source control +system](https://www.mercurial-scm.org/), meant to scale up to accepting +thousands of commits every hour across millions of files. It is primarily +written in the [Rust programming language](https://www.rust-lang.org/en-US/). + +## Caveat Emptor + +Mononoke is still in early stages of development. We are making it available now because we plan to +start making references to it from our other open source projects. + +**The version that we provide on GitHub does not build yet**. + +This is because the code is exported verbatim from an internal repository at Facebook, and +not all of the scaffolding from our internal repository can be easily extracted. The key areas +where we need to shore things up are: + +* Full support for a standard `cargo build`. +* Open source replacements for Facebook-internal services (blob store, logging etc). + +The current goal is to get Mononoke working on Linux. Other Unix-like OSes may +be supported in the future