|
- <?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>Sat, 11 Sep 2021 18:54:16 +0100</lastBuildDate>
- <pubDate>Sat, 11 Sep 2021 18:54:16 +0100</pubDate>
- <atom:link href="https://gnusocial.rocks/v3/feed.rss" rel="self" type="application/rss+xml" />
- <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>
- <item><title>
- Milestone: Port Media handling from v2
- </title><description><![CDATA[
-
- <p><strong><a href="https://agile.gnusocial.rocks/doku.php?id=milestones:attachment_media_embed_handling">>WIKI Milestone entry</a></strong></p>
-
- <p>File Storage in GNU social is used for avatars, for notes containing
- attachments, and for notes containing links (in which case is an Embed preview).
- Notes can be created by local users or fetched from remote actors. Filehash is
- used to reduce file duplication.</p>
-
- <p>When a user shares a Link that uses OpenGraph tags or has an OEmbed provider,
- the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/Embed">Embed plugin</a> generates a preview for it that may contain a thumbnail.</p>
-
- <p>When a user shares a Link to an image, the <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/StoreRemoteMedia">StoreRemoteMedia plugin</a> can fetch the
- file and make it available as an attachment, and will generate a thumbnail.</p>
-
- <p>When an image, video, or other file type is uploaded or retrieved, an Attachment
- entity is created. When a thumbnail is requested, one is generated if an
- EncoderPlugin that supports the mime type is available.</p>
-
- <p>There are two EncoderPlugins implemented:</p>
-
- <ul>
- <li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/ImageEncoder">ImageEncoder</a>: Allows to compress, validate, rescale, and sanitize images using VIPS.</li>
- <li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/VideoEncoder">VideoEncoder</a>: Allows to rescale gifs using FFMpeg.</li>
- </ul>
-
- <p>Another helpful plugin is <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/FileQuota">FileQuota</a> which ensures a user stays under the file quota.</p>
-
- <h2>How is the code organised?</h2>
-
- <p>There are various entities related to attachment and thumbnail handling.
- The key ones are:</p>
-
- <ul>
- <li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/src/Entity/Attachment.php">Attachment</a></li>
- <li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/src/Entity/AttachmentThumbnail.php">AttachmentThumbnail</a></li>
- </ul>
-
- <p>The plugins are able to act by means of the Events system, as elaborated in the
- <a href="https://docs.gnusocial.rocks/developer/storage.html">documentation</a>.</p>
-
-
-
-
-
-
-
-
-
- <!-- text end -->
- ]]></description><link>https://gnusocial.rocks/v3/milestone-port-media-handling-from-v2.html</link>
- <guid>https://gnusocial.rocks/v3/./milestone-port-media-handling-from-v2.html</guid>
- <dc:creator>GNU social development team</dc:creator>
- <pubDate>Mon, 03 May 2021 13:37:42 +0100</pubDate></item>
- </channel></rss>
|