facebook / buck2

Build system, successor to Buck
https://buck2.build/
Apache License 2.0
3.38k stars 201 forks source link

[Docs] Comprehensive Getting Started Documentation #703

Open rorychatterton opened 5 days ago

rorychatterton commented 5 days ago

If you've never used Buck2 before, the path to productive is pretty steep. I think we could make the documentation a bit clearer for users who sit outside of the Meta Ecosystem.

The documentation, while very comprehensive, is somewhat overwhelming and confusing if you are unfamiliar with development practices around Monorepo, or lack context to the facebook way of doing things (tools, testing, release, etc).

It would be good if the documentation had a section (perhaps for a handful of languages) that takes you somebody through the lifecycle of zero to hero (no project, to something running with internal and external dependencies), and migration from local tooling (Cargo, Gradle, Poetry, etc) into Buck2.

It would be good to get a bit of a user narrative that takes you through things like:

I appreciate this isn't exclusive, and that many of these segments are answered individually - but I think reducing the friction to get a user to productive would go a long way for uptake, and is probably stuff I imagine exists in the internal meta repo.

I'm happy to have a go at putting together a bit of a skeleton of information on the side, but lack context on the happy path and would need significant input.

cbarrete commented 3 days ago

I fully agree with all of those points, and would like to add that a structured approach like https://diataxis.fr/ might be helpful. There have been a few times when I wanted to improve the upstream docs and just wrote them internally instead because there was no good place upstream to put them, and I didn't have the bandwidth to revamp the whole structure of buck2.build/docs, especially since communication can be a bit slow at times. It's partially on me, but some effort spent on better structuring the docs would likely make it easier/more likely for users to contribute.

I'm also willing to spend some time writing documentation, but I also need some guidance as I cannot document things which I do not understand well (see https://github.com/facebook/buck2/issues/666 and https://github.com/facebook/buck2/issues/667 for example).