hmmm, I thought there was a pretty simple and straightforward and "universal" definition of a fork, which would be basically a parallel (independent) development. Maybe there's just no "official scientific definition"? Wikipedia https://en.wikipedia.org/wiki/Fork_(software_development) says "*a project fork happens when developers take a copy of source code from one software package and start independent development on it, creating a distinct and separate piece of software*", one of the referred sources on wikipedia https://flosshub.org/sites/flosshub.org/files/paper_0.pdf says "*In general it is assumed that a software product evolves within the authoring company or group of developers that develop the project. However, in some cases different groups of developers make the software evolve in different directions, a situation which is commonly known as a fork.*"
Now, correct me if I'm wrong, but as I see it, Pd-Extended started as a "distro", then it evolved to a proper fork with parallel/independent development. Some of the changes were listed here and I assume the first ones were in favor of better managing the build system and library loading. Other changes were necessary so loading externals like [initbang] were possible (IOhannes, if you never used Pd Extended, how were you using [initbang] back in the day?) but these are now also possible in Vanilla. Eventually other changs like in the documentation and User Interface modifications aimed at a friendlier user experience. Other than that, Pd Extended had a very close evolution line with Vanilla. Its versioning did follow Vanilla's after all, so the core functions were there and some changes also eventually were brought into Vanilla.
As I see it, the only actual incompatibility that I know is that in the last version of Extended we have the "$@" syntax. I don't know the story thre, but it seems it started in the Vanilla development but never made into it? Anyway, other than that and generally speaking, Pd Extended was kinda of a "minor" fork. Another similar example of such a "minor fork" is Pd Ceammc. It has similar characteristics like offering a different UI and providing pre installed libraries and objects (most of which can be loaded in Vanilla).
As for "github forks", some of these so called forks are just development branches with modifications that may eventually be merged (I have one of those). Others are just people that once copied the source code and never really worked on it. There might be some that made relatively small modifications for personal reasons, like Christoff's, but I'm only counting Pd forks those projects that are being relevantly adopted by and distributed to users. Hence, with this criteria, I can't really consider "Spaghettis" and "Pd-next" relevant forks yet.
I started this thread just to make sure I wasn't missing anything, and I guess the discussion shows us that I haven't, I believe. Since I'm writing now about the history of Pd and its forks, the bike shedding discussion is actually welcome so I can get everything right.
For those that have a good recollection or ever used it, please tell me a bit more about "Desire Data", although I think I can reach Mathieu for that.
We often say and hear Pd has "many" flavours and forks that come and go, but there aren't that many really.
And, well, I can't consider MAX as a fork of Pd or the other way around. I heard that MSP objects were first based on Pd signal objects, but that's not really a fork of the software, more like appropriation - or stealing :)
cheers