Spyke
announcements·AnnouncementsbyNutomic

Open beta testing for Lemmy 1.0.0

What is lemmy

Lemmy is a self-hosted social link aggregation and discussion platform. It is completely free and open, and not controlled by any company. This means that there is no advertising, tracking, or secret algorithms. Content is organized into communities, so it is easy to subscribe to topics that you are interested in, and ignore others. Voting is used to bring the most interesting items to the top.


Two years have already passed since we started working on some major new features for Lemmy. Back then we still planned to release them as version 0.20, but over time the scope expanded and it turned into version 1.0 instead. Besides many new features, we also took the opportunity to do a lot of cleanup work, so that 1.0 can remain stable for a very long time.

Below you can see the list of major new features. This is far from complete because there are simply too many changes to list. In general, any Github issue which was fixed over the last two years and didn't get into version 0.19, will be part of version 1.0.

For users:

  • Redesigned UI: New card view, less clutter
  • Post Tags: Categorize posts within a community.
  • Multi-communities: Group different communities together into a custom feed.
  • Post scheduling: Specify when your post should be published.
  • Keyword filter: Automatically hide posts about certain topics.
  • Private communities: Only approved followers can view the content (plus other community visibilities).
  • Notifications improvements including notifications for mod actions, and subscribing to community/post notifications.
  • Combined Feeds: view your liked posts and comments together in a single list.
  • User vote totals: There is a setting to view the vote totals you've given to any user.
  • User notes: You can make and view notes for any user.
  • GDPR style data exporting: You can now export your historical data as a JSON file.

Other changes:

  • Comment Locking: Comments can now be locked, and it also locks any reply comments.
  • Plugins: Can be written in JS, Python, Rust, and any other language that targets Webassembly. See the documentation for details.
  • Cursor pagination: Don't lose your place in the feed when switching pages.
  • OAuth: Login to Lemmy with existing account from another website.
  • New API v4: Apps and frontends need to be updated to take advantage of new features. There is also a backwards compatible API v3 available.

The main work which still needs to be done before the official release is SQL optimizations. Some queries are still too slow, taking up to 300ms. And the database migrations from 0.19 to 1.0 take roughly 20 hours for lemmy.ml (smaller instances will be much faster). If you are an expert with PostgreSQL we need your help. Please have a look at the following issues which include all the relevant details:

The other remaining task is testing and bug fixing. Now it is your turn as Lemmy users: on voyager.lemmy.ml try the new version and create an account. Signups are open, feel free to make posts, create communities and do everything else that can be done. Spamming test posts is absolutely encouraged. See how the new features work, and open an issue if you encounter any problem (backend, frontend).

If you run a test instance for Lemmy, we suggest that you upgrade it to 1.0.0-beta.0 by following the instructions. You can also try to run the 1.0 database migrations against a local copy of your production database. This will show how long the upgrade process will take, and help to reveal bugs in the migrations.

Be careful about upgrading production instances. In principle you can already use 1.0 in production. Be sure that you have working backups and that you can restore them. Expect to tolerate major bugs, or to revert back to the stable version for now. If you have any problems, join the admin chat on matrix or ask in /c/lemmy-support.

For developers of Lemmy apps and clients, now is the time to start updating your projects to use the new API v4. This will give you enough time to use the new API once Lemmy 1.0 is finally released. See the API v4 upgrade guide for instructions. If you develop any tools which integrate with Lemmy, have a look at the new plugin system.

Over the next months we will focus on testing and bug fixing. Afterwards, when when all major problems are fixed we will go to the release candidate phase. Then lemmy.ml will be upgraded to version 1.0.0-rc.0 to find remaining problems in production. When these are also resolved we will publish the final 1.0 release.

Thanks to everyone who contributed to the new release so far!


An open source project the size of Lemmy needs constant work to manage the project, implement new features and fix bugs. Dessalines and Nutomic work full-time on these tasks and more. As there is no advertising or tracking, all of our work is funded through donations. Even so there is barely enough time in the day, and no time for a second job. The only available option are user donations.

To keep it viable donations need to reach a minimum of 5000€ per month, resulting in a modest salary of 2500€ per developer. If that goal is reached we can stop worrying about money, and fully focus on improving the software for the benefit of all users and instances. We especially rely on recurring donations to secure the long-term development and make Lemmy the best it can be.

Donate

View original on lemmy.ml

