by tomasreimers on 9/19/23, 3:03 PM with 64 comments
Hi HN!
I’m Tomas, co-founder of graphite.dev, and today we’re launching Graphite after almost two years of development in closed beta. [1] Graphite started as an internal solution to our own problem. When we (engineers from Meta, Google and Airbnb) left our previous roles, we lost access to the internal code review tools we loved. So we built our own.
https://graphite.dev
---
Graphite is how the fastest developers ship code - it’s a developer tool that allows you to create smaller pull requests, stay unblocked, and ship faster with “stacking” (creating a set of dependent pull requests). Stacking [2] allows developers to break up large pull requests (PRs) into smaller ones that can be reviewed & merged independently, while keeping ongoing development unblocked. Engineering best practices at Google advise that a “reasonable” PR be around 100 lines, and recommend splitting PRs in order to achieve this through stacking or other methods. [3]
Unlike other tools like Phabricator, Gerrit, or Sapling, Graphite syncs seamlessly with your GitHub repositories, so that you don’t have to manage any extra infrastructure. This also means that even if your teammates don’t use Graphite yet, you still can.
Here’s what you can expect when you sign in to Graphite with your GitHub account:
(1) First class support for stacking: At its core, Graphite enables “stacking”—a workflow used by engineers at top companies like Meta and Google to create small, dependent sets of pull requests. The Graphite CLI, web app, and VS Code extension all come together to empower engineers to start stacking.
(2) Pull request inbox: You can think of this as your home page on Graphite, where you have full visibility into the status of all your PRs and know what still needs to be done across every repo, author, and stage of review. You can also create custom inboxes that filter PRs on reviewers, authors, labels, CI status, and more.
(3) Streamlined code review interface: Graphite’s pull request page removes tabs and minimizes distractions, with the aim of putting your code front and center. You can use keyboard shortcuts to navigate between files and comments or to move between PRs in your stack. You can also import custom memes and gifs to add some to your reviews too!
(4) AI-powered pull requests: Auto-generate a detailed description for every PR with our OpenAI integration. You can even turn your comments into suggested code changes (coming soon!).
(5) Real-time notifications: Connect Graphite to your Slack workspace to stay up-to-date on review requests, comments threads, merge status, and other activity on your PRs. For smaller PRs, you can leave a review (and even merge) directly from Slack.
(6) Stack-aware merges: Since Graphite is built to support a stacking workflow, it automates the manual work of rebasing PRs when it’s time to merge. You can merge your stacks with one click from the web app, or in a single command from the CLI.
Feel free to take a look at our getting started guide [4] or product tour video [5] for a tutorial on how to get started, and drop your comments to us below!
[1] http://graphite.dev/blog/launch
[2] http://stacking.dev
[3] https://google.github.io/eng-practices/review/developer/small-cls.html
[4] https://graphite.dev/docs/getting-started-with-graphite
[5] https://www.youtube.com/watch?v=sBcd9uopLOY
by DandyDev on 9/19/23, 6:00 PM
Github Enterprise - while of course not 1-to-1 comparable - offers so much more functionality for 2/3ds of the cost of Graphite. I'd expect Graphite to cost _less_ than Github Enterprise as it seems it could be positioned more as an add-on to what you get from Github.
Am I missing something?
by jamesmishra on 9/19/23, 4:24 PM
by juliennakache on 9/19/23, 4:16 PM
Does anyone know if you need Graphite to see a PR once it's been merged in the Github repo? I'm curious about how locked you in when you start using Graphite.
by Nezteb on 9/19/23, 4:44 PM
by njaremko on 9/19/23, 3:59 PM
One thing that's been a bit annoying: my org enforces signed commits, and when you merge a stack, they sometimes rebase commits internally and lose the code signing, so you end up with an error to merge the rest of the stack.
Aside from that, working with stacks has been great!
by satvikpendem on 9/19/23, 4:54 PM
by timvdalen on 9/19/23, 3:27 PM
The command name change will take some time to get used to, though!
I've run into a bug with 1.0 where it tries to query git for an object (something with ^tree) that it doesn't understand. I think I'm on a high enough git version, but that could be my issue.
by carlgao on 9/19/23, 8:09 PM
If you want to 1. multiply developer velocity 2. attract the best technical talent, use Graphite.
by Kdmalloch on 9/19/23, 3:33 PM
by bovermyer on 9/19/23, 5:13 PM
by xavhan on 9/19/23, 4:53 PM
by baq on 9/19/23, 5:15 PM
by geekster777 on 9/19/23, 11:53 PM
by zurawiki on 9/19/23, 3:12 PM
Stacking was a meaningful time-saving as a FAANG sw eng. Excited to see stacking grow within the great tech community
by jpochtar on 9/19/23, 4:15 PM
by atpgenerator on 9/19/23, 3:27 PM
by ikornaselur on 9/19/23, 6:10 PM
What benefit does Graphite provide further?
Main pain point I imagine is dealing with rebases? What else?
by Xiulung on 9/19/23, 3:25 PM
by olafura on 9/19/23, 4:46 PM
by AirFuel on 9/19/23, 4:20 PM
by bilalq on 9/19/23, 6:14 PM
by astuyvenberg on 9/19/23, 4:28 PM
by Apreche on 9/19/23, 4:49 PM
by anvisha on 9/19/23, 3:51 PM
by daniel_sushil on 9/19/23, 6:50 PM
by bgenchel on 9/19/23, 3:52 PM
by sond813 on 9/19/23, 4:34 PM
by tr_user on 9/19/23, 5:48 PM