Skip to content

Conversation

@Nutomic
Copy link
Member

@Nutomic Nutomic commented Jan 23, 2026

  • Rename description fields to sidebar again as it is clearer (for community and site)
  • Rename multi-community description to summary because it has 150 char limit like community.summary
  • Rename tag.description to summary and add 150 char length limit, because it doesnt need unlimited text
  • Tested manually that site and community fetched from 0.19 have sidebar set correctly
  • We may want to add multi_community.sidebar with unlimited markdown text

Copy link
Member

@dessalines dessalines left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have no problem with getting rid of description, I agree its clearer at least. But I still really dislike how strange the apub mappings are.

If lemmy summary is never actually going to mean summary in apub to keep old cruft carrying forward, then it should probably be renamed too.

Comment on lines 92 to +93
summary: self.title.clone(),
content: self.description.clone(),
content: self.summary.clone(),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks wrong, and doesn't match the community apub.

The multi community title (IE display name) should be the name field like it is in community.

The multi community content should be the summary.

There should be no summary, since that's used for the sidebar / markdown which multi-community doesn't have yet.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I really dislike that summary doesn't map to summary btw, that's incredibly confusing and makes me think we should use a different name.

It should be

  • name -> display_name / title.
  • content -> markdown / sidebar
  • summary -> summary / short description.

This will be a breaking changes release, why not just go forward with this and keep it simplified.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that it would make more sense. However this would completely break federation with all Lemmy 0.19 instances, and would also break federation with other platforms like Piefed and NodeBB which use the same format. So its not worthwhile in practice.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These aren't critical, and its better to fix these sooner than later. Eventually everyone will be on lemmy 1.0 and this inconsistency will go away.

At least fix the multi community display name.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good.

summary: self.sidebar.as_ref().map(|d| markdown_to_html(d)),
source: self.sidebar.clone().map(Source::new),
content: self.summary.clone(),
media_type: self.sidebar.as_ref().map(|_| MediaTypeHtml::Html),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I get that we're stuck with the summary <-> sidebar mapping for historical and compatibility reasons, but the source property is pretty explicitly about mapping content to different markups. Having the source map to summery and sending a content is going to be pretty confusing for people implementing the spec as stated. I think we'd be better off just defining a custom property for federating the new summary, or use the preview property like this:

"preview": {
  "type": "Note",
  "content": "some summary"
}

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The current behaviour matches 0.19, and no one has complained about that. If you want to make any changes there, please open a new issue.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Piefed and NodeBB also federate in the same way:
curl -H 'Accept: application/activity+json' https://piefed.social/c/nonpolitical_comics | jq

"summary": "<p>A community for comic lovers who just want to get away from politics and gloom and doom. </p>\n<ul>\n<li>Rule 1 - Be civil.  </li>\n<li>Rule2 - Don’t be uncivil.  </li>\n</ul>\n<p>Posting guidelines:  </p>\n<ul>\n<li>No political comics. This generally includes anything referencing whatever bullshit Trump is up to, but also includes the megacorps. Essentially if the comic is about how the world today sucks, it doesn’t belong here. </li>\n<li>Where possible, tag the title with [comic name]. This refers to the name of the artist or overall comic, not the title of the specific strip. </li>\n<li>Tag NSFW / NSFL / AI content accordingly. </li>\n</ul>\n<p><img alt=\"\" loading=\"lazy\" src=\"https://media.piefed.social/posts/TC/pB/TCpBjER6CjTNaaX.jpg\"/> </p>\n",
"source": {
    "content": "A community for comic lovers who just want to get away from politics and gloom and doom. \r\n\r\n* Rule 1 - Be civil.  \r\n* Rule 2 - Don't be uncivil.  \r\n\r\nPosting guidelines:  \r\n\r\n* No political comics. This generally includes anything referencing whatever bullshit Trump is up to, but also includes the megacorps. Essentially if the comic is about how the world today sucks, it doesn't belong here. \r\n* Where possible, tag the title with [comic name]. This refers to the name of the artist or overall comic, not the title of the specific strip. \r\n* Tag NSFW / NSFL / AI content accordingly. \r\n\r\n![](https://media.piefed.social/posts/TC/pB/TCpBjER6CjTNaaX.jpg)  ",
    "mediaType": "text/markdown"
},

curl -H 'Accept: application/activity+json' https://community.nodebb.org/category/3/nodebb-development | jq

"summary": "<p>Stay tuned here to hear more about new releases and features of NodeBB!</p>\n",

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Piefed and NodeBB also federate in the same way:

Nodebb doesn't set a source and neither sets a content:

curl -sH 'Accept: application/activity+json' https://piefed.social/c/nonpolitical_comics | jq '.source, .content'
{
  "content": "A community for comic lovers who just want to get away from politics and gloom and doom. \r\n\r\n* Rule 1 - Be civil.  \r\n* Rule 2 - Don't be uncivil.  \r\n\r\nPosting guidelines:  \r\n\r\n* No political comics. This generally includes anything referencing whatever bullshit Trump is up to, but also includes the megacorps. Essentially if the comic is about how the world today sucks, it doesn't belong here. \r\n* Where possible, tag the title with [comic name]. This refers to the name of the artist or overall comic, not the title of the specific strip. \r\n* Tag NSFW / NSFL / AI content accordingly. \r\n\r\n![](https://media.piefed.social/posts/TC/pB/TCpBjER6CjTNaaX.jpg)  ",
  "mediaType": "text/markdown"
}
null

curl -sH 'Accept: application/activity+json'  https://community.nodebb.org/category/3/nodebb-development | jq '.source, .content'
null
null

The current behaviour matches 0.19, and no one has complained about that.

We don't set a content for communities in 0.19, so being out of spec doesn't matter. I just think it'd be better if we used something else for federating the new short description data, I'll open an issue.

Copy link
Member

@dessalines dessalines Jan 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lets please just do the breaking change and have :

name -> display_name / title.
content + source -> markdown / sidebar
summary -> summary / short description.

All this confusion will go away, and eventually other projects will catch up.

@Nutomic
Copy link
Member Author

Nutomic commented Jan 27, 2026

CI keeps failing with different random errors which seem unrelated:

Edit: Cant reproduce these locally either.

@dessalines
Copy link
Member

dessalines commented Jan 27, 2026

Denied username appears to be because of restarts. Fixed here: #6303

The delete post error has been a problem for months and I've failed to figure out why its happening intermittently. The only way I've "solved" it is to run the tests like 4 times.

Copy link
Member

@dessalines dessalines left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I still don't like how we're carrying this naming cruft forward for eternity instead of making the breaking change, but we can continue that convo in the other 2 linked issues.

@dessalines dessalines merged commit 2d049a3 into main Jan 28, 2026
2 checks passed
@dessalines dessalines deleted the rename-sidebar-again branch January 28, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants