Skip to content
This repository was archived by the owner on May 12, 2021. It is now read-only.

Commit 401c797

Browse files
Update changelog for release
1 parent 4087ed9 commit 401c797

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

docs/CHANGELOG.md

+56
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,62 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1414
### Security
1515
-->
1616

17+
## [Unreleased]
18+
19+
**Last proper release of Patchwork!**
20+
That's right folks. This is it. Nearly six years after the initial commit by Paul, the time of Patchwork will come to an end.
21+
22+
**This is the last release of Patchwork**
23+
**There will be no further development on Patchwork.**
24+
**Issue tracker and pull requests will be closed.**
25+
26+
This release is meant to tide us over so that other clients can take it from here.
27+
28+
### Where do I go from here?
29+
30+
For the time being (the next couple of months) you should be fine to just keep Patchwork running.
31+
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.
32+
By that time, you should pick a different ssb client.
33+
34+
### Why retire Patchwork? Can I keep it alive?
35+
36+
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:
37+
38+
**All the devs say "Don't do it!"**
39+
40+
Everyone who has spent significant time in the codebase agrees that it is time to retire Patchwork.
41+
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.
42+
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:
43+
44+
* **depject** is a bespoke dependency injection system, which breaks any kind of navigation and tool support for debugging.
45+
* **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.
46+
* **custom sbot**: Patchwork doesn't really work except with its own, bundled `ssb-server`. This is considered bad form; ssb applications should *really* be able to peacefully co-exist.
47+
* **ssb-db**, the bespoke database of the original ssb stack, is deeply baked into patchwork. Migrating to the new [ssb-db2](https://github.com/ssb-ngi-pointer/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.
48+
49+
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.
50+
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.
51+
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.
52+
Given all of the above, it makes more sense to deprecate Patchwork and focus our efforts on projects like [oasis](https://github.com/fraction/oasis) or [manyverse](https://gitlab.com/staltz/manyverse) which are nearing feature parity with Patchwork.
53+
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.
54+
55+
**If you do, against all advice, want to continue developing Patchwork** then we kindly request you rename it to reflect the change in leadership.
56+
57+
### Added
58+
* Builds for arm64 & armv7l Linux
59+
* Spellchecking: add ability to select multiple languages or to disable it completely.
60+
* Rudimentary Status page shows index progress per view
61+
* Context menus are much richer now, allowing to copy media & open things in Browser both locally and on a public viewer.
62+
63+
### Deprecated
64+
65+
* Use of depject had been deprecated for a long while.
66+
As a proof of concept, some modules in this release were now migrated from depject to regular imports.
67+
68+
### Security
69+
70+
* A metric ton of version bumps, most notably including electron (now `v11.3.0`) and chloride.
71+
The result is a much snappier experience and virtually no "falling back to JS crypto" slowness.
72+
1773
## v3.18.1-beta.2 - 2021-01-17
1874

1975
### Added

0 commit comments

Comments
 (0)