this post was submitted on 17 Nov 2021
108 points (100.0% liked)

Announcements

23285 readers
14 users here now

Official announcements from the Lemmy project. Subscribe to this community or add it to your RSS reader in order to be notified about new releases and important updates.

You can also find major news on join-lemmy.org

founded 5 years ago
MODERATORS
 

Today is an exciting day for the Lemmy project.

Almost one year after first enabling federation, we now federate with other projects for the first time! According to some people's definition, this finally makes us part of the Fediverse.

It took a lot of work to make this possible, so big thanks to NLnet for funding our full time work on Lemmy, and to @lanodan and @asonix for helping to figure out how Pleroma and Mastodon federation works (it's difficult because they have almost no documentation).

What is Lemmy?

Lemmy is similar to sites like Reddit, Lobste.rs, or Hacker News: you subscribe to communities you're interested in, post links and discussions, then vote and comment on them. Lemmy isn't just a reddit alternative; its a network of interconnected communities ran by different people and organizations, all combining to create a single, personalized front page of your favorite news, articles, and memes.

Major Changes

Federation code rewrite

The rewrite of the federation code started by @nutomic in August is now mostly complete. As a result, the code is much cleaner, and has tests to guarantee no breaking changes between Lemmy versions. As a side effect of this rewrite, it was now relatively easy to enable federation with other projects.

Mastodon and Pleroma users can:

  • View Lemmy communities, user profiles, posts and comments
  • Follow Lemmy communities to receive new posts and comments
  • Replies (mentions) work in both directions, including notifications

In addition, Pleroma users can exchange private messages with Lemmy users.

Note that Pleroma and Mastodon rely on a compatibility mode in Lemmy, which means that they won't receive events like Deletes or Votes. Other projects whose federation works similar to Pleroma/Mastodon will likely also federate.

Hardcoded slur filter removed

Lemmy finally has essential moderation tools (reporting, user/community blocking), so the hardcoded filter isn't necessary anymore. If you want to keep using the slur filter, copy these lines to your config file when upgrading, and adjust to your liking.

Upgrade notes

If you installed Lemmy without Ansible, you need to edit the nginx config file to follow this example. Otherwise Mastodon won't be able to fetch objects or actors from Lemmy. Ansible applies this change automatically.

No other changes are necessary for federation with Mastodon/Pleroma. Just make sure your allowlist/blocklist allows it. Then get started by searching the URL of a Lemmy user or Community in Mastodon.

Note that Mastodon and Pleroma are much, much bigger than Lemmy at this point, with a combined 3 milion users and 4500 instances, compared to 20.000 users and 35 instances for Lemmy (source). The existing mod tools in Lemmy might not be adequate to handle that at the moment.

Be aware that if you have federation enabled in the Lemmy config, Mastodon and Pleroma users can now fetch all posts and comments, to view them and share with their followers. The Lemmy blocklist/allowlist can not prevent this, it only prevents posts/comments from blocked instances to be shown on your own instance. The only solution to this problem is disabling federation, or waiting for signed fetch to be implemented.

If you want to use federation, but review new instances before federating with them, use the allowlist. You can switch from open federation to allowlist federation by pasting the output of the command below into federation.allowed_instances in the Lemmy config.

curl https://your-instance.com/api/v3/site | jq -c .federated_instances.linked

The lemmy.hjson additional_slurs field has changed its name to slur_filter.

Follow the Docker or Ansible upgrade instructions here.

Lemmy-Ansible

We've now separated our ansible install method (the preferred way to deploy Lemmy) into its own repo, lemmy-ansible. Let us know if you need help migrating existing installations over to it.

Changes

API

  • There is now a GetUnreadCount in the API to check the count of your unread messages, replies, and mentions.
  • A full list of the API changes can be seen on this diff of lemmy-js-client: 0.13.0 -> 0.14.0-rc.1 .

Lemmy Server

  • More federation compat (#1894)
  • Adding clippy:unwrap to husky. Fixes #1892 (#1893)
  • Remove header guard for activitypub routes
  • Add federation test cases for Smithereen and Mastodon
  • Reduce stack memory usage in apub code
  • Remove ActivityFields trait, deserialize into another struct instead
  • Check if post or comment are deleted first. Fixes #1864 (#1867)
  • Correctly use and document check_is_apub_id_valid() param use_strict_allowlist
  • Convert note.content and chat_message.content to html (fixes #1871)
  • Upgrade background_jobs to 0.9.1 #1820 (#1875)
  • Fix husky fmt hook. (#1868)
  • Renaming to slur_filter. Fixes #1773 (#1801)
  • Three instance inbox bug (#1866)
  • Remove ansible from this repo. (#1829)
  • Rewrite collections to use new fetcher (#1861)
  • Dont blank out post or community info. Fixes #1813 (#1841)
  • Format config/defaults.hjson before committing (#1860)
  • Breaking apub changes (#1859)
  • Pleroma federation2 (#1855)
  • Create a custom pre-commit hook, generates config/defaults.hjson (#1857)
  • Add cargo metadata to all crates (#1853)
  • Add both (De)Serialize to all models (#1851)
  • Adding GetUnreadCount to the API. Fixes #1794 (#1842)
  • Federate reports (#1830)
  • Fix saved posts and hide read posts issue. Fixes #1839 (#1840)
  • Dont allow posts to deleted / removed communities. Fixes #1827 (#1828)
  • Dont swallow API errors (fixes #1834) (#1837)
  • Fix federation of initial post/comment vote (fixes #1824) (#1835)
  • Fix clippy warnings added in nightly (#1833)
  • Admins can view all reports. Fixes #1810 (#1825)
  • Adding a message_id to emails. Fixes #1807 (#1826)
  • Generate config docs from code (#1786)
  • Trying a background_jobs fix. #1820 (#1822)
  • mark parent as read on reply (#1819)
  • Move code to apub library (#1795)
  • Adding honeypot to user and post creation. Fixes #1802 (#1803)
  • Add database host back into config file (#1805)

Lemmy UI

  • Updating translations.
  • Fixing unload (#487)
  • Fix setup password. Fixes #478 (#484)
  • Adding post comment scrolling hack. Fixes #480 #486
  • Navbar links (#476)
top 50 comments
sorted by: hot top controversial new old
[โ€“] tmpod 10 points 3 years ago

Huge congratulations for all the hard work! <3
Lemmy is going on a very nice path, thank you!

I hope to continue working on remmy now that this refactor is done hehe

[โ€“] gun@lemmy.ml 8 points 3 years ago (1 children)

It's wild seeing a post on here with 100 likes and comments. Cool.

[โ€“] randoom@lemmy.ml 5 points 3 years ago

same lol. ๐Ÿ˜…

[โ€“] Adda@lemmy.ml 8 points 3 years ago

I am trying to stay calm, but failing miserably. This is simply amazing. Good job!

[โ€“] RaphJ@lemmy.ml 7 points 3 years ago

Thanks guys. This is trully awesome for the Fediverse : This is somehow filling the feature of "groups" people have been asking for so long now.

I still feel there is some work for integration in the UI to do : Like a "fediverse follow" button asking to log from our instance : Being able to post, comment and vote on an instance with our login from mastodon would be Nice. But that's "nice to have".

Thanks again

[โ€“] the_tech_beast@lemmy.ml 6 points 3 years ago

Very cool release.

[โ€“] shilangyu@lemmy.ml 6 points 3 years ago

Absolutely amazing! Thank you @dessalines@lemmy.ml, @nutomic@lemmy.ml, and all contributors for this incredible technical feat! This is very promising and I hope to see Lemmy rise to the top :D I'm honored to be involved in this project

[โ€“] zksmk@lemmy.ml 5 points 3 years ago

Woo! Congrats to the devs.

[โ€“] Halce@lemmy.ml 5 points 3 years ago* (last edited 3 years ago) (1 children)

I assume it should work, but has Misskey federation been tested also? They have a Rust library directly: https://docs.rs/misskey-api/0.2.0/misskey_api/

I assume you could also make Misskey work with direct messages, like you did Pleroma, by linking read:messaging and write:messaging in the API, while Misskey can also do write:page-likes and read:page-likes, which may be of specific interest to Lemmy federaton.

[โ€“] nutomic@lemmy.ml 5 points 3 years ago

No we only tested Pleroma and Mastodon. The API you linked seems completely unrelated to Activitypub though. Below are the docs for Lemmy federation, you can show that to Misskey devs.

https://join-lemmy.org/docs/en/federation/lemmy_protocol.html

[โ€“] Kroktann@lemmy.ml 5 points 3 years ago (1 children)

Other projects whose federation works similar to Pleroma/Mastodon will likely also federate.

I'm able to follow a community from Hubzilla (with the ActivityPub extension enabled.) It doesn't appear as a forum in Hubzilla but as a regular contact. Which I guess is as expected.

[โ€“] harald@hub.volse.no 3 points 3 years ago (1 children)

Does responding from Hubzilla work too?

[โ€“] Kroktann@lemmy.ml 4 points 3 years ago

Yay, it did! Amazing work!

@dessalines Finally! I've been waiting a long time for this to work. Thank you.

[โ€“] tmpod@masto.pt 4 points 3 years ago (1 children)
[โ€“] tmpod 4 points 3 years ago

haha, federation working wonderfully \o/

[โ€“] M500@lemmy.ml 4 points 3 years ago (1 children)

What does it mean that it federates with mastodon? Can you give me an example of what I could do if I have a lemmy and mastodon account?

[โ€“] dessalines@lemmy.ml 2 points 3 years ago

Mastodon and Pleroma users can:

  • View Lemmy communities, user profiles, posts and comments
  • Follow Lemmy communities to receive new posts and comments
  • Replies (mentions) work in both directions, including notifications

Lemmy users can reply to comments made by masto and pleroma users. Also can private message pleroma users.

[โ€“] NeonPurpleStar@mastodon.lol 4 points 3 years ago (1 children)

@dessalines Fuckin shit. This is unreal. Fedi is ready to take on the world now.

[โ€“] dessalines@lemmy.ml 2 points 3 years ago
[โ€“] booteille@framapiaf.org 3 points 3 years ago (1 children)

@dessalines Hi! I just noticed I can't find some communities from Mastodon.

I was able to suscribe to Privacy & Open Source from Mastodon but it does not find Firefox, Rust or Linux communities.

Is it a bug?

[โ€“] nutomic@lemmy.ml 5 points 3 years ago

Yes it seems to be a bug in Mastodon.

[โ€“] tommi@mastodon.uno 3 points 3 years ago

@dessalines

Finally!
This is a game-changer.

[โ€“] tofuwabohu@subversive.zone 3 points 3 years ago

@dessalines This is pretty cool!

[โ€“] daniel@mastodon.cloud.karagory.com 3 points 3 years ago (1 children)
[โ€“] dessalines@lemmy.ml 4 points 3 years ago (1 children)

Thank @nutomic@lemmy.ml, this is pretty much all his work!

[โ€“] Blinky@lemmy.ml 3 points 3 years ago (1 children)

I was under the impression the slur filter was popular on lemmy? To scare away rightwingers

load more comments (1 replies)
[โ€“] lutindiscret@mastodon.libre-entreprise.com 3 points 3 years ago (7 children)

@dessalines testing commenting from Mastodon ๐Ÿš€

[โ€“] dessalines@lemmy.ml 2 points 3 years ago
load more comments (6 replies)
[โ€“] artilectzed@mas.to 2 points 3 years ago

@dessalines Me: I'm going to post a link to this on Mastodon!
Me 10 seconds later: Wait, just find the post and boost it. ๐Ÿง 

[โ€“] doenietzomoeilijk@mastodon.nl 2 points 3 years ago (1 children)

@dessalines amazing how I can just boost a Lemmy post from Masto - living in the future!

[โ€“] dnzm@lemmy.ml 3 points 3 years ago

And I get to talk to myself cross-platform, which is the best kind of talking to yourself! ๐Ÿ˜€

[โ€“] Johann150@genau.qwertqwefsday.eu 2 points 3 years ago (1 children)

@dessalines@lemmy.ml @Halce@lemmy.ml just for your information, federation with Misskey seems to be somewhat working. But for example I am able to view the OP by just searching for the URL in Misskey, but searching for the URL of a reply post does not work. And I also noticed some other parts that will have to be ironed out, probably on our side (not a Misskey dev myself, only a contributor). But all in all it seems to be working. ๐Ÿฅณ

And AFAIK the Rust library that was linked is intended for third party apps and not concerned with federation at all.

load more comments (1 replies)
[โ€“] yobu@mastodon.online 2 points 3 years ago

@dessalines

hell yeah this is amazing, lemmy is finally part of the fediverse

[โ€“] miguel@lemmy.ml 2 points 3 years ago

Congratulations comrades!!! ๐ŸŽ‰ ๐ŸŽ‰ โœจ .

[โ€“] vincent@social.librem.one 1 points 3 years ago

@dessalines Amazing news! (sent from mastodon)

load more comments
view more: next โ€บ