596 lines
22 KiB
XML
596 lines
22 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
|
|
<channel><title>GNU social V3</title><link>https://gnusocial.rocks/v3/index.html</link>
|
|
<description>Development blog where we announce our progress.</description><language>en</language>
|
|
<lastBuildDate>Sun, 05 Dec 2021 22:39:56 +0000</lastBuildDate>
|
|
<pubDate>Sun, 05 Dec 2021 22:39:56 +0000</pubDate>
|
|
<atom:link href="https://gnusocial.rocks/v3/feed.rss" rel="self" type="application/rss+xml" />
|
|
<item><title>
|
|
Milestone: ActivityPub
|
|
</title><description><![CDATA[
|
|
|
|
<p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ActivityPub">ActivityPub Plugin source</a>.</p>
|
|
|
|
<p>This milestone could be just this, what's different from any other ActivityPub
|
|
plugin? How is it better than v2's?</p>
|
|
|
|
<p>It's better in how it's organised and extensible. See the examples below to have
|
|
an idea.</p>
|
|
|
|
<p>To extend an Activity properties you do:</p>
|
|
|
|
<pre><code>public function onActivityPubValidateActivityStreamsTwoData(string $type_name, array &$validators): bool {
|
|
if ($type_name === '{Type}') {
|
|
$validators['attribute'] = myValidator::class;
|
|
}
|
|
return Event::next;
|
|
}
|
|
</code></pre>
|
|
|
|
<p>The Validator should be of the form:</p>
|
|
|
|
<pre><code>class myValidator extends Plugin\ActivityPub\Util\ModelValidator
|
|
{
|
|
/**
|
|
* Validate Attribute's value
|
|
*
|
|
* @param mixed $value from JSON's attribute
|
|
* @param mixed $container A {Type}
|
|
* @return bool
|
|
* @throws Exception
|
|
*/
|
|
public function validate($value, $container): bool
|
|
{
|
|
// Validate that container is a {Type}
|
|
Util::subclassOf($container, Type\Extended\Object\{Type}::class, true);
|
|
|
|
return {Validation Result};
|
|
</code></pre>
|
|
|
|
<p>To act on received activities do:</p>
|
|
|
|
<pre><code>public function onActivityPubNew{Type}(&$obj): bool {
|
|
</code></pre>
|
|
|
|
<p>To add information to Activities being federated by ActivityPub do:</p>
|
|
|
|
<pre><code>public function ActivityPubAddActivityStreamsTwoData(string $type_name, &$type): bool {
|
|
</code></pre>
|
|
|
|
<p>To implement an ActivityStreams 2.0 representation do:</p>
|
|
|
|
<pre><code>public function onActivityPubActivityStreamsTwoResponse(string $route, arrray $vars, ?TypeResponse &$response = null): bool {
|
|
if ($route === '{Object route}') {
|
|
$response = ModelResponse::handle($vars[{Object}]);
|
|
return Event::stop;
|
|
}
|
|
return Event::next;
|
|
}
|
|
</code></pre>
|
|
|
|
|
|
<!-- text end -->
|
|
]]></description><link>https://gnusocial.rocks/v3/milestone-activitypub.html</link>
|
|
<guid>https://gnusocial.rocks/v3/./milestone-activitypub.html</guid>
|
|
<dc:creator>GNU social development team</dc:creator>
|
|
<pubDate>Sun, 05 Dec 2021 22:29:51 +0000</pubDate></item>
|
|
<item><title>
|
|
Milestone: Tags
|
|
</title><description><![CDATA[
|
|
|
|
<blockquote>
|
|
<p>Due to the high density of technical aspects, we decided to keep this blog
|
|
post more on the light side and focus on explaining the new functionalities.
|
|
Check our Wiki Milestone entry for all the juicy details.</p>
|
|
</blockquote>
|
|
|
|
<p><strong><a href="https://agile.gnusocial.rocks/doku.php?id=milestones:tags">>WIKI Milestone entry</a></strong></p>
|
|
|
|
<p>GNU social v2 has tags and lists. It allows you to:
|
|
- search for an <code>#hashtag</code> and see a stream of notes tagged with it;
|
|
- make lists of actors and mention them with <code>@#list_name</code>
|
|
- self tag and enter a list of people in your instance with the same self tag</p>
|
|
|
|
<p>It is limited with regards to federation of self tags and the <code>@#list_name</code> can't
|
|
target remote actors even when they are inside your list.</p>
|
|
|
|
<h2>What's new with v3?</h2>
|
|
|
|
<h3>Federated self tags</h3>
|
|
|
|
<p>We now federate self tags and lists, so that constraint from v2 was moved out of
|
|
the way.</p>
|
|
|
|
<p>In the future, the use of these tags can allow you to find people,
|
|
groups and even individual notes that have a tag you're interested in. We only
|
|
mean filtering, not magic recommendation algorithms.</p>
|
|
|
|
<h3>Tag Wrangling</h3>
|
|
|
|
<p>Proposed by <a href="https://archiveofourown.org/users/licho">@licho</a> in Tue, 02 Jun 2019 17:52:07 GMT:</p>
|
|
|
|
<blockquote>
|
|
<p>I like the tag wrangling feature of AO3, which I think would help for cases of synonymous tags like #introduction and #introductions</p>
|
|
|
|
<p>https://archiveofourown.org/wrangling_guidelines/11</p>
|
|
|
|
<p>Is it feasible for !gnusocial ? Or would it cause problems?</p>
|
|
</blockquote>
|
|
|
|
<p>The answer is <strong>yes</strong> and will be released with v3. With the addition of
|
|
<a href="(https://gnusocial.rocks/v3/milestone-notes-and-actors-with-languages.html">Languages in notes and actors</a>) there was little excuse not to be feasible.</p>
|
|
|
|
<p>Whenever you post a note containing tags, you can choose whether to
|
|
make those tags canonical. This means that, for instance, the tags
|
|
<code>#run</code> and <code>#running</code> become the 'same', meaning that when you click on
|
|
the link for the <code>#run</code> tag, you'll also see notes tagged #running. You
|
|
can opt out of the behaviour by unchecking the "Make note tags
|
|
canonical". An identical process occurs for people tags.</p>
|
|
|
|
<p>Internally, this transformation is accomplished by splitting the tag
|
|
into words and <a href="https://en.wikipedia.org/wiki/Stemming">stemming</a> each word.</p>
|
|
|
|
<h3>Related Tags</h3>
|
|
|
|
<p>In a tag feed, you can see tags that are often used together with the
|
|
one you're seeing. This can be useful, for instance, for finding other
|
|
content you'd be interested in.</p>
|
|
|
|
<h1>Improved Tag feeds</h1>
|
|
|
|
<p>When you click on a tag, be it a note tag or a person tag, you'll see
|
|
a feed of notes/people with that tag. You can also edit the feeds you
|
|
see in your left panel, so you can follow a given tag.</p>
|
|
|
|
<h1>Mute Self Tags and Note Tags</h1>
|
|
|
|
<p>If you don't like seeing a given tag in your feeds, for whatever
|
|
reason, you can choose to mute it. You can mute a note tag or a person
|
|
tag, in which case you wouldn't see any notes from people with that
|
|
tag.</p>
|
|
|
|
|
|
<!-- text end -->
|
|
]]></description><link>https://gnusocial.rocks/v3/milestone-tags.html</link>
|
|
<guid>https://gnusocial.rocks/v3/./milestone-tags.html</guid>
|
|
<dc:creator>GNU social development team</dc:creator>
|
|
<pubDate>Sun, 05 Dec 2021 22:21:44 +0000</pubDate></item>
|
|
<item><title>
|
|
Milestone: Notes and Actors with languages
|
|
</title><description><![CDATA[
|
|
|
|
<p>Well, it's that, our notes now have a language attribute.</p>
|
|
|
|
<p>... All right, all right, it's not <em>just</em> it.</p>
|
|
|
|
<h2>Here's what comes with it:</h2>
|
|
|
|
<ul>
|
|
<li><a href="">Filter the streams with only the languages you know</a></li>
|
|
<li><a href="">Federate the language for a more inclusive free network</a></li>
|
|
<li><a href="">Make Tag Wrangling possible an transversal to languages</a></li>
|
|
</ul>
|
|
|
|
<h2>Here's how it looks:</h2>
|
|
|
|
<h2>What does this mean?</h2>
|
|
|
|
<p>We can now show you the notes you can read, but for groups, this mean that you
|
|
can access umbrella groups and filter the feeds to see what's in your language
|
|
and even region.</p>
|
|
|
|
<p>For too long the fediverse struggled with languages, this step makes it easier
|
|
for actual internationalization of the free network.</p>
|
|
|
|
|
|
|
|
|
|
<!-- text end -->
|
|
]]></description><link>https://gnusocial.rocks/v3/milestone-notes-and-actors-with-languages.html</link>
|
|
<guid>https://gnusocial.rocks/v3/./milestone-notes-and-actors-with-languages.html</guid>
|
|
<dc:creator>GNU social development team</dc:creator>
|
|
<pubDate>Sun, 05 Dec 2021 22:19:35 +0000</pubDate></item>
|
|
<item><title>
|
|
Milestone: ActivityStreams 2.0 and WebFinger
|
|
</title><description><![CDATA[
|
|
|
|
<p>The primary use of GNU social is to access the <a href="https://blog.diogo.site/what-is-the-fediverse">free network</a>, be it ActivityWeb (ActivityPub) or Fediverse (OStatus).</p>
|
|
|
|
<p>Contrary to the original plan, we have merged <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/nightly/modules/TheFreeNetwork">The Free Network Module</a>, <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/nightly/plugins/WebFinger">WebFinger</a> and <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/nightly/plugins/LRDD">LRDD</a> into a single component named <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/FreeNetwork">FreeNetwork</a>. Likewise, ActivityPub and ActivityStreams 2.0 was kept the same plugin instead of separated.</p>
|
|
|
|
<h2>Understanding the organisation chosen</h2>
|
|
|
|
<p>The FreeNetwork component adds WebFinger (RFC7033) lookup and implements Link-based Resource Descriptor Discovery (LRDD) based on RFC6415, Web Host Metadata. It takes and produces both Extensible Resource Descriptor (XRD) and JSON (JavaSript Object Notation). Furthermore, and different from v2, every federation protocol will use the same distribution queue maintained by this component instead of holding its own.</p>
|
|
|
|
<p>We originally intended to have data modelling plugins that would extend the GS's "language". We then understood that it added more complexity than we wanted without any considerable advantage because we cannot dissociate data reception handling of the protocol itself.</p>
|
|
|
|
<h2>Situation Report</h2>
|
|
|
|
<p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ActivityPub">ActivityPub</a> already translates between activity and entity and allows plugins to extend it (thus serving a similar purpose to data modelling and representation plugins).</p>
|
|
|
|
<p>GNU social v3 now supports <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/src/Util/Formatting.php#L292">mentions</a>, which is a process that starts in the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/Posting/Posting.php#L197">Posting component</a>. The processing of local mentions naturally finds its entire handling here.</p>
|
|
|
|
<p>For remote ActivityPub mentions, <a href="(https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ActivityPub/Entity/ActivitypubActor.php#L179">ActivityPub handles it aided by the FreeNetwork component</a>).</p>
|
|
|
|
<h2>Next steps</h2>
|
|
|
|
<p>We still have to port OStatus (and ActivityStreams 1.0) and implement the distribution by FreeNetwork, although the base work is done. Regarding ActivityPub, although some of it already works, expanding the existing plugins to supplement ActivityPub, and full validation isn't ready yet. We will most likely finish the implementation of the whole federation stack in the next week.</p>
|
|
|
|
|
|
|
|
|
|
|
|
<!-- text end -->
|
|
]]></description><link>https://gnusocial.rocks/v3/milestone-activitystreams-20-and-webfinger.html</link>
|
|
<guid>https://gnusocial.rocks/v3/./milestone-activitystreams-20-and-webfinger.html</guid>
|
|
<dc:creator>GNU social development team</dc:creator>
|
|
<pubDate>Wed, 03 Nov 2021 01:48:35 +0000</pubDate></item>
|
|
<item><title>
|
|
Updates: Interface and accessibility
|
|
</title><description><![CDATA[
|
|
|
|
<p>Hello everyone! Throughout the past year there has been a lot of work in creating a polished, modern looking UI.
|
|
This update has been in the works for a long time... Many considerations had to be done, and given the current state of
|
|
modern browsers (and their over-reliance in JS) many more surfaced, leading to further testing and fixes. </p>
|
|
|
|
<p>We hope you like it!</p>
|
|
|
|
<h3>The prime directive</h3>
|
|
|
|
<blockquote>
|
|
<p>Modern looking, consistent and accessible UI across all browsers.
|
|
Non-JS version as the primary focus, <strong>JS is optional</strong> and should be regarded as such.</p>
|
|
</blockquote>
|
|
|
|
<p>The Web is 95% typography, the art and technique of arranging type to make text more readable and pleasing.
|
|
To achieve this, a textual hierarchy is fundamental, text should present a clear, readable structure to the reader.
|
|
In much of the same fashion, the way we perceive Web pages relies upon the same fundamentals. As such, by focusing on the
|
|
markup, we hope to achieve an accessible, fast and polished structure by which any browser and screen reader relies upon.</p>
|
|
|
|
<h3>Features</h3>
|
|
|
|
<ul>
|
|
<li>Accessible
|
|
<ul>
|
|
<li>Easy to use keyboard only navigation</li>
|
|
<li>Feedback on focused elements</li>
|
|
<li>Keyboard shortcuts to access main regions</li>
|
|
<li>Vi-like shortcuts</li>
|
|
<li>Screen reader tested</li>
|
|
<li>Notifies the user when focusing on key elements, such as the feed, notes and actions</li>
|
|
<li>Brief description of navigation links</li>
|
|
<li>Using semantic HTML whenever possible</li>
|
|
<li>Special care given for styling solutions that could break accessibility</li>
|
|
<li>Colors and type sizes in accordance to W3C contrast guidelines</li>
|
|
<li>Chosen specifically blue-ish and grey-ish hues for faster page loading perception</li>
|
|
</ul></li>
|
|
<li>Fast, the content provided to the user really is just markup and some CSS rules
|
|
<ul>
|
|
<li>Optionally there will be some small use cases where JS makes sense (it's the only thing modern browsers understand e.e)</li>
|
|
<li>For example, cropping your avatar before uploading a new one.</li>
|
|
<li>This is the only example until now.</li>
|
|
</ul></li>
|
|
<li>Dark and light default themes available (according to your system theme)</li>
|
|
<li>Graceful degradation for unsupported HTML elements</li>
|
|
<li>Achieving modern user interface patterns without JS</li>
|
|
<li>Various layout engines tested and work as they should
|
|
<ul>
|
|
<li>Qt WebEngine (Qutebrowser, Falkon, Otter Browser, etc...)</li>
|
|
<li>WebkitGTK (Epiphany, Midori, etc...)</li>
|
|
<li>Gecko (Firefox and derivatives)</li>
|
|
<li>Goanna (Palemoon, Basilisk, etc...)</li>
|
|
<li>Internet Explorer</li>
|
|
</ul></li>
|
|
</ul>
|
|
|
|
<h3>Video</h3>
|
|
|
|
<h4>Keyboard tests</h4>
|
|
|
|
<iframe width="560" height="315" sandbox="allow-same-origin allow-scripts allow-popups" title="GNU social v3 Accessibility: Orca reading the Public feed" src="https://tube.tchncs.de/videos/embed/9a16e84c-4150-4849-ac63-019c9a3782d9" frameborder="0" allowfullscreen></iframe>
|
|
|
|
<hr>
|
|
]]></description><link>https://gnusocial.rocks/v3/updates-interface-and-accessibility.html</link>
|
|
<guid>https://gnusocial.rocks/v3/./updates-interface-and-accessibility.html</guid>
|
|
<dc:creator>GNU social development team</dc:creator>
|
|
<pubDate>Mon, 13 Sep 2021 17:32:55 +0100</pubDate></item>
|
|
<item><title>
|
|
Updates: V3 blog
|
|
</title><description><![CDATA[
|
|
|
|
<p>We initially thought that the milestones list would be enough to
|
|
announce the development progress. But it's a little too vague
|
|
and doesn't really let us express all the on going changes and efforts.</p>
|
|
|
|
<p>The <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/commits/branch/v3">git
|
|
history</a> is clear (we believe), but it can be challenging and obscure to outsiders and non-technical people.</p>
|
|
|
|
<p>With the introduction of this blog made with
|
|
<a href="https://github.com/cfenollosa/bashblog">bashblog</a>, we hope to make all the progress more visible and easier of following :)</p>
|
|
|
|
<p>It has a <a href="https://www.gnusocial.rocks/v3/feed.rss">RSS feed</a> so, don't
|
|
forget to subscribe!</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- text end -->
|
|
]]></description><link>https://gnusocial.rocks/v3/updates-v3-blog.html</link>
|
|
<guid>https://gnusocial.rocks/v3/./updates-v3-blog.html</guid>
|
|
<dc:creator>GNU social development team</dc:creator>
|
|
<pubDate>Mon, 16 Aug 2021 13:37:42 +0100</pubDate></item>
|
|
<item><title>
|
|
Updates: Implement StoreRemoteMedia for v3 and port Embed
|
|
</title><description><![CDATA[
|
|
|
|
<p>GNU social comes with two plugins that add relevant media functionality.
|
|
Not talking neither about ImageEncoder nor VideoEncoder this time, but rather about StoreRemoteMedia and Embed.</p>
|
|
|
|
<p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/StoreRemoteMedia">StoreRemoteMedia</a>
|
|
fetches remote files when they are <code>Linked</code> to in a note. I.e., when the major mime type isn't <code>text</code>. It triggers thumbnail generation.</p>
|
|
|
|
<p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/Embed">Embed</a>
|
|
attempts to generate a page preview from open graph and oembed. I.e., acts when the major mime type is <code>text</code>.</p>
|
|
|
|
<p>We've changed so much with GNU social v3 that, regarding SRM there was no possible port, just a complete rewrite. Both plugins became smaller and easier to understand while promoting the same functionality with more stability.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- text end -->
|
|
]]></description><link>https://gnusocial.rocks/v3/updates-implement-storeremotemedia-for-v3-and-port-embed.html</link>
|
|
<guid>https://gnusocial.rocks/v3/./updates-implement-storeremotemedia-for-v3-and-port-embed.html</guid>
|
|
<dc:creator>GNU social development team</dc:creator>
|
|
<pubDate>Fri, 13 Aug 2021 13:37:42 +0100</pubDate></item>
|
|
<item><title>
|
|
Updates: Improve the Attachments system
|
|
</title><description><![CDATA[
|
|
|
|
<p>With the milestone <a href="https://www.gnusocial.rocks/v3/milestone-port-media-handling-from-v2.html">Port Media system from
|
|
v2</a> we had ported the existing
|
|
attachment system. The fact is that this system wasn't good enough.</p>
|
|
|
|
<p>It's always important to start with the original code as that allows us
|
|
to review past decisions and understand all the corner cases previously
|
|
considered.</p>
|
|
|
|
<p>Sadly, what motivated us to re-design the attachment system were the
|
|
non-considered corner cases. In particular:</p>
|
|
|
|
<ul>
|
|
<li>Remove <code>title</code> from attachment, as it's part of the relation between attachment and note.</li>
|
|
<li>Remove <code>actor</code> from attachment, many actors may publish the same attachment.</li>
|
|
<li>Remove <code>is_local</code> from attachment, as it's part of the relation between attachment and note.</li>
|
|
<li>Remove <code>remote_url</code> from attachment, different urls can return the same attachment.</li>
|
|
<li>Attachment now has a reference counter </li>
|
|
<li>Add entity GSActorToAttachment</li>
|
|
<li>Add entity GSActorToRemoteURL</li>
|
|
<li>Add entity RemoteURL</li>
|
|
<li>Add entity RemoteURLToNote</li>
|
|
<li>Add entity RemoteURLToAttachment</li>
|
|
<li>AttachmentToNote now has a title attribute</li>
|
|
</ul>
|
|
|
|
<p>Key commits:</p>
|
|
|
|
<ul>
|
|
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/32ad5dbd74ebb369c4b3ed688e1fb78464fabe49">32ad5dbd74 - [ENTITY] Split Attachment in various new entities</a></li>
|
|
<li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/c381e58d3307e7dd07abeb9cf5b3998e34f5bd48">c381e58d33 - [ENTITY] Refactor RemoteURL entities to Link</a></li>
|
|
</ul>
|
|
|
|
<p>The structural changes and how it compares to v2 is detailed in our
|
|
<a href="http://agile.gnusocial.rocks/doku.php?id=attachment">wiki</a>.</p>
|
|
|
|
<p>Some relevant observations:</p>
|
|
|
|
<ul>
|
|
<li><code>Link</code> is now part of GNU social Data Representation terms. It represents
|
|
any remote URL being shared in a note.</li>
|
|
<li>There's only one fixed directory for GSFiles.</li>
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- text end -->
|
|
]]></description><link>https://gnusocial.rocks/v3/updates-improve-the-attachments-system.html</link>
|
|
<guid>https://gnusocial.rocks/v3/./updates-improve-the-attachments-system.html</guid>
|
|
<dc:creator>GNU social development team</dc:creator>
|
|
<pubDate>Thu, 05 Aug 2021 13:37:42 +0100</pubDate></item>
|
|
<item><title>
|
|
Updates: Finish the Avatar component
|
|
</title><description><![CDATA[
|
|
|
|
<p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/Avatar">Avatar Component source</a>.</p>
|
|
|
|
<p>Its controller handles upload, update and removal.</p>
|
|
|
|
<p>Important change from v2: Avatars are now regular attachments.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- text end -->
|
|
]]></description><link>https://gnusocial.rocks/v3/updates-finish-the-avatar-component.html</link>
|
|
<guid>https://gnusocial.rocks/v3/./updates-finish-the-avatar-component.html</guid>
|
|
<dc:creator>GNU social development team</dc:creator>
|
|
<pubDate>Wed, 04 Aug 2021 13:42:37 +0100</pubDate></item>
|
|
<item><title>
|
|
Milestone: Documentation and Tests Infrastructure
|
|
</title><description><![CDATA[
|
|
|
|
<p><strong><a href="https://agile.gnusocial.rocks/doku.php?id=milestones:initial_test_documentation_infrastructure">>WIKI Milestone entry</a></strong></p>
|
|
|
|
<p>GNU social now has its documentation available in
|
|
<a href="https://docs.gnusocial.rocks/">https://docs.gnusocial.rocks/</a>. It features four
|
|
different books. These are automatically generated from the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/docs">source</a> using <a href="https://rust-lang.github.io/mdBook/">mdBook</a>.</p>
|
|
|
|
<blockquote>
|
|
<p>Only the development book is in an elaborated state, the other books are
|
|
holding for more ready code.</p>
|
|
</blockquote>
|
|
|
|
<p>And two of them are new:</p>
|
|
|
|
<ul>
|
|
<li>The <a href="https://docs.gnusocial.rocks/developer">Developer</a> is both intended to guide third-party plugin developers and to make it easier of contributing to the code.</li>
|
|
<li>The <a href="https://docs.gnusocial.rocks/designer">Designer</a> is the most recent of the four and came from a necessity of keeping some standardization between templates and ensuring the same principles are kept in mind when designing new themes.</li>
|
|
</ul>
|
|
|
|
<p>And two of them are updates from existing documentation:</p>
|
|
|
|
<ul>
|
|
<li>The <a href="https://docs.gnusocial.rocks/user">User</a> one is adapted
|
|
from the existing GNU social documentation for users that was provided in v2.</li>
|
|
<li>The <a href="https://docs.gnusocial.rocks/administrator">Administrator</a> one is adapted
|
|
from the "Unofficial GNU social docs" by Thomask who <a href="https://notabug.org/diogo/gnu-social/issues/246">asked us to make it official</a>.</li>
|
|
</ul>
|
|
|
|
<p>Together with the documentation we've introduced a
|
|
<a href="https://agile.gnusocial.rocks/">wiki</a>. Its purpose is to walk-through decisions,
|
|
convention, terminology. It's where we document the reasoning the development team went
|
|
through before implementing more sophisticated functionalities.</p>
|
|
|
|
<p>Finally, when the documentation doesn't explain, and to ensure the whole code
|
|
is properly tested, we have the
|
|
<a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/tests">tests</a>. And the coverage is available <a href="https://coverage.gnusocial.rocks/">here</a>. At the time of writing the coverage has 98.76% code lines tested.</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!-- text end -->
|
|
]]></description><link>https://gnusocial.rocks/v3/milestone-documentation-and-tests-infrastructure.html</link>
|
|
<guid>https://gnusocial.rocks/v3/./milestone-documentation-and-tests-infrastructure.html</guid>
|
|
<dc:creator>GNU social development team</dc:creator>
|
|
<pubDate>Wed, 04 Aug 2021 13:37:42 +0100</pubDate></item>
|
|
</channel></rss>
|