Commit 55fc93a9190c25f467ead205ab8d676b5191dbd4
Add explanation about project archival
Daan Wynen committed on 5/12/2021, 6:55:55 AMParent: 25572342c04bec2c33020c3dbe58421e5f24c582
Files changed
README.md | changed |
README.md | ||
---|---|---|
@@ -1,8 +1,42 @@ | ||
1 | -# Patchwork | |
1 … | +# :warning: **Patchwork v3.18.1 was the last release!** :warning: | |
2 | 2 … | |
3 … | +This release is meant to tide us over so that other clients can take it from here. | |
4 … | + | |
5 … | +Thank you to everyone who contributed to this release and all the ones preceding it! | |
6 … | +[Paul](https://github.com/pfrazee), [Matt McKegg](https://github.com/mmckegg), and [Christian Bundy](https://github.com/christianbundy) first and foremost, but by now the [contributors page](https://github.com/ssbc/patchwork/graphs/contributors) shows 94 contributors! 💓 | |
7 … | + | |
8 … | +### Where do we go from here? Do I have to change client now? | |
9 … | + | |
10 … | +For the time being (the next couple of months) you should be fine to just keep Patchwork running. However, as time progresses and security of the underlying components "degrades" (read: already existing issues are *discovered*) it will become a bad idea to keep running Patchwork. | |
11 … | +By that time, you should pick a different ssb client. | |
12 … | + | |
13 … | +### Why retire Patchwork? Can I keep it alive? | |
14 … | + | |
15 … | +Of course Patchwork is, as always, released under the AGPL license. So if you really wanted to, you could fork it and keep it alive. However, let me (Daan) explain why this is a bad idea: | |
16 … | + | |
17 … | +**All the devs say "Don't do it!"** | |
18 … | + | |
19 … | +Everyone who has spent significant time in the codebase agrees that it is time to retire Patchwork. Over the years, it has seen multiple iterations of developers coming in, trying to change things in a structural way, then burning out on it. It's a pattern, so be warned. This is due to the fact that Patchwork makes some architectural decisions that make it hard to maintain, and even harder for *new* developers to get into the codebase: | |
20 … | + | |
21 … | +* **depject** is a bespoke dependency injection system, which breaks any kind of navigation and tool support for debugging. | |
22 … | +* **mutant** is another bespoke implementation of observables. It is also used for generating HTML, which makes a transition to component-based UI toolkits very hard. | |
23 … | +* **custom sbot**: Patchwork doesn't really work except with its own, bundled `ssb-server`. This is considered bad form for ssb applications. | |
24 … | +* **ssb-db**, the bespoke database of the original ssb stack, is deeply baked into patchwork. Migrating to the new #ssb-db2 would be a long and painful process. This is compounded by the fact that patchwork bundles a few custom plugins for ssb-db. | |
25 … | + | |
26 … | +I want to be clear that *none* of the above are impossible to solve; in fact, they all have straight-forward *but labour-intensive* solutions. I also want to be clear that these technological choices were all made for good reasons at the time, and I am sure you're as greatful to the developers who made them as I am, for putting their (overwhelmingly volunteered!) time into the project, and for making Patchwork the application that it is. In combination however, the above issues mean that new developers are faced with a very, very steep leaning curve before they're able to even make small changes. | |
27 … | +Given all of the above, it makes more sense to deprecate Patchwork and focus our efforts on projects like #oasis or #manyverse which are nearing feature parity with Patchwork. If you want to get involved with ssb development, both are great projects for that; they are much more hackable than Patchwork, and follow standard techniques & workflows, so you'll feel right at home. | |
28 … | + | |
29 … | +**If you do, against all advice, want to continue developing Patchwork** then we kindly request you rename it to reflect the change in leadership. | |
30 … | + | |
31 … | +-------------------------------- | |
32 … | + | |
33 … | +# Original Readme | |
34 … | + | |
3 | 35 … | > A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB). |
4 | 36 … | |
37 … | +## Features | |
38 … | + | |
5 | 39 … | - Connect with friends without depending on any central servers. |
6 | 40 … | - Don't worry about spam, you only get messages from people you follow. |
7 | 41 … | - Use Patchwork online or offline, the data you need is stored on your device. |
8 | 42 … | - Sync messages with friends when you're on the same Wi-Fi network. |
Built with git-ssb-web