Announcements
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
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.
Last month we published the first beta for Lemmy 1.0. A lot of problems have already been reported and fixed. You can try the new features and visual updates in production by visiting the test server voyager.lemmy.ml. It is automatically updated to the latest development version every night. Please help by testing the new features and reporting any problems.
We also opened issues for the various open source Lemmy apps, to notify them of the upcoming API updates, and get ready for the 1.0 release. If there is any client that we missed, please let the developers know about the new version update.
You can follow our development progress with these milestone links:
If you have any experience with web development or want to learn it, consider contributing to lemmy-ui. It is written in standard Typescript with Bootstrap. If you have experience with Kotlin or Android development, you can help contribute to Lemmy's open source Android app, Jerboa.
Here are all the changes from May:
Full list of changes by repo
lemmy
- On multi-comm creation check for duplicate (fixes #6546) by @Nutomic
- Admins and mods can view private community without following by @Nutomic
- Fixes for mod action check (fixes #4174) by @Nutomic
- 1.0 prefix for nightly version (fixes #6517) by @Nutomic
- Add missing private instance checks by @Nutomic
- Fixes for unlisted community by @Nutomic
- Add tags to PostReportView and CommentReportView. by @dessalines
- SearchResponse should use PaginationCursor (fixes #6518) by @Nutomic
- Add missing skip_serializing_none by @Nutomic
- Fix markdown link rewriting (fixes #6511) by @Nutomic
- Fix for OAuth registration answer by @Nutomic
- Fix for person content combined types by @Nutomic
- Remove CreateCommunity params icon, banner (fixes #6520) by @Nutomic
- Fix outdated documentation for SearchResponse by @MV-GH
- Increase default rate limit for settings import (fixes #6508) by @Nutomic
- feat: add RequireInvitation registration mode for invite-link-style signups by @kryoseu
- Import settings from Lemmy 0.19 by @Nutomic
- Dont specify exact pictrs version for docker by @Nutomic
- Check multi-comm owner during update by @Nutomic
- Fix cargo publish by @Nutomic
- Add ap_id to the fuzzy searching for community and person. by @dessalines
- Add plugin hooks for init and scheduled tasks (fixes #6488, fixes #6489) by @Nutomic
- For federated post feature, write modlog and validate community by @Nutomic
- Enable more lints for api tests by @Nutomic
- Make types internally public. by @cameroncros
- RequestState in api_tests WIP by @matc-pub
- Allow specifying bootstrap_instances without admin (fixes #6490) by @Nutomic
- Hide hidden posts from person/list_content by @dessalines
- Plugin hook for user deletion (fixes #6485) by @Nutomic
- Fixes for search pagination by @Nutomic
- Add validation for apub audience field by @Nutomic
- Skip links cleaning in code blocks by @tracyspacy
- Also build beta versions for ARM by @Nutomic
- Checking community_ids instead of
self.community_idfor post queries by @dessalines
lemmy-ui
- Only clear local storage markdown for success responses by @dessalines
- Update js client by @Nutomic
- Add missing signup inputs for OAuth (fixes #4151) by @Nutomic
- Fix dark/light mode for RBlind themes (fixes #4172) by @Nutomic
- Fix docker syntax by @Nutomic
- Don't show thumbnails for text posts. by @dessalines
- Change "Show sidebar", "Show subscribed" buttons (ref #4131) by @Nutomic
- Force show private comm sidebar on mobile (fixes #4163) by @Nutomic
- Fix error handling for image uploads (fixes #3892) by @Nutomic
- Reduce margins for select inputs (ref #4131) by @Nutomic
- 1.0 prefix for nightly version by @Nutomic
- Hide subscribe to communities for empty multi-community. by @dessalines
- Fixing display name max length check. by @dessalines
- Fixing chat view post fetches. by @dessalines
- Fix user note wrapping. by @dessalines
- Format buttons should not submit comment form by @Nutomic
- Fix OAuth login by prompting for username if needed (fixes #4108) by @Nutomic
- Better related posts in post form (fixes #4123) by @Nutomic
- Fixing image uploads. by @dessalines
- Fixing notifs overflow by @dessalines
- Fix rate limit error message for settings import/export by @Nutomic
- Fix community pagination by @Nutomic
- Add warning that private community sidebar is public by @Nutomic
- Clear markdown from local storage when submitting post and others by @Nutomic
- Update theme and language after login/register by @Nutomic
- Fix OAuth provider preset (fixes #4107) by @Nutomic
- Edit as mod should not be available for comments by @Nutomic
- Search pagination by @Nutomic
- Fixing default theme to check "browser" by @dessalines
- Use title_only for community search in PostForm by @Nutomic
- Hide mod/admin badges on post and comment listings by @Nutomic
- Add pnpm-workspace.yaml to Dockerfile by @dessalines
- RequestState without wrapping by @matc-pub
- Persist markdown content in local storage (fixes #4084) by @Nutomic
- Fix hide post from profile page (fixes #4071) by @Nutomic
- Also build beta versions for ARM by @Nutomic
joinlemmy-site
- Use relative url for suggested instance by @Nutomic
- Create 2026-05-19 - Open beta testing for Lemmy 1.0.0 by @Nutomic
jerboa
- Upgrade room-db-export to toast failure messages by @dessalines
lemmy-js-client
- Fix endpoint name adminListUsers by @MV-GH
- Update types by @Nutomic
- Upload check ok by @Nutomic
- markManyPostsAsRead (fixes #963) by @Nutomic
- Registration invitation by @Nutomic
- Fix image uploads by @dessalines
- Search pagination by @Nutomic
- Update readme to account for RequestStates by @dessalines
- Wrap responses in RequestState by @matc-pub
lemmy-client-rs
- Update readme with usage. by @dessalines
- Adding a codeowners file for PRs. by @dessalines
- Use
1.0IE v1-alpha asmainbranch by @dessalines
Or see the full list of changes at the links below:
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.
During the past month we finished the remaining, major tasks for 1.0 alpha. This means that we are ready to publish the first beta version in the next days! In particular we optimized database queries to have reasonable performance. While most are fairly efficient now, some are still too slow and would appreciate help from SQL experts.
@adrgs and @aisafe-bot found a few security vulnerabilities in the development version. Many thanks for doing this important work.
- Resend verification endpoint exposes registered email addresses
- Private Lemmy instances expose multi-community metadata without authentication
- Private community data exposed through community, saved, liked, and modlog API views
You can follow our development progress with these milestone links:
To see the new features and visual updates in production, you can visit voyager.lemmy.ml which deploys new changes every night. Please help by testing the new features and reporting any problems.
If you have any experience with web development or want to learn it, consider contributing to lemmy-ui. It is written in standard Typescript with Bootstrap. If you have experience with Kotlin or Android development, you can help contribute to Lemmy's open source Android app, Jerboa.
Here are the major changes from April:
Full list of changes by user
kryoseu
dahlia
MazenSamehR
MV-GH
KiaraGrouwstra
matc-pub
- Walk prototype chain in wrapClient
- Define variables from _variables-dark.scss for dark themes
- Lint arrow function passed to removeEventListener using no-restricted-syntax rule
- Post time range input with nested dropdowns
Nutomic
- Add domain check when receiving federated ban
- Only show private community modlog items to followers
- Lint for unchecked_time_subtraction
- Check mod hierarchy when removing mod via federation
- Implement search pagination (fixes #6434)
- More internal IP checks
- Update to Rust 1.95, use cfg_select!
- Proper fix for nested comment fetch
- Fix federation of post removal by admin on user instance (fixes #6437)
- Increase timeouts for db pool
- Use internal IP check from apub lib, IP check for webfinger
- Restore search parameters
- Search adjustments (fixes #3995)
- Release 0.19.18
dessalines
- Check multi-community read for private instance.
- Fixing resend verification email.
- Don't allow private message edits for blocked users.
- Adding ability to search for post name and comment content on list saved
- Fixing warn modlog_constraint migration
- Adding a report list sort override.
- Fixing failing example.com federation tests.
- Same-table join DB optimizations.
- Fix arm builds 2
- Fixing a few test cleanups
- Only do ARM docker release builds on non-pre-release semver
- Try to fix woodpecker error.
- Fix select dropdowns.
- Fixing icon and banners.
- Trying to fix arm builds 2.
- Only do ARM docker release builds on full semver (no pre-release text)
- Show alt text feedback
- Make the viewerjs image animation faster.
- Consolidate gplay and fdroid versions using flavors
- Adding freedroidwarn
Or see the full list of changes at the links below:
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.
Work on the backend changes for 1.0 is mostly finished now. What's missing is optimizing the migrations as they currently take about 9 hours for lemmy.ml. Now we are starting to work on updating lemmy-ui for the API changes and new features.
In the last days we did a big cleanup of the lemmy-ui issue tracker, closing 450 mostly outdated issues. Many of these were over a year old describing problems that have long been fixed. From 570 issues only 120 remain. Most of these are very minor, changing a single UI element here or there. It should be possible to implement 90% of them within a month or two.
Here are some of the major changes made over the past month:
- Add ability to block all users of an instance (#5784)
- Notifications rewrite, users can be notified about new posts or comments (#5604)
- Post tags (#5869)
- Site and user setting for items per page (#5887)
- Don't show edit mark if comment was edited in less than 5 minutes (#3197)
- Speedup of 1.0 migrations (#5873)
Full list of changes by user
jfaustino
- Change textarea placeholder for locked posts
- Don't show edit mark if comment was edited in less than 5 minutes
SleeplessOne1917
- Re-export UpdateCommunityNotifications
- Re-export some types from lemmy-api-common
- Add missing TS derives that were causing errors when generating Typescript bindings
- Add
creator_bannedto VoteView
dessalines
- Adding a local_site and local_user setting for default fetch limit
- Add ability to block all users of an instance.
- Fast history no background
- Fixing username-instance duplicate migration.
- Don't export inbox combined view internal.
- [Main] remove all caches
dullbananas
- Add update_schema_file.sh
- Refactor pagination cursor parsing
- Speed up init in start_dev_db.sh using no-sync option
- Fix comment depth test
- Prevent stack overflow when fetching nested comment
- Require indexes for all foreign keys
- Use a new separate crate for uplete
- Allow running all migrations with minimal dependencies
Nutomic
- Use case insensitive sort for followed communities (fixes #5903)
- Merge different
AlreadyExistserrors (fixes #5897) - Properly parse icons federated from Peertube (fixes #5894)
- Rename modlog items
- Refactor email
- Only use MiMalloc on x86_64 target arch (fixes #5695)
- Purge user images in background task (fixes #4642)
- Finish adding post tags
- Allow remote groups to follow Lemmy communities (fixes #5354)
- Fix foreign key indexes migration
- Remove unused items
- Notifications rewrite and post following (fixes #3069)
- Add unique constraint for person(name, instance) (fixes #5045)
- Extism release version
- Delete report views, add missing report fields
- Update extism
- Federation refactoring
- Fix comment depth off by one
- Move local site user count updates to scheduled task
- Revert " Add post_actions.disable_notifications (fixes #3042) (#5826)"
- Add missing comment depth check
- Dont call resolveObject for search
- Change icon for save action (fixes #1564)
- Use anchor for comment permalinks (fixes #2908)
- Only cache success responses (fixes #3129)
- Redirect away from /setup page if already created (fixes #897)
- Update regex for validating matrix id (fixes #1726)
- Fix host splitting for IPv6 (fixes #2374)
- Increase bio max length to 1000 chars (fixes #2657)
- Change link from element.io to matrix.org (fixes #2293)
- Search changes
- Change display format for community name in search
Or see the full list of changes at the links below:
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.
This was a busy month, with ~80 pull requests merged, as we're trying to get all the breaking changes we can added before the 1.0 release.
The release is still several months away, as even after finishing up the rest of the 1.0 milestone issues, we still have to add this new functionality to Lemmy-UI and Jerboa, and do extensive testing.
Here are some of the major changes made over the past month:
- Added multi-communities (One of the most requested features).
- Added a new rate limiting library.
- Refactored the API structs and library for better usage in Rust projects.
- Improved the migration diff checker.
- Using an external library for checking invisible characters.
- Votes are now removed when banning + removing data.
- Added a GDPR style data export.
- Storing upvote / downvote totals you gave to each user, and a setting to display that history next to their name.
- Added ability to make a note for a user.
- Added an RSS feed for modlogs.
- Added an API action to get liked / disliked content.
Full list of changes by user
Lemmy:
- Improve migration diff check and fix old migrations (#5204) dullbananas
- Implement multi-community (fixes #818, fixes #5340) (#5601) Nutomic
- Add endpoint to get Liked / Disliked comments and posts. (#5616) dessalines
- Add permitted display characters check for post titles (#5692) SleeplessOne1917
- Adding Modlog RSS feed. (#5708) dessalines
- Decrement fail_count instead of reset to 0 (ref #5716) (#5717) Nutomic
- Leave mod teams on account deletion. (#5721) dessalines
- Throw error if the removed code_migrations.rs needed to run but didn't (#5723) dullbananas
- Fix assumption that is_err always means the local site doesn't exist, which may cause the local site's keypair to be regenerated (#5724) dullbananas
- Simplifying transaction call (#5703) (#5726) momentary-lapse
- Switch to library for rate limit (fixes #5550, fixes #5548) (#5731) Nutomic
- Dont run scheduled tasks at startup (ref #5716) (#5732) Nutomic
- Adding proper NSFW filtering to search, based on user settings. (#5733) dessalines
- Move lemmy_api_common structs to view crates, make a lemmy_api_utils crate (#5735) SleeplessOne1917
- [0.19] Decrement fail_count instead of reset to 0 (#5737) Nutomic
- [0.19] Update user count from local_user table instead of person table, and only count users with accepted application (#5738) Nutomic
- Mark some *Action struct fields as serde(skip) (ref #5532) (#5739) Nutomic
- [0.19] Only use HTTP/1 (#5744) flamingos-cant
- [0.19] Dont run scheduled tasks at startup (#5732) (#5745) Nutomic
- Pin cargo-workspaces version (#5746) Nutomic
- Test case for activity send errors (#5747) Nutomic
- Revert "[0.19] Downscale proxied thumbnails (#5686)" (#5751) Nutomic
- Resolve objects as part of search api call (fixes #5740) (#5752) Nutomic
- Specify rust 1.81 (#5754) Nutomic
- Update extism (#5755) Nutomic
- Fix lemmy_federate test (#5756) Nutomic
- Fix lemmy_federate test (again) (#5757) Nutomic
- Use invisible_chars library (#5759) dessalines
- Rename timestamp fields to
_at(#5761) dessalines - Upgrading deps. (#5764) dessalines
- Adding ability to make a note for a given person. (#5765) dessalines
- 0.19 specify rust 1.81 (#5766) Nutomic
- Remove feature
fullfor api_utils (#5767) Nutomic - Rename upgrade check migration to run first (#5768) Nutomic
- Remove private instance check for get image (fixes #5763) (#5769) Nutomic
- [0.19] Remove private instance check for get image (#5770) Nutomic
- Make search query mandatory (#5772) Nutomic
- Parallel sql format (#5773) Nutomic
- Keep rustup home dir between ci steps (#5775) Nutomic
- Enable urlencoding for pictrs proxy parameter (fixes #5749) (#5776) Nutomic
- Upgrading ts-rs, and adding feature flag (#5777) dessalines
- Implement multi-community search (fixes #5778) (#5779) Nutomic
- Use binstall for diesel-cli (#5780) Nutomic
- Move db_perf check to unit test (#5781) Nutomic
- Fixing a few optionals. (#5782) dessalines
- Small
lemmy_api_common/db_viewsfixes/tweaks (#5783) SleeplessOne1917 - Keep totals of upvotes and downvotes given to each user. (#5786) dessalines
- Test migrations improvement (#5788) momentary-lapse
- Replace most uses of context.reset_request_count() with clone() (#5790) Nutomic
- chore: replace nightly API Duration::from_days with Duration::from_secs (#5791) Integral-Tech
- Add incoming activity hook for plugins (#5792) Nutomic
- Remove ts-bindings null check from CI. (#5795) dessalines
- More re-exports (#5796) SleeplessOne1917
- Delete scripts/ts_bindings_check.sh (#5797) Nutomic
- Fix migration local_image_person (#5799) Nutomic
- Optimize migrations (#5800) Nutomic
- Adding GDPR-style data export (#5801) dessalines
- Move config updated check to unit test, use diffy (#5803) Nutomic
- Removing an existing deferrable constraint, and fail test if any constraint is deferrable. (#5806) dessalines
- [0.19] Reduce false positives in URL blocklist to reduce scunthorpe problem … (#5807) Nothing4You
- Remove
creator_*_actionsfields from api (ref #5532) (#5808) Nutomic - Set
Accept: Varyheader for federation endpoints (fixes #5632) (#5809) Nutomic - Remove votes when ban + remove data for a site or community. (#5810) dessalines
- Fixes for "Move config updated check to unit test, use diffy" PR (#5812) dullbananas
- Remove outdated comment about deferrable constraints in triggers.sql (#5813) dullbananas
- Fix db_perf.sh (#5815) dullbananas
- Optimizing person_content_combined migration. (#5819) dessalines
- Fixing docker_update.sh script to not add context. (#5820) dessalines
- Optimizing a few more combined migrations (#5821) dessalines
- Better way to check if we should accept activity in remote community (#5823) Nutomic
- Rename rate limit columns (fixes #5805) (#5824) Nutomic
- Send Undo/Dislike activity (fixes #4465) (#5825) Nutomic
- Add post_actions.disable_notifications (fixes #3042) (#5826) Nutomic
- Revert "Use same federation keypair for all new users and communities (#5709) (#5830) Nutomic
- Drop table person_ban (fixes #5828) (#5831) Nutomic
- Use vec_into (#5833) dessalines
Lemmy-ui:
- Show upvoted posts, comments in user's profile (#3057) Tyoda
- Add a denial reason using the error.message field. [0.19] (#3175) dessalines
- Add a denial reason using the error.message field. [main] (#3176) dessalines
- Fix spoiler escaped characters (#3181) bryewalks
- Hide Next button for Overview, Saved, Upvoted (#3182) Tyoda
- Click anywhere on byline to collapse a comment (#3198) philip-peterson
Or see the full list of changes at the links below:
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.
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.
Changes
This release includes various minor improvements and bug fixes.
Backend
- Fix Peertube federation by @flamingos-cant in #5652
- Show NSFW content by default if content_warning exists by @xaegit in #5655
- Register users in a transaction by @Nothing4You in #5608
- Fix email notifications for denied applications by @Nutomic in #5641
- Dont run scheduled tasks at startup by @Nutomic in #5732
- Only use HTTP/1 for federation by @flamingos-cant in #5744
- Update user count from local_user table instead of person table, and only count users with accepted application by @dullbananas in #5495
- Decrement fail_count instead of reset to 0 by @Nutomic in #5737
- Fix opentelemetry by @MrKaplan-lw in #5702
- Fix post listing in nsfw communities by @Nutomic in #5698
- Add missing post_read / hide / saved post_id indexes by @dessalines in #5689
- Improve media deletion logic by @Nothing4You in #5677
- Include published in VoteView order by for more consistent pagination by @MrKaplan-lw in #5676
- Mark posts in NSFW communities as NSFW by @Nothing4You in #5646
- Use version from git to indicate unreleased changes by @MrKaplan-lw in #5622
Frontend
- Add Rblind theme by @travis-jeans in #3159
- Remove browser cache by @SleeplessOne1917 in #3150
- Show registration denial reason on login by @dessalines in #3175
- Always escape HTML attributes in emoji autocomplete and custom emoji markdown renderer by @Nothing4You in #3169
- Fix missing user badge for deleted users by @MrKaplan-lw in #3162
- Add hungarian language by @dessalines in #3158
- Fixing cache-control header. by @dessalines in #3148
- Disable blur for NSFW images by default if content_warning exists by @xaegit in #3128
- Add
Vary: CookieHeader (fixes #3117) by @xaegit in #3119 - Use alert-info for donation dialog by @dessalines in #3115
- Optimize Dockerfile by @Nothing4You in #3090
- Add support for using Lemmy UI with an external Lemmy instance by @SolninjaA in #3041
- Only show View registration button to admins on profiles of local users by @Nothing4You in #3072
Upgrade instructions
There are no breaking changes with this release.
Follow the upgrade instructions for ansible or docker.
If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.
Thanks to everyone
We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.
Support development
We (@dessalines and @nutomic) have been working full-time on Lemmy for over five years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. A recurring donation is the best way to ensure that open-source software like Lemmy can stay independent and alive, and helps us grow our little developer co-op to support more full-time developers.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Here are some of the major changes made over the past month:
- @travis-jeans added themes from RBlind.com to lemmy-ui (#3159).
- @Nothing4You made improvements for media deletion and purging
- @momentary-lapse also improved image deletion, and cleaned up database forms.
- @dullbananas implemented federation for community reports (#5496)
- @xaegit made changes to show nsfw images by default if content_warning is enabled.
- @SleeplessOne1917 removed the browser cache for lemmy-ui which will reduce storage use.
- @dessalines worked on various changes for the 1.0 release.
- @nutomic made different changes to speedup compilation, and reported bugs with slow compilation in Rust (first, second).
Full list of changes by user
travis-jeans
MrKaplan-lw
- [0.19] Fix opentelemetry (#5702)
- [0.19] Include published in VoteView order by for more consistent pagination (#5676)
Nothing4You
- [0.19] Improve media deletion logic (#5677)
- [0.19] Remove unnecessary pictrs purge calls (#5566)
- Always escape HTML attributes in emoji autocomplete and custom emoji markdown renderer (#3168)
Dullbananas
matc-pub
momentary-lapse
- Deleting local image from db only if pict-rs client returned OK (fixes #5671) (#5680)
- Optional columns are handled correctly in insert and update forms (ref #5672) (#5675)
xaegit
- Show NSFW content by default if content_warning exists (release/0.19) (#5655)
- Disable blur for NSFW images by default if content_warning exists (#3120)
Add
Vary: CookieHeader (fixes #3117) (#3118)
SleeplessOne1917
Dessalines
- Add missing post_read / hide / saved post_id indexes. [release/v0.19] (#5689)
- Order vote view tie-breaker to use like published time. (#5683)
- Removing hide_modlog_mod_names setting. (#5681)
- Adding reason for mod_lock_post. (#5670)
- Change
local_imageto referenceperson_id, to track thumbnail creators. (#5664) - Only remove email on account deletion, if the user wasn't banned. (#5650)
- Adding ability to show downvotes for other users only. (#5644)
- Remove api v3 routes. #5508 (#5516)
- Add hungarian language (#3157)
- Fixing cache-control header. (#3147)
Nutomic
- Fix build_args for release builds (fixes #5718) (#5719)
- Remove unnecessary InCommunity impls (fixes #5700) (#5715)
- Cleanup root folder of repo (#5712)
- Get rid of code_migrations.rs (#5710)
- Use same federation keypair for all new users and communities (#5709)
- Write to mod_change_community_visibility table (fixes #5704) (#5706)
- Remove VoteView.item_id, SiteResponse.taglines (#5705)
- Fix post listing in nsfw communities (fixes #5685) (#5699)
- [0.19] Fix post listing in nsfw communities (#5698)
- [0.19] Upgrade dependencies (#5696)
- Deny
asconversions (#5688) - [0.19] Downscale proxied thumbnails (#5686)
- Remove some api_common dependencies (ref #5642) (#5678)
- Downscale proxied thumbnails (fixes #5673) (#5674)
- Add list of local user accounts for admins (fixes #4419) (#5668)
- lemmy_federate should not depend on lemmy_apub (ref #5614) (#5667)
- Add comments for site/instance (#5666)
- Avoid constant rebuilding due to git version (#5665)
- Split apub code into multiple crates (ref #5614) (#5663)
- Move db_views crates into subfolder (#5662)
- Fix email notifications for denied applications (fixes #5635) (#5641)
Or see the full list of changes at the links below:
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.
Starting now, we are changing the dev update to a monthly schedule. This is more predictable and gives us more time to write it.
Last month saw the release of Lemmy 0.19.11. It included a lot of changes backported from the development branch. This way improvements can already reach users while the main branch is still under heavy development in preparation for the 1.0 release.
There were numerous other contributions:
- Leoseg added a new keyword filter.
- SolninjaA added support for using separate subdomains for federation and web interface.
- travis-jean@rblind.com made various accessibility improvements to the UI.
- @xaegit@lemmynsfw.com added some NSFW-related fixes.
- Nutomic and Flamingo-cant@feddit.uk fixed different federation bugs and got Peertube federation working again.
- Nothing4You and Matc-pub also contributed different bug fixes, speedups, and picture fixes.
- MrKaplan@lemmy.world helped with some release-related tasks, and backported some existing mainline bug-fixes.
On the 1.0 front Dessalines was busy with different rewrites of the database to improve pagination, adding read, liked, and hidden content endpoints, speeding up compilation time, and also getting lemmy-ui updated.
For Lemmy to have a future, it's been a long-term goal to ensure that donations can cover the two full-time devs' living expenses, and possibly add more developers to the co-op. Nutomic worked on various tasks to aid this, including:
- A redesign of the donation page on join-lemmy.org.
- A new donation dialog shown directly in the Lemmy web interface.
- A call for donations which was widely shared and discussed.
Although the goal is not reached yet, it looks like a success as the amount of recurring donations was almost doubled within a few days. It also helped to clarify and resolve some of the reasons why people were unwilling to donate.
You can see the full list of changes for April at the links below:
An open source project the size of Lemmy needs constant work to manage the project, implement new features and fix bugs. Dessalines and I work full-time on these tasks and more. As there is no advertising or tracking, all of our work is funded through donations. Unfortunately the amount of donations has decreased to only 2000€ per month. This leaves only 1000€ per developer, which is not enough to pay my bills. With the current level of donations I will be forced to find another job, and drastically reduce my contributions to Lemmy. To avoid this outcome and keep Lemmy growing, I ask you to please make a recurring donation:
Liberapay | Ko-fi | Patreon | OpenCollective | Crypto
If you want more information before donating, consider the comparison with Reddit. It began as startup funded by rich investors. The site is managed by corporate executives who over time have become more and more disconnected from normal users. Their main goal is to make investors happy and to make a profit. This leads to user-hostile decisions like firing the employee responsible for AMAs, blocking third-party apps and more. As Reddit is a single website under a single authority, it means all users need to follow the same rules, including ridiculous ones like censoring the name "Luigi".
Lemmy represents a new type of social media which is the complete opposite of Reddit. It is split across many different websites, each with its own rules, and managed by normal people who actually care about the users. There is no company and no profit motive. Much of the work is carried out by volunteer admins, mods and posters, who contribute out of enthusiasm and not for money. For users this is great as there is no advertising nor tracking, and no chance of takeover by a billionaire. Additionally there are no builtin political or ideological restrictions. You can use the software for any purpose you like, add your own restrictions or scrutinize its inner workings. Lemmy truly belongs to everyone.
Dessalines and I work fulltime on Lemmy to keep up with all the feature requests, bug reports and development work. Even so there is barely enough time in the day, and no time for a second job. Previously I sometimes had to rely on my personal savings to keep developing Lemmy for you, but that can't go on forever. We partly rely on NLnet for funding, but they only pay for development of new features, and not for mandatory maintenance work. 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 Dessalines and I can stop worrying about money, and fully focus on improving the software for the benefit of all users and instances. Please use the link below to see current donation stats and make your contribution! We especially rely on recurring donations to secure the long-term development and make Lemmy the best it can be.
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.
Changes
This release fixes a security vulnerability which allows an attacker to delete images uploaded by other users. You can read the details in the security advisory. Thanks to @Nothing4You for discovering and fixing it.
A new donation dialog is shown to users once per year, to help fund Lemmy development.
There are also various backports from the development branch. Importantly the "Private instance" setting can now be used with federation enabled. This way only logged-in users can browse posts and comments, which stops AI crawlers from overloading the server. Also moderators can now view votes in the post/comment options.
Backend
- Remove unnecessary pictrs purge calls (#5566)
- Donation dialog (#5559)
- Send out email after registration denied, email confirmed (#5553)
- Change private instance setting to allow federation (#5530)
- Proxy post.url if it is an image (#5545)
- When creating community copy allowed languages from creator profile (#5490)
- Include image alt text in post search (#5449)
- Add config option to enable json logging (#5471, #5557)
- Embed images in RSS feeds (#5488)
- Fix federation of sticky posts (#5593)
- Deleted user shouldnt break federation outbox (#5443, #5573)
- Fix some image embeds by escaping alt text (#5506)
- Properly federate distinguish comment (#5586)
- Increase default registration rate limit to 10 per hour (#5600)
- Remove debug ratelimit being used in production (#5551)
Frontend
- Implement donation dialog (#3034)
- Hide images in private message reports (#3053)
- Dont render images in private message (#3043)
- Changed checkbox text "Only moderators can post to this community" from legend to label on the Create Community page (#3046)
- Trigger toast error on community request failure (#3045)
- Add local link next to fedilink on posts (#3033)
- Add banned badges to post and comment listings (#3030)
- Linkify user @ mentions (#3029)
- Adding ability for mods to view votes. (#3027)
- Upvote, downvote, view source, and favorite icons become larger when pressed to improve visibility on grayscale screens (#2960)
- Improve colour contrast of the mini-overlay in the top right corner of link or image post thumbnails (#2961)
- Improve screenreader accessibility by adding a main element to more pages (issue #2891) (#2944)
- Using input group for allowed and block instance buttons. (#2905)
- Moving totp and delete account settings into their own cards. (#2907)
- Hide NSFW field for create post form, for NSFW communities. (#2887)
- Modify the logic for appending the URL after uploading an image, placing the image URL after the cursor. (#2804)
Upgrade instructions
There are no breaking changes with this release.
Follow the upgrade instructions for ansible or docker.
If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.
Thanks to everyone
We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.
Support development
We are able to develop Lemmy as an open source platform free of tracking and ads thanks to the generosity of our users. Once a year we ask you to consider donating to support our work. Financial security allows us to continue maintaining and improving the platform. If you’d like to make a one-time or recurring donation simply use the links below. Thank you for using Lemmy.
Nutomic and Dessalines, Lemmy Developers
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
In the last weeks Lemmy has seen a lot of growth, with thousands of new users. To welcome them we are holding this AMA to answer questions from the community. You can ask about the beginnings of Lemmy, how we see the future of Lemmy, our long-term goals, what makes Lemmy different from Reddit, about internet and social media in general, as well as personal questions.
We'd also like to hear your overall feedback on Lemmy: What are its greatest strengths and weaknesses? How would you improve it? What's something you wish it had? What can our community do to ensure that we keep pulling users away from US tech companies, and into the fediverse?
Lemmy and Reddit may look similar at first glance, but there is a major difference. While Reddit is a corporation with thousands of employees and billionaire investors, Lemmy is nothing but an open source project run by volunteers. It was started in 2019 by @dessalines and @nutomic, turning into a fulltime job since 2020. For our income we are dependent on your donations, so please contribute if you can. We'd like to be able to add more full-time contributors to our co-op.
We will start answering questions from tomorrow (Wednesday). Besides @dessalines and @nutomic, other Lemmy contributors may also chime in to answer questions:
Here are our previous AMAs for those interested.
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.
Developer AMA
Next week we are going to hold an "Ask me Anything" where users can ask the Lemmy developers all sorts of questions. They will be answered by @dessalines and @nutomic who have been working on Lemmy since the beginning in 2019. Other maintainers may also chime in. You can ask about the beginnings of Lemmy, how we see the future of Lemmy, what makes Lemmy different from Reddit, internet and social media in general, as well as personal questions.
The AMA thread will be opened next Tuesday, March 25 in !announcements@lemmy.ml. We will start responding one day later. Until then you can let other people know about the AMA, think of good questions and read our previous AMAs:
Changes
- Fix Youtube thumbnails by increasing the metadata fetch limit to 1 MB #5266
- Also remove private messages when banning user with "remove content" (goodbye Nicole) #5414
- Ignore accept-language header if no site languages are specified, to avoid that users have English disabled and can't see most posts #5485
- Enable english for users on instances with all languages enabled, to resolve the above problem #5489 #5493
- Only list local banned users under
/admin#5364 - Add crawl-delay to robots.txt #3009
- Optimize migrations which were included in 0.19.6 #5301
Upgrade instructions
There are no breaking changes with this release.
Follow the upgrade instructions for ansible or docker.
If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.
Thanks to everyone
We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.
Support development
We (@dessalines and @nutomic) have been working full-time on Lemmy for over five years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. A recurring donation is the best way to ensure that open-source software like Lemmy can stay independent and alive, and helps us grow our little developer co-op to support more full-time developers.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.
DraconicNEO
flamingo-cant-draw
travis-jeans
- Add Verdana and Arimo fonts to Litely and Darkly variables file before Helvetica (Issue 1537)
- Improve colour contrast of the mini-overlay in the top right corner of link or image post thumbnails
- Upvote, downvote, view source, and favorite icons become larger when pressed to improve visibility on grayscale screens
- Improve screenreader accessibility by adding a main element to more pages (issue #2891)
dessalines
- Been working on getting lemmy-ui up to date for 1.0.0 .
- Extracting pagination cursor utils into a trait.
Nutomic
- Removing aggregates tables (fixes #4869)
- Enable english for all users to fix language issues
- Ignore accept-language header if not site languages are specified
- Add more options for image uploads
- Use connection url to configure email (fixes #5472)
- Use version from git to indicate unreleased changes
- Add config option to enable json logging
- Also search url field by default
- Fix federation of unban action (fixes #5454)
- Get rid of
Option<Vec<_>>in api structs (fixes #2820)
Support development
@dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.
travis-jeans
dessalines
- Fix matrix id import. #5063
- Add ability to view your own sent reports.
- Use rust:1.81 for CI.
- Adding ability to resend verification email.
- Show comments for hidden communities.
- When verifying email, add note about waiting for approval.
- Adding a can_mod field to CommentView, PostView, and CommunityView.
- Adding a variable time_range_limit, rather than having many post sorts like
TopSixHours - Adding blurhash to image_details.
- Adding listing_type filter for modlog.
- Fix corepack bug.
Nutomic
- Show posts/comments from followed communities despite instance block
- Simplify slur regex
- Deleted user shouldnt break federation outbox (fixes #5441)
- Reduce usage of async_trait
- Rate limit changes (fixes #5287)
- Allow sending report only to admins (fixes #2414)
- Also remove private messages when banning user with "remove content"
- Ignore follow requests from kbin, mbin for private communities
- Fix hash check for pictrs binary
- Enable emails in Chinese
- Cors policy should allow any origin by default (fixes #5405)
- Merge functions for formatting local urls
Support development
@dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Lemmy v0.19.9 Release
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.
Changes
This version fixes a potential security problem, by preventing Lemmy from accessing localhost URLs. There is also a fix for a crash during markdown parsing. Lemmy now uses mimalloc instead of the system allocator (usually glibc), which should improve performance and prevent unlimited memory growth over time.
Lemmy
- Error handling for thumbnail generation
- Use mimalloc as memory allocator
- Additional security checks for URLs (details) . Security Advisory
- Fix crash while rewriting markdown
- Fix peertube federation
- Append attachments to comments (@flamingo-cant-draw)
- Enable site languages for new user
Lemmy-UI
- Enforce required validation on signup answers (@anhcuky)
- copy thumbnail URL during crossposting (@anhcuky)
- Adding a bottom-margin to spoiler details tag.
- Fixing login password limits.
- Adding zh-CN as default for zh lang.
- Updated translations
Upgrade instructions
There are no breaking changes with this release.
Follow the upgrade instructions for ansible or docker.
If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.
Thanks to everyone
We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.
Support development
We (@dessalines and @nutomic) have been working full-time on Lemmy for over five years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. A recurring donation is the best way to ensure that open-source software like Lemmy can stay independent and alive, and helps us grow our little developer co-op to support more full-time developers.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.
andrewmoise
timothyhay256
dessalines
- Removing upx.
- Converting joins, filters, and selects to common functions for DB views.
- Using different corepack install method to fix corepack bug.
- Adding listing_type.ModeratorView for list communities.
- Only print migration output when running migrate command
- Search combined
- Adding post_id and type_ filters to combined reports.
- Adding zh-CN as default for zh lang.
Nutomic
- Fix crash while rewriting markdown (fixes #5380)
- Rename actor_id columns to ap_id
- Include saved date in api responses (fixes #5184)
- Fix peertube federation (ref #3837)
- Use mimalloc as memory allocator
- Federate "resolve report" action
- Deny invalid config fields
- Remove instrument macros
- Only list local banned users (fixes #2961)
- Add some url validation
- Allow setting multiple values for cors_origin (fixes #5198)
Support development
@dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.
SleeplessOne1917
flamingo-cant-draw
dullbananas
- Prevent incorrectly using delete instead of uplete
- Clean up LemmyError::status_code
- Optimize migrations
- Changes to get_random_community_id: add filters for nsfw and private, use algorthm that doesn't scan the entire table
- Correctly paginate PostView when read_only is enabled
- Add community reports (only the database part)
dessalines
- Adding a slim comment_view variant, without post or community.
- Adding combined inbox
- Adding Combined modlog
- Fixing person_content_combined migration uniques.
- Using input group for allowed and block instance buttons.
- Moving totp and delete account settings into their own cards.
- Adding fedilink translation for link titles.
- Fixing login password limits.
Nutomic
- Change println! to debug!
- Move middleware code into api_routes for faster compilation
- Send federated reports to all community mods
- Change federation community restricted check to apply only locally
- Skip api test for community follower count (fixes #5179)
- Implement request idempotency (fixes #4735)
- Return correct status code for rate limit error (ref #5332)
- Add support for donation dialog (fixes #4856)
- Pictrs delete token
- Image api rework
Support development
@dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.
There have been lots of changes since the last dev update. Contributors have been more active than usual during the Christmas holidays, and also the last dev update was already a whole month ago.
phiresky
leoseg
flamingo-cant-draw
Nothing4You
Integral-Tech
- refactor: avoid using format! when String creation is unnecessary
- refactor: replace static with const for global constants
anhcuky
- reset_password API to always return success
- Add Thumbnail URL When Crossposting
- Enforce required validation on signup Answers
dullbananas
- Fix incorrectly using delete instead of uplete in update_banned_when_expired
- Add custom migration runner, forbid some
diesel migrationcommands, fix old migrations - Fix incorrect comment in report_combined_view test
- Shorten "options" variable name
dessalines
- Combine comment and post reports
- Automatically marking posts created in an NSFW community as NSFW.
- Adding combined person content and person saved tables.
- Don't send out new user email verifies to admins, if already verified.
- Applying some clippy fixes.
- Hide NSFW field for create post form, for NSFW communities.
- Using video tag for embed video urls that are videos.
- Adding a bottom-margin to spoiler details tag.
Nutomic
- Change default image_mode to proxy, remove deprecated option
- Remove unused apub audience field (fixes #5278)
- Correct HTTP status for NotFound error (fixes #5309)
- Remove unused params on CreateSite/EditSite
- Error handling for thumbnail generation (ref #5196)
- Fix startup errors, add unit test for scheduled task errors (fixes #5209)
- Reorganize api endpoints (fixes #2022)
- Increase metadata fetch limit to 1 MB (fixes #5208)
- Allow admins to view deleted users (fixes #5249)
- Consider remote instance as dead if it returns any status 4xx or 5xx
- Only accept database connection by uri
Support development
@dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
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.
Changes
This release includes a few minor fixes and improvements. Merry Christmas Everyone!
Lemmy
- Fix post thumbnails by properly determining file type
- Provide health endpoint for pictrs at
/pictrs/healthz - Allow bypassing image proxy for specific domains (can be configured via config value
pictrs.proxy_bypass_domains, andi.imgur.netis bypassed by default) - API returns content of removed comments for admins
Lemmy-UI
- Updated translations
Upgrade instructions
There are no breaking changes with this release.
Follow the upgrade instructions for ansible or docker.
If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.
Thanks to everyone
We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.
Support development
We (@dessalines and @nutomic) have been working full-time on Lemmy for over five years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. A recurring donation is the best way to ensure that open-source software like Lemmy can stay independent and alive, and helps us grow our little developer co-op to support more full-time developers.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.
We should also have a bugfix release for a few issues with the last release, and have 0.19.8 sometime soon.
flamingo-cant-draw
avdb13
dessalines
Nutomic
- Add test cases for community with non-ascii name (ref #5239)
- Return content of removed comments for admins (ref #5232)
- Add note wrapper (fixes #2657) (#5221)
- Enable site languages for new user (fixes #5234)
- Instance blocks with mod log entry and expiration (fixes #2506)
- Allow bypassing image proxy for specific domains
- Add note wrapper (fixes #2657)
- Proxy pictrs healthz endpoint
- More test coverage for private community, fix some bugs
- Guess image mime type from file extension (fixes #5196)
- Dont sanitize RSS content manually (fixes #5171)
Support development
@dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
Here is our regular update that explains what we have been working on for the past two weeks. This should allow average users to keep up with development, without reading Github comments or knowing how to program.
We should also have a bugfix release for a few issues with the last release, and have 0.19.7 ready today or sometime soon.
karminski
dullbananas
- Combine action tables. This will greatly improve the performance of lemmy's post database queries by simplifying the number of joined tables.
SleeplessOne1917
Nutomic
- Always assign default language before checking if language is allowed
- Fetch community mods synchronously
- Move aggregates to replaceable_schema, fix error (fixes #5186)
- Implement private communities
- Run analyze after changing post.url type (ref #4983)
dessalines
- Add ability to mark multiple posts as read.
- Add user setting to auto-mark fetched posts as read.
- Change "mark post as read", "hide post" api calls to take single post instead of multiple
- Fixing cors origin wildcard.
- Upping default max_image_size from 256 to 512.
- Allow disabling private messages. Fixes #3640
- Fix postgres connection options causing slow query speed.
- Removing strip = true from release profile.
- Add filter to hide posts with comments.
- Fix fullsize post image
- Fix modlog mod_id filtering not working.
- Cleanup post action forms
Support development
@dessalines and @nutomic are working full-time on Lemmy to integrate community contributions, fix bugs, optimize performance and much more. This work is funded exclusively through donations.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. Recurring donations are ideal because they allow for long-term planning. But also one-time donations of any amount help us.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
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.
Changes
This is a small bugfix release with the following:
- Fixing cors origin wildcard. by @dessalines in #5194
- Fetch community mods synchronously by @Nutomic in #5169
- Move aggregates to replaceable_schema, fix error (fixes #5186) by @Nutomic in #5190
Full Changelog
Upgrade instructions
There are no breaking changes with this release.
Follow the upgrade instructions for ansible or docker.
If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.
Thanks to everyone
We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.
Support development
We (@dessalines and @nutomic) have been working full-time on Lemmy for over five years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. A recurring donation is the best way to ensure that open-source software like Lemmy can stay independent and alive, and helps us grow our little developer co-op to support more full-time developers.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency
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.
Changes
This release took a long time to complete due to a major performance problem which brought lemmy.ml to a crawl every time we tried to deploy the new version. It took a lot of testing (in production) to narrow it down to a single commit, and finally fix the problem.
The release itself contains numerous bug fixes and minor improvements:
Lemmy
Enhancements
- Parallel federation sending by @phiresky in #4623
- Reduce CPU usage for generating link previews by @phiresky in #4957
- Switch from OpenSSL to rustls by @kwaa in #4901
- Increase max post url length to 2000 characters by @dessalines in #4960
- Increase max length of user bio to 1000 charactes by @dessalines #5014
- Reduce maximum comment depth to 50 by @nutomic #5009
- Resize post thumbnails by @nutomic #5107/files
- Add category to RSS feeds by @nutomic #5030
- Allow users to view their own removed/deleted communities by @dessalines in #4912
- Add backend check to enforce hierarchy of admins and mods by @dessalines in #4860
- Do pictrs transformations for proxied image urls by @dessalines in #4895
- Enable more build optimizations by @nutomic in #5168
- Calculate "controversial" ranking with exponent instead of multiply (just like Reddit) by @dullbananas in #4872
- Automatically remove tracking parameters from URLs by @dessalines #5018
- Relax timeout for sending activities by @Nothing4You in #4864
Bug Fixes
- Fix admin notification for new user registration (fixes #4916) by @Nutomic in #4925
- Allow community settings changes by remote mods @flamingo-cant-draw in #4937
- Fix problem with connecting to Postgres with TLS @FenrirUnbound in #4910
- Fix bug when commenting in local-only community by @dessalines in #4854 and @abdel-m in #4920
- Fix scheduled task to delete users with denied applications by @Nothing4You in #4907
API
- Return image dimensions and content type in API responses by @dessalines in #4704
- Adding a show_read override to GetPosts. by @dessalines in #4846
- Add show_nsfw override filter to GetPosts. by @dessalines in #4889
- Require authentication for site metadata fetch endpoint by @dessalines in #4968
- Add the ability to fetch a registration application by person_id by @dessalines in #4913
- Order community posts by published data, not id by @dullbananas in #4859
- Throw error when non-mod posts to mod-only comm or when URL is blocked by @flamingo-cant-draw in #4966
- Add option to search exclusively by post title by Carlos-Cabello #5015
Database
- Approve applications in transaction by @Nothing4You in #4970
- Use trigger to generate apub URL in insert instead of update, and fix query planner options not being set when TLS is disabled by @dullbananas in #4797
Lemmy-UI
- Fix full-size post images. by @dessalines in #2797
- Fix modlog ID filtering. by @dessalines in #2795
- Allow Arabic and Cyrillic characters when signing up or creating community by @SleeplessOne1917
- UX - Swap "Select Language" and "Cancel/Preview/Reply" button locations around in commentsReverse order of buttons in Reply TextArea
- Fix jump to content by @SleeplessOne1917
- Fixing peertube and ordinary video embeds. by @dessalines in #2676
- Changing sameSite cookie from Strict to Lax. by @dessalines in #2677
- Remove show new post notifs setting. by @dessalines in #2675
- Fix memory leak around emojis on server render by @makotech222 in #2674
- Enable spellcheck for markdown text area by @SleeplessOne1917 in #2669
- Pre release dep bump by @SleeplessOne1917 in #2661
- Add ability to fill magnet link title on post creation. by @dessalines in #2654
- Registration application view by @SleeplessOne1917 in #2651
- Add torrent help by @dessalines in #2650
- More moderation history by @dessalines in #2649
- Fix tribute related bug by @SleeplessOne1917 in #2647
- Remove min and max length from password input when using login form by @SleeplessOne1917 in #2643
- Remove trending communities card from home. by @dessalines in #2639
- Set data-bs-theme based on the presence of "dark" in theme name by @SleeplessOne1917 in #2638
- Fixing modlog filtering to allow admins and mods to filter by mod. by @dessalines in #2629
- Fix issue from logo bugfix by @SleeplessOne1917 in #2620
- Make more post params cross-postable by @SleeplessOne1917 in #2621
- Fix wonky comment action icon button alignment by @SleeplessOne1917 in #2622
- Prevent broken logo from crashing site by @SleeplessOne1917 in #2619
- Add rate limit info message. by @dessalines in #2563
- Fix getQueryString by @matc-pub in #2558
New Contributors
- @abdel-m made their first contribution in #4920
- @johnspurlock made their first contribution in #4917
- @FenrirUnbound made their first contribution in #4910
- @kwaa made their first contribution in #4901
- @Daniel15 made their first contribution in #4892
Full Changelog
Upgrade instructions
This upgrade could take as long as ~30 minutes for larger servers, due to needing to recalculate controversy ranks for all historical posts.
There are no breaking changes with this release.
Follow the upgrade instructions for ansible or docker.
If you need help with the upgrade, you can ask in our support forum or on the Matrix Chat.
Thanks to everyone
We'd like to thank our many contributors and users of Lemmy for coding, translating, testing, and helping find and fix bugs. We're glad many people find it useful and enjoyable enough to contribute.
Special shout out to @SleeplessOne1917, @phiresky, @dullbananas, @mv-gh, @Nothing4u, @asonix, @sunaurus, @flamingo-cant-draw, and @Freakazoid182 for their many code contributions and helpful insights.
Support development
We (@dessalines and @nutomic) have been working full-time on Lemmy for over five years. This is largely thanks to support from NLnet foundation, as well as donations from individual users.
If you like using Lemmy, and want to make sure that we will always be available to work full time building it, consider donating to support its development. A recurring donation is the best way to ensure that open-source software like Lemmy can stay independent and alive, and helps us grow our little developer co-op to support more full-time developers.
- Liberapay (preferred option)
- Open Collective
- Patreon
- Cryptocurrency