Meta's Sapling source-code management system
Meta's Sapling source-code management system
Posted Nov 16, 2022 18:20 UTC (Wed) by IanKelling (subscriber, #89418)Parent article: Meta's Sapling source-code management system
https://engineering.fb.com/2022/11/15/open-source/sapling...
"I’d also like to thank the Mercurial open source community for all their collaboration and inspiration" but this is also an announcement that their contributions are no longer welcome under GPL as they were before. Unless I'm missing something, that seems like a rather backhanded thank you.
Posted Nov 17, 2022 10:42 UTC (Thu)
by paulj (subscriber, #341)
[Link] (6 responses)
The internal history of this, as I understood it (a couple of years out of date, and not near any team responsible - just as a user), is that FB started with mercurial. They then had to heavily customise hg to make it work at the ever greater scales they had internally with more and more code and developers working on it. Until they had effectively completely rewritten the back-end to use a Facebook specific, distributed object store - that's the "eden" bit in the source code I think (maybe simplified / pared-down for external use, I don't know). The front-end hg tools I think were heavily modified too. Sl however is a from scratch rewrite. I think it started out as a wrapper around the hg tools, but grew into a standalone front-end. There was also an effort to reimplement the back-end in Rust, along with front-end tooling for that - I think that's the "Mononoke" bit in the code, IIRC.
Last I remember, I /think/ the developer workflow still had some odd cases where you needed to use the hg commands, but for nearly all stuff you could use sl for your daily work-flow.
I presume that progressed to the stage where the completely rewritten Facebook^WMeta front-end + backend, sl / mononoke, can do everything itseflf, and is feature complete - and hence this can be released as "sapling" (retro-fitted name).
Posted Nov 17, 2022 10:47 UTC (Thu)
by paulj (subscriber, #341)
[Link] (1 responses)
I'd be a bit sceptical of using Facebook stuff outside of FB. There are internal brownie points for releasing stuff as open-source perhaps, but there are few to none for taking the time to maintain open-source stuff. Also, the internal culture is to build everything from a mono-repo, and have no concern for backward compatibilities (other than the non-atomic roll outs of binaries/artifacts from a build from said mono-repo). So I'd hate to depend on FB code outside of FB. In particular, the FB C++ library (folly) maintainers explicitly are hostile to attempts to make life easier for maintaining code out of FBCode that depends on their stuff.
Posted Nov 29, 2022 12:25 UTC (Tue)
by scientes (guest, #83068)
[Link]
Except ZSTD.
Posted Nov 17, 2022 15:28 UTC (Thu)
by IanKelling (subscriber, #89418)
[Link] (3 responses)
I downloaded the repo. It is a copy of the mercurial repo from 2005 onward until it forks.
Posted Nov 17, 2022 16:45 UTC (Thu)
by paulj (subscriber, #341)
[Link] (2 responses)
I'm looking at https://github.com/facebook/sapling and - at a high-level anyway - I don't see anything from mercurial in the head/tip, nor in the history. I know internally that monnooke was a from-scratch rewrite. And the Eden object store and SCM backend isn't from mercurial either.
I could be confused, but can you be more explicit about what part of Sapling started out as mercurial code?
Posted Nov 18, 2022 13:52 UTC (Fri)
by IanKelling (subscriber, #89418)
[Link] (1 responses)
Posted Nov 18, 2022 14:15 UTC (Fri)
by paulj (subscriber, #341)
[Link]
The mercurial code is there at: https://github.com/facebook/sapling/tree/main/eden/scm/ed... - maybe in other places.
Meta's Sapling source-code management system
Meta's Sapling source-code management system
Meta's Sapling source-code management system
Meta's Sapling source-code management system
Meta's Sapling source-code management system
Meta's Sapling source-code management system
Meta's Sapling source-code management system