Reading through the codebase to find where those dastardly .ml devs injected the Leftist Extremism.

46

Affero General Public License? That sounds like it's coming straight from Stalin's mouth

13
iByteABitreply
lemmy.ml

I didn't find the option, how do you create them from the UI?

5

You need to be a community mod, and then go to the community settings (it's a separate page now). In the settings theres a tab for managing tags.

And when creating or editing a post, you can add tags at the bottom of the form.

11
Nutomicreply
lemmy.ml

At the moment no. We want to stabilise all the features which are already implemented, before adding more things.

34

The links at the top (communities, multi communities) go the same color as the background when you hover on them, which makes them unreadable. The Voyager thing next to them is unreadable as well. This is with the default theme, in dark mode.

Also: clicking next on a community loads the same posts, checking the devtools, no cursor/page param is sent in the api request for posts. Home feeds do paginate.

Very minor nitpick: the button here is flowing out of the container:

11

Not gonna lie I was compulsively checking the community for the beta lol. This is amazing news to wake up to!

8

That will be done automatically once we update js client to use the latest backend structs, and then update lemmy-ui to use the latest js client.

2

The links at the top (communities, multi communities) go the same color as the background when you hover on them, which makes them unreadable. The Voyager thing next to them is unreadable as well. This is with the default theme, in dark mode.

Also: clicking next on a community loads the same posts, checking the devtools, no cursor/page param is sent in the api request for posts. Home feeds do paginate.

Very minor nitpick: the button here is flowing out of the container:

3

We found this one last night, the fix is merged and will be deployed tomorrow with the nightlies.

You might need to open up an issue for that container one. Gotta use an ellision.

5

Check again on voyager, the colors are working right now.

2

Thanks, I fixed the community pagination and opend an issue for the button overflow.

2
Nutomicreply
lemmy.ml

Any more details on this? For me its working fine with back button and then press enter for the "Are you sure you want to leave?" dialog.

2

Hah, every tester knows you never divulge your environment until the dev can’t repro it.

Unfortunately, this one might be difficult, and it’s possible it’s actually a browser bug, though I could swear there are other cases where I do get that prompt.

I can reproduce it in iOS Safari, currently on iOS 26.3.1. I get the pop up if I try in Firefox or Chrome (still on iOS, and they both use the same WebKit afaik), though. I’ll update to the latest shortly and see if that changes anything, but I’ve had this issue in 0.19.x for a long time too.

Updating to 26.5 did not change it.

I’m still confused about why back doesn’t work at all, nor why it works in Chrome and Firefox when I thought they’re basically just reskinning safari, but it seems part of the issue is that beforeunload isn’t properly supported on iOS:

https://bugs.webkit.org/show_bug.cgi?id=219102

https://developer.mozilla.org/en-US/docs/Web/API/Window/beforeunload_event

1
Nutomicreply
lemmy.ml

Wow I didnt think that there are still problems like this on the web. Will be difficult to fix as we dont use iOS devices. Do you know if there is any workaround?

2
Dessalinesreply
lemmy.ml

Thx for opening. Also be sure to open a bug on lemmy-ui if one doesn't exist. Going to be tough to solve because neither of us have iOS devices.

2

Sure, will get to it. I can at the very least test the library fix without too much difficulty at this point - it looked like different folks work on that and maybe one of them will have a device.

If not, I need a crash course on their history router

2

I also don't have an iOS device to test on, so its going to be tough to figure out.

1

Also, I haven’t dug into the recent lemmy-ui changes to try to understand why, but today my standard workaround is happy again: navigate to my profile (or another link that causes the prompt to display), long-press the back button and skip the immediate xpost link for the one prior.

1
retrolemmy.com

I tried the new signup via Github and got an error

client.js:2 Request error while calling POST /oauth/authenticate with {"code":"CODEREDACTED","oauth_provider_id":1,"redirect_uri":"https://voyager.lemmy.ml/oauth/callback"}
wrapper	@	client.js:2
2
retrolemmy.com

I tried to export/import my user settings and subscriptions, but the import failed in voyager with a 400 error (I didn’t have the network tab open so I didn’t see the error message, and now I’m rated limited so I’ll have to wait to check again)

2

If enterprise could get restarted so I don’t need to wait 24+ hours to test the effects of federation after an import there, I’d appreciate it… @[email protected] tagging you too because presumably either of you could help me bypass the export/import rate limit and I was silly enough to export instead of just importing something else I had from 0.19

2
Nutomicreply
lemmy.ml

I changed the rate limit for imports to 10 per hour now.

3

I got a success message a couple times when I tried to import after my comment (probably thanks to restarts) but the changes didn’t appear to reflect (specifically to bio/display name).

For bio in particular, it seems like that might be that the field isn’t populating properly. I didn’t think to check whether it displayed on my profile, but when I manually save a change to my bio, I’ve noticed the box is blank afterwards, but my profile page shows it.

1

Got another import success, verified that it didn’t change my bio (or display name), even when viewing my profile page afterwards.

Also, currently my display name wraps here, but it doesn’t there, instead increasing the page width. E: maybe that’s because the space didn’t fit E2: yep, it’s because my current name is 1 char longer than the max - also, also, also: “Invalid displayname” is more useful than the old error message, but “Display Name too long” or “Max display name length: N characters” would be more useful and easier understood.

Also, also, I was able to see private_comm from the comm list and try to subscribe to it. Now it appears on my subscription list, but following the link doesn’t give me any option to remove my subscription request. I could presumably do that from the full comm list, but it’d be easier if I had a way to revoke (or submit) my request when trying to view it.

1
Nutomicreply
lemmy.ml

The fix for profile import works by ignoring all the profile settings. Thats because there are too many differences between 0.19 and 1.0 to make it easily work.

For displayname length: https://github.com/LemmyNet/lemmy-ui/issues/4156

Not sure what you mean with private comm, I can cancel my pending subscribe just fine either from the community list, or in the sidebar when viewing the community directly.

2

Ok, the real bug is that if your display name has been edited to be longer than the max, the toast reports that the import was a success, but neither changes to your display name nor changes to your bio actually import successfully, even if the bio change would have been successful otherwise. If I don’t change my display name, the bio imports fine.

I haven’t tested any other changes to import and whether they actually apply or not when the display name is too long.

What will happen to my current display name on upgrade? Does it just get truncated? Stay the same but I can never edit settings again?

1
  • Unlisted communities should be shown in community list
  • Posts/comments from unlisted community should not be shown in All/Local feeds, but should be shown in subscribed feed and when viewing the community directly

Neither of these quite match what I expected from an “Unlisted” community. I’m not sure how to name it to better reflect the actual intent, though.

For the second, I guess the main way that doesn’t fully meet what I’d expect is that if I’m subscribed I’d think I’d see posts in all/local still?

1

When trying to edit this post the body never loads. E: Luckily, editing it without setting the body doesn’t clear it, and I can copy the source and edit to actually update, but that’s painful.

Also, I’ll figure out soon what happened previously, but: an mp4 I tried to render in the post looked like it would work well enough when previewing, but created a pictrs mirror that fails with:

{"error":"unknown","message":"error sending request for url (http://pictrs:8080/image/original?proxy=https%3A%2F%2Fscx2.b-cdn.net%2Fgfx%2Fvideo%2F2026%2Fbrookfield-zoo-chicago.mp4)","cause":"error sending request for url (http://pictrs:8080/image/original?proxy=https%3A%2F%2Fscx2.b-cdn.net%2Fgfx%2Fvideo%2F2026%2Fbrookfield-zoo-chicago.mp4)"}
2

In this case thumbnails are still shown small. Only direct image uploads are shown larger.

1

Previously, errors generally would leave the content you tried to post available to retry or copy. I am currently rate limited, and the rate limit error clears the contents of my comment. If I had typed a meaningful comment, it would have been lost.

2
mitra.social

Hello @nutomic, could you add my instance to the allowlist? I'd like to test federation with private communities.

1
silverpillreply
mitra.social

Thanks!

Tried to follow a private community, and I have a problem with this Accept activity:

{"@context":["https://join-lemmy.org/context.json","https://www.w3.org/ns/activitystreams"],"actor":"https://voyager.lemmy.ml/c/privfedtest","id":"https://voyager.lemmy.ml/activities/accept/6a08b817-9dc2-498a-a637-9092c8ea15fc","object":{"actor":"https://mitra.social/users/silverpill","id":"https://voyager.lemmy.ml/activities/follow/3c08aca5-9e41-4d15-b134-326c4bd91bd0","object":"https://voyager.lemmy.ml/c/privfedtest","to":["https://voyager.lemmy.ml/c/privfedtest"],"type":"Follow"},"to":["https://mitra.social/users/silverpill"],"type":"Accept"}

The id inside Accept.object is not the ID of my Follow activity, it's something different. Its origin is not my server:

https://voyager.lemmy.ml/activities/follow/3c08aca5-9e41-4d15-b134-326c4bd91bd0

2

I saw that PR was merged and tried again, but now Lemmy doesn't notify me (community admin) about the follow request, and doesn't send Accept. However, the community subscriber counter increases and private posts are delivered to the follower.

1

Moderator Controls:

  • can “distinguish as moderator” own comments, but not own posts
  • can “feature in community” posts by other users, but not “feature” comments in threads
  • no controls for posts or comments by Admins
    • maybe y’all don’t agree as admins, but I would expect all the same controls as for other users - feature/unfeature posts (and comments, ideally), lock/remove/warn, ban/unban/appoint or remove mod, view votes, edit as mod (given its limited options)

Perhaps with exceptions if an admin has used a “distinguish” feature themselves?

I can certainly see arguments for why mods shouldn’t be able to do some of these things - some suggest a level of disagreement that perhaps means the comm should find a new home (ban/remove/warn in particular) but the others don’t feel like they rise to the same level of disagreement, and I’d still argue that, for example, failing to post a frog (or at least a toad) should be moderatable activity.

1
Nutomicreply
lemmy.ml

Distinguish as moderator is only for comments, while feature is only for posts. Both of these are similar but different. I suppose we could rename "distinguish" to "feature" as well?

For mod actions there is a simple api response field can_mod, and its always false if the other user is a higher ranking mod or admin. We dont distinguish between can_remove, can_feature etc because that would get too complicated.

2

I might have misunderstood these then - I assumed that removing admin/mod icons next to usernames was purposeful, and that “distinguish” instead allowed admins/mods to post without indicating that, while when they distinguish a post or comment it means “I am a mod/admin and am saying this as one” rather than participating “as a user”, meanwhile “feature”/pin would mean “this is highlighted” without necessarily being a post/comment from a mod/admin (though it could be) and without the “I’m saying this from my position of authority” meaning behind distinguish.

2
Nutomicreply
lemmy.ml

Yes pretty much. Its just that "featured" is for posts, and "distinguished" for comments.

2

Its intentional because not every post and comment needs to show that a user is admin or mod. Makes it difficult to participate in normal discussions as everything looks like "official" communication. Also the distinguish feature was barely being used.

1

Distinguish as moderator terminology comes from reddit, so its probably best to leave as is.

1

Dark themes all(?) have issues with white-on-white text in comm selector, RBlind themes are both horrific in their own unique ways:

I haven’t really looked in depth at any of the themes, I’ve mostly been using darkly-compact, though I couldn’t tell you what’s different from darkly.

1
Nutomicreply
lemmy.ml

Opened an issue for RBlind themes, but darkly themes look just fine here. Any screenshots or more details?

2

Larger:

In all 3 cases, I have searched for “Frog” (or similar). In the first and third, the vertical blue line is my cursor at the end of the text I’ve typed. In the second, I’ve selected the text I’ve typed.

1
Nutomicreply
lemmy.ml

Is that also RBlind theme? I made a fix for that now.

2
Nutomicreply
lemmy.ml

These are working fine for me. Maybe theme reload is not working in your browser, try reloading the page.

1

Plz open up issues for these in lemmy-ui, its hard for me to keep track of comments to this post, and that is a legitimate bug.

1

The superscript icon doesn’t handle links (or the markdown library handles it incorrectly?).

This text:

Rhino horns are a prized commodity on the black market, and organized criminal networks are involved in smuggling them from Africa to Asia. Image by [Rollison, Nan](https://www.fws.gov/media/rhino-horns) (Public Domain).

Is converted to:

^Rhino\ horns\ are\ a\ prized\ commodity\ on\ the\ black\ market,\ and\ organized\ criminal\ networks\ are\ involved\ in\ smuggling\ them\ from\ Africa\ to\ Asia.\ Image\ by\ [Rollison,\ Nan](https://www.fws.gov/media/rhino-horns)\ (Public\ Domain).^

Which does not render the link properly:

^Rhino\ horns\ are\ a\ prized\ commodity\ on\ the\ black\ market,\ and\ organized\ criminal\ networks\ are\ involved\ in\ smuggling\ them\ from\ Africa\ to\ Asia.\ Image\ by\ Rollison,\ Nan\ (Public\ Domain).^

This markdown would render properly, maybe others would too:

^Rhino\ horns\ are\ a\ prized\ commodity\ on\ the\ black\ market,\ and\ organized\ criminal\ networks\ are\ involved\ in\ smuggling\ them\ from\ Africa\ to\ Asia.\ Image\ by^ [^Rollison,\ Nan^](https://www.fws.gov/media/rhino-horns) ^(Public\ Domain).^

^Rhino\ horns\ are\ a\ prized\ commodity\ on\ the\ black\ market,\ and\ organized\ criminal\ networks\ are\ involved\ in\ smuggling\ them\ from\ Africa\ to\ Asia.\ Image\ by^ ^Rollison,\ Nan^ ^(Public\ Domain).^

It also fails to handle multi-paragraph selections properly.

1

While federation between here and voyager clearly somewhat worked at one point, it seems like it’s currently broken. Before starting this test, I verified that Voyager has 1 local subscriber to this comm. I then upvoted a different comment from each instance, and commented on the one I upvoted from the other instance. Neither my votes or comments appear to have federated in either direction.

On https://phiresky.github.io/lemmy-federation-state/site?domain=lemmy.ml voyager’s last successful activity has increased several times.

On https://phiresky.github.io/lemmy-federation-state/site?domain=voyager.lemmy.ml I consistently get an error.

I upvoted this comment on ml and commented on it from voyager: https://voyager.lemmy.ml/post/16766/13025#comment-13025

I upvoted this comment on voyager and commented on it from ml: https://lemmy.ml/post/47547535/25761105

1
Nutomicreply
lemmy.ml

voyager.lemmy.ml uses an allowlist for federation. Otherwise the server quickly gets overloaded when people subscribe to large communities on lemmy.world etc. You can test with enterprise.lemmy.ml (test instance with 0.19), and I can also allow other test instances.

2
Nutomicreply
lemmy.ml

Checking now I also have one community pending, and another subscribed. Made a fix for private community permissions.

Which comment specifically? Dont see anything recent on voyager. For me follow from enterprise to voyager worked fine.

2

Not private:

I just cancelled and resubmitted the request, though. Going to finish this comment, but guessing it won’t have worked by then.

Not getting scrolled to the comment from this link, but this is the one that hasn’t federated: https://enterprise.lemmy.ml/post/1816/7119

On Voyager, logged in as the mod/creator and having never unsubscribed, this is what I was seeing:

Having removed and resubscribed, it now looks fine. I did the same for all the other comms I was previously subscribed to and was able to accept my request to rejoin the private comm I made & can now view it again.

On enterprise, my request to subscribe to a public comm is still pending.

1

Found the problem, on 0.19 you have a very long displayname and 1.0 cant fetch your profile for that reason. So all federation with your account is broken. Made a PR to fix it.

1

Unable to manage (revoke) Private comm membership post-subscribe (maybe via ban if the user posts? Can’t if no post, haven’t verified if ban actually revokes view access) E: permanent bans do revoke access, haven’t tested others. Bans don’t show in your public modlog, do show in user inbox. That maybe makes sense. Request to (re)subscribe button does nothing?

Unable to manage (grant) Private comm membership post-denial (unless user revokes and re-requests subscription)

Notification for pending membership request not visible in header, only when expanding menu.

1
Nutomicreply
lemmy.ml

Feel free to open an issue for these. At the moment theres no time for new features because someone reported so many bugs :P

2

Editing empty multicomms is unintuitive. After creation, the “Subscribe to some communities.” text links to the comm list, which has subscription buttons, but are not for subscribing the multi, but me. It’s probably just reusing the view when you’ve subscribed to nothing, but ideally would either:

  • have “subscribe” linked to the multi settings
  • link to a comm list that subscribes the multi instead of the user
  • have some additional text like “from the multi-community settings”

Also, unintuitive to display for users who didn't create the empty multi

1
lemmy.ml

Looks nice but definitely going to take some getting used to the new UI changes. Liking it for most part.

Not able to successfully post an image so far, maybe something broke with iterations going on. They never show a thumbnail after upload and disappear from the post.

1

Yes thats a bug, the image upload works but it doesnt put it in the post url automatically.

2