join-the-flock / nest

Tools for hatching new Flutters
121 stars 5 forks source link

Consider patch-based approach to forking #10

Open selfisekai opened 2 weeks ago

selfisekai commented 2 weeks ago

I've listened to a bit of a talk on the space about handling Flock patches on top of alive Flutter branches/releases.

Electron is, I think, an interesting case for Flock to look at: it's a fast-moving, soft fork of Chromium, a gclient-based project.

It has a pretty specific approach: rather than constantly rebasing their repositories, they store git patches as files. The process of cloning Electron is quite literally cloning Chromium and a few extra repositories, then applying these patches on top of the upstream repositories locally.

https://github.com/electron/electron/blob/main/docs/development/patches.md

matthew-carroll commented 2 weeks ago

This seems like a very promising approach. Thanks for filing this.

dario-digregorio commented 1 week ago

Hey I had the same idea by using a similar approach that patch-packages uses for npm packages: https://www.npmjs.com/package/patch-package

jezell commented 1 week ago

I really like this idea after some thinking. Came up to work on some things with @matthew-carroll, maybe we can get something like this working today.

ryanhanks commented 1 week ago

Might be worth checking out https://savannah.nongnu.org/projects/quilt (https://git.savannah.nongnu.org/cgit/quilt.git/plain/doc/quilt.pdf) for a look at another project doing something similar in the wild. Apparently this is used by Debian / Ubuntu.

jezell commented 1 week ago

https://github.com/join-the-flock/nest/tree/main/tools

You can find our first draft of the slightly modified electron tooling here. Got it integrated into some basic workflows with @matthew-carroll over the weekend.