You are reading content from Scuttlebutt
@Daan %rZF7aFI8kJ8RtgoG17Jczn7uAMneWZV5NVzGDpdTr/0=.sha256

:tada: Patchwork v3.18.1: That one last proper release! :tada:

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.

This is the last release of Patchwork
There will be no further development on Patchwork.
Issue tracker and pull requests will be closed.

This release is meant to tide us over so that other clients can take it from here.

Thank you to everyone who contributed to this release and all the ones preceding it!
@paul, @Matt McKegg, and @Christian Bundy first and foremost, but by now the contributors page on Github show 96 contributors! 💓

screenshot from github showing the avatars of the most prolific patchwork contributors

Where do we go from here? Do I have to change client now?

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.
By that time, you should pick a different ssb client.

Why retire Patchwork? Can I keep it alive?

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:

All the devs say "Don't do it!"

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:

  • depject is a bespoke dependency injection system, which breaks any kind of navigation and tool support for debugging.
  • 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.
  • custom sbot: Patchwork doesn't really work except with its own, bundled ssb-server. This is considered bad form for ssb applications.
  • 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.

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.
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.

If you do, against all advice, want to continue developing Patchwork then we kindly request you rename it to reflect the change in leadership.

Packages

Windows

Patchwork-Setup-3.18.1.exe

macOS

Patchwork-3.18.1.dmg

You must allow apps from "unidentified" developers.

Linux

Patchwork-3.18.1.AppImage
[Patchwork-3.18.1-arm64.AppImage][arm64appimage]
Patchwork-3.18.1-armv7l.AppImage

You may need to fix the sandbox.

There are also releases for Debian and Snapcraft:

  • Debian: ssb-patchwork_3.18.1_amd64.deb
  • Snapcraft: sudo snap install ssb-patchwork
    • If this somehow doesn't work, you might be on the beta channel. Using sudo snap refresh --channel=stable ssb-patchwork should solve this.
    • You can also download ssb-patchwork_3.18.1_amd64.snap directly but you have to install with snap install --dangerous because it's unsigned.

Changes

As the version number indicates, this is mostly a patch release. The slight changes that were made are mostly due to the version bump for electron.

Added

  • Builds for arm64 & armv7l Linux
  • Spellchecking: add ability to select multiple languages or to disable it completely.
  • Rudimentary Status page shows index progress per view
  • Context menus are much richer now, allowing to copy media & open things in Browser both locally and on a public viewer.

Deprecated

  • Use of depject had been deprecated for a long while.
    As a proof of concept, some modules in this release were now migrated from depject to regular imports.

Security

  • A metric ton of version bumps, most notably including electron (now v11.3.0) and chloride.
    The result is a much snappier experience and virtually no "falling back to JS crypto" slowness.

Added

Changed

  • While publishing a message, the content warning will be trimmed of leading and trailing whitespace. If the result is empty, no content warning will be published.

Fixed

  • Drop-down for blocking feeds was not showing
  • Correct Brazilian Portuguese translation
  • Correction to French translation
  • One for the language enthusiasts: "who" -> "whom"

Security

  • Many version bumps, including some security updates in direct and transitive dependencies.

[arm64appimage]:

@Daan %SaLONkG3xRwtCoMGKLP6jILz4nRkJol6zZed8LpptWU=.sha256

argh, true to form I messed up the link formatting on the last meter... 🤦

Windows

Patchwork-Setup-3.18.1.exe

macOS

Patchwork-3.18.1.dmg

You must allow apps from "unidentified" developers.

Linux

Patchwork-3.18.1.AppImage
Patchwork-3.18.1-arm64.AppImage
Patchwork-3.18.1-armv7l.AppImage

You may need to fix the sandbox.

There are also releases for Debian and Snapcraft:

  • Debian: ssb-patchwork_3.18.1_amd64.deb
  • Snapcraft: sudo snap install ssb-patchwork
    • If this somehow doesn't work, you might be on the beta channel. Using sudo snap refresh --channel=stable ssb-patchwork should solve this.
    • You can also download ssb-patchwork_3.18.1_amd64.snap directly but you have to install with snap install --dangerous because it's unsigned.
User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
@Anders %9ZGtkLhg6bJlwK1tXRV/0PaVq6WG3q+zHa008pGkc3o=.sha256

Thanks @Daan for doing this last release 🌅

User has not chosen to be hosted publicly
@cel %EJNUmrubjcCmfBL9o5UMdo4zYbSHLeCTDz6vpOcQ/Dc=.sha256

Thanks, @Daan.

Patchwork v3.18.1 CD

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Daan %j1cF5Nth8GH/Cq4s2BULRCUzGC4dGWSz2oSPcfPxJyM=.sha256

Thanks everyone for the kind words!
And special thanks to @cel for that blast from the past. That's exactly how I would've onboarded friends in 2004! 💓 💿

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@SoapDog (Macbook Air M1) %knVriogLxvwIwaL1mmPau7ZFjbLjMXJOlyEuL5Y3sBU=.sha256

working fine here with Rosetta 2 on a Macbook Air M1.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Rabble %as5jFX+uiY1CKUUlQzwqdVDXZduUaZmO1Swkdq9lwso=.sha256

Thanks for all of your work shepherding this @Daan. It feels great, some nice updates, speed improvements... i know patchwork is a PITA to work with, so good on you! We all benefit.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Alexandre Oliva %ydqiCFJh0gGgTSkd8Trf8bMuv6sIc/PMAJpqn+1oyPU=.sha256

thanks to everyone who contributed to patchwork

it was the ssb interface that onboarded me, and still my favorite one

@Christian Bundy %NheKvMyPItqyih2f9fOP8cBpDssELFZ5t6pKk6pFJJY=.sha256

Thanks @Daan, this gives me warm and fuzzy feelings.

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
@Daan %pqqkBesfRwqy3HMOREzYldjKD7UlVsoiZlUbbS1/KMI=.sha256

Wow, ssb panopticon active. 😆
Thought it just makes sense, no?

User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has not chosen to be hosted publicly
User has chosen not to be hosted publicly
Join Scuttlebutt now