GNU social V3https://gnusocial.rocks/v3/index.html Development blog where we announce our progress.en Fri, 25 Feb 2022 21:12:35 +0000 Fri, 25 Feb 2022 21:12:35 +0000 Milestone: Web Monetization Web Monetization is being proposed as a W3C standard at the Web Platform Incubator Community Group.

GNU social now supports that initiative with the Web Monetization plugin.

With this, we also introduce an ActivityPub (FEP-8c3f) GS extension gs:webmonetizationWallet. This enables actors to support other actors with Web Monetization in the fediverse.

It looks like this:

Own profile

In the profile of other actors

]]>
https://gnusocial.rocks/v3/milestone-web-monetization.html https://gnusocial.rocks/v3/./milestone-web-monetization.html GNU social development team Tue, 18 Jan 2022 14:28:36 +0000
Milestone: Automatic Accesibility (A11Y) testing We use pa11y-ci to run our accesibility testing on all GNU social pages. The process of setting this up was a bit of a ride, but the results are quite useful:

Accesibility report generated by Pa11y

We also take screenshots of all pages and compare them with the previous, allowing us to spot (possibly) unintended changes in the UI.

The way we do this is by using a docker image derived from node, with pa11y-ci installed, which doesn't have an entrypoint. This then allows us to spin up a webserver, PHP and Redis containers, mimiking a staging environment. pa11y-ci uses a JSON config file to tell it what to do, and handles visiting all pages with the given resolution, logging in and registering any accesibility violations found.

Accesibility violations found by Pa11y

Note that most of these errors are actually the same.

The saved screenshots are then used to detect changes, with ImageMagik's compare, to generate a report on visual changes.

Screenshot comparisons

We were already striving for making GNU social accesible, which is clear from the really low number of violations found, but there's always room for improvement :)

]]>
https://gnusocial.rocks/v3/milestone-automatic-accesibility-a11y-testing.html https://gnusocial.rocks/v3/./milestone-automatic-accesibility-a11y-testing.html GNU social development team Tue, 18 Jan 2022 13:56:33 +0000
Milestone: Collections We have generalized collections around our search engine. For that introducing the Collection component.

This structure has the following implication:

Collection -> OrderedCollection
|-> Notes (known as Feed)
|-> Actors (known as Circle)
|-> Other Object (known as Collection of ...)
  |-> Attachments: AttachmentCollection
  |-> Tags: TagCollection

And it allow us to centralise the scope system in the core, ensuring that no actor will have access to notes or other objects that shouldn't be able to see.

Finally, with this, a plugin such as Note Type Feed Filter can be useful in every note collection (feed).

It also allows plugins such as ActivityPub to translate every collection automatically.

We also introduced the Circle component, which has a UI similar to the Attachments Collections, and enables circle mentions with @#circle_name.

Notes Filter and Sorting Options

Actors Filter and Sorting Options

The Search Component

Results

Note Options

Actor Options

ActivityPub Examples

]]>
https://gnusocial.rocks/v3/milestone-collections.html https://gnusocial.rocks/v3/./milestone-collections.html GNU social development team Tue, 18 Jan 2022 13:56:12 +0000
Updates: Local Groups

We haven't implemented federation of Groups yet, but group tags and discussion on how unbounded groups can be federated via ActivityPub has already started.

Concerning federation of traditional groups, we will port our logic from v2 and translate following the same rules as AndStatus because they work, as yvolk beautifully stated :)

Finally, also note that the group actors now have "self-tags", as the other actors, which was a milestone.

]]>
https://gnusocial.rocks/v3/updates-local-groups.html https://gnusocial.rocks/v3/./updates-local-groups.html GNU social development team Tue, 18 Jan 2022 13:13:38 +0000
Milestone: Pinned Notes

With this feature, an actor has more ways to express itself to the community as a whole. This activity is federated using Mastodon's featured collection extension.

Source Default view of the actor profile, showing the 'Pin this note' action, and its respective representation

]]>
https://gnusocial.rocks/v3/milestone-pinned-notes.html https://gnusocial.rocks/v3/./milestone-pinned-notes.html GNU social development team Tue, 18 Jan 2022 12:36:14 +0000
Milestone: Notes with LaTeX LaTeX content types is now supported.

latex

]]>
https://gnusocial.rocks/v3/milestone-notes-with-latex.html https://gnusocial.rocks/v3/./milestone-notes-with-latex.html GNU social development team Tue, 18 Jan 2022 11:41:47 +0000
Milestone: Notes with Markdown Markdown content types is now supported.

Markdown

]]>
https://gnusocial.rocks/v3/milestone-notes-with-markdown.html https://gnusocial.rocks/v3/./milestone-notes-with-markdown.html GNU social development team Tue, 18 Jan 2022 11:40:49 +0000
Milestone: Mute notifications from a conversation If a conversation in which you have interacted becomes very active and you wish to stop receiving notifications derived from that, it is now possible:

]]>
https://gnusocial.rocks/v3/milestone-mute-notifications-from-a-conversation.html https://gnusocial.rocks/v3/./milestone-mute-notifications-from-a-conversation.html GNU social development team Tue, 18 Jan 2022 01:39:10 +0000
Milestone: Albums This is a natural follow up to the Collections Milestone.

An album is a specialisation of an attachment collection, which is itself a specialisation of a collection.

Albums were implemented with the Attachment Collections plugin.

Here's how it looks

Adding an attachment (this is in the right sidebar of attachment pages)

List of collections

Viewing a collection of attachments

]]>
https://gnusocial.rocks/v3/milestone-albums.html https://gnusocial.rocks/v3/./milestone-albums.html GNU social development team Tue, 18 Jan 2022 01:23:27 +0000
Milestone: ActivityPub ActivityPub Plugin source.

This milestone could be just this, what's different from any other ActivityPub plugin? How is it better than v2's?

It's better in how it's organised and extensible, check the EVENTS.md for examples.

Video of GNU social v3 exchanging notes with GNU social v2.

]]>
https://gnusocial.rocks/v3/milestone-activitypub.html https://gnusocial.rocks/v3/./milestone-activitypub.html GNU social development team Fri, 10 Dec 2021 16:34:39 +0000