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
full
for 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_views
fixes/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_*_actions
fields from api (ref #5532) (#5808) Nutomic - Set
Accept: Vary
header 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.
Storing upvote / downvote totals you gave to each user, and a setting to display that history next to their name.
Where is the instance that autobans any account that users have downvoted X times? I want to join it.
This has nothing to do with that. But we have expanded the site settings to reject federated votes (or downvotes only)
twas a joke, but that’s a nice feature!
Ah my bad.
Ya we have to deal with so many vote bots, dead account voters, and vote spying tools now from some instances, that it’s genuinely going to be one of the biggest challenges on the fediverse in the future.
If some special interests set up shop on the fediverse, and upvote their content with a lot of fake accounts, or downvote others views they don’t want popularized, without a way to combat it while still preserving overall vote privacy, we’ll be in bad shape.
Could you elaborate what multi communities is, maybe in the post?
I support this request, even issue on GitHub does not contain any (even short) description
I’m hoping it’ll be like multireddits (groups of subreddits that could be shared) because I’ve been wishing for that for a while
Here is the issue and the pull request.
Essentially multi-communities are a federated item very similar to communities, that federated users can subscribe to. They have an id, a creator, name, description, and a list of communities. If you subscribe to it, your instance will pick up any changes to it. You can then get a list of posts filtered by that multi-community.
Here are the new endpoints:
- https://join-lemmy.org/api/main#tag/Post/operation/GetPosts
- Not new, but you can now filter by a multi-community
- https://join-lemmy.org/api/main#operation/FollowMultiCommunity
- https://join-lemmy.org/api/main#operation/CreateMultiCommunity
- https://join-lemmy.org/api/main#operation/GetMultiCommunity
- https://join-lemmy.org/api/main#operation/CreateMultiCommunityEntry
- https://join-lemmy.org/api/main#operation/ListMultiCommunities
Hail the victorious devs!
I’ve been keeping an eye on the multicommunity issue and that getting merged was a nice notification.
Thinking of further use cases, maybe a multicommunity could be used as an “Instance curated” option in addition to All/Local/etc. Because frontpages of topic-specific and regional instances seem to all be dominated by us politics.
What exactly is multi-community? It’s not defined above and the PR has no description.
A multi-community groups outputs of multiple communities into one entity that you can subscribe to and browse.
I elaborated on this here
This is already implemented, admins can specify a “suggested” multi-community which will be shown next to Subscribed/Local/All just like you say.
Nice.
Added an API action to get liked / disliked content.
Oooh! Does this mean clients/apps can then show me all the stuff that I’ve upvoted?
Yep, or the things you’ve downvoted.
Amazing, looking forward to this! :D
Added an RSS feed for modlogs.
You’re so thoughtful omg
That’s what I call a big update!
Will this break clients like voyager?
The 1.0 release is many months away yet, and we’ll give ample time to app devs to update.
exciting stuff, can’t wait to get v1.0
Innit!
Lots of really useful sounding stuff in there. Good work :)