Official Landing Page https://www.gnusocial.rocks/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

318 lines
12 KiB

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  3. <channel><title>GNU social V3</title><link>https://gnusocial.rocks/v3/index.html</link>
  4. <description>Development blog where we announce our progress.</description><language>en</language>
  5. <lastBuildDate>Sat, 11 Sep 2021 18:54:16 +0100</lastBuildDate>
  6. <pubDate>Sat, 11 Sep 2021 18:54:16 +0100</pubDate>
  7. <atom:link href="https://gnusocial.rocks/v3/feed.rss" rel="self" type="application/rss+xml" />
  8. <item><title>
  9. Updates: V3 blog
  10. </title><description><![CDATA[
  11. <p>We initially thought that the milestones list would be enough to
  12. announce the development progress. But it's a little too vague
  13. and doesn't really let us express all the on going changes and efforts.</p>
  14. <p>The <a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/commits/branch/v3">git
  15. history</a> is clear (we believe), but it can be challenging and obscure to outsiders and non-technical people.</p>
  16. <p>With the introduction of this blog made with
  17. <a href="https://github.com/cfenollosa/bashblog">bashblog</a>, we hope to make all the progress more visible and easier of following :)</p>
  18. <p>It has a <a href="https://www.gnusocial.rocks/v3/feed.rss">RSS feed</a> so, don't
  19. forget to subscribe!</p>
  20. <!-- text end -->
  21. ]]></description><link>https://gnusocial.rocks/v3/updates-v3-blog.html</link>
  22. <guid>https://gnusocial.rocks/v3/./updates-v3-blog.html</guid>
  23. <dc:creator>GNU social development team</dc:creator>
  24. <pubDate>Mon, 16 Aug 2021 13:37:42 +0100</pubDate></item>
  25. <item><title>
  26. Updates: Implement StoreRemoteMedia for v3 and port Embed
  27. </title><description><![CDATA[
  28. <p>GNU social comes with two plugins that add relevant media functionality.
  29. Not talking neither about ImageEncoder nor VideoEncoder this time, but rather about StoreRemoteMedia and Embed.</p>
  30. <p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/StoreRemoteMedia">StoreRemoteMedia</a>
  31. 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>
  32. <p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/Embed">Embed</a>
  33. attempts to generate a page preview from open graph and oembed. I.e., acts when the major mime type is <code>text</code>.</p>
  34. <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>
  35. <!-- text end -->
  36. ]]></description><link>https://gnusocial.rocks/v3/updates-implement-storeremotemedia-for-v3-and-port-embed.html</link>
  37. <guid>https://gnusocial.rocks/v3/./updates-implement-storeremotemedia-for-v3-and-port-embed.html</guid>
  38. <dc:creator>GNU social development team</dc:creator>
  39. <pubDate>Fri, 13 Aug 2021 13:37:42 +0100</pubDate></item>
  40. <item><title>
  41. Updates: Improve the Attachments system
  42. </title><description><![CDATA[
  43. <p>With the milestone <a href="https://www.gnusocial.rocks/v3/milestone-port-media-handling-from-v2.html">Port Media system from
  44. v2</a> we had ported the existing
  45. attachment system. The fact is that this system wasn't good enough.</p>
  46. <p>It's always important to start with the original code as that allows us
  47. to review past decisions and understand all the corner cases previously
  48. considered.</p>
  49. <p>Sadly, what motivated us to re-design the attachment system were the
  50. non-considered corner cases. In particular:</p>
  51. <ul>
  52. <li>Remove <code>title</code> from attachment, as it's part of the relation between attachment and note.</li>
  53. <li>Remove <code>actor</code> from attachment, many actors may publish the same attachment.</li>
  54. <li>Remove <code>is_local</code> from attachment, as it's part of the relation between attachment and note.</li>
  55. <li>Remove <code>remote_url</code> from attachment, different urls can return the same attachment.</li>
  56. <li>Attachment now has a reference counter </li>
  57. <li>Add entity GSActorToAttachment</li>
  58. <li>Add entity GSActorToRemoteURL</li>
  59. <li>Add entity RemoteURL</li>
  60. <li>Add entity RemoteURLToNote</li>
  61. <li>Add entity RemoteURLToAttachment</li>
  62. <li>AttachmentToNote now has a title attribute</li>
  63. </ul>
  64. <p>Key commits:</p>
  65. <ul>
  66. <li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/32ad5dbd74ebb369c4b3ed688e1fb78464fabe49">32ad5dbd74 - [ENTITY] Split Attachment in various new entities</a></li>
  67. <li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/commit/c381e58d3307e7dd07abeb9cf5b3998e34f5bd48">c381e58d33 - [ENTITY] Refactor RemoteURL entities to Link</a></li>
  68. </ul>
  69. <p>The structural changes and how it compares to v2 is detailed in our
  70. <a href="http://agile.gnusocial.rocks/doku.php?id=attachment">wiki</a>.</p>
  71. <p>Some relevant observations:</p>
  72. <ul>
  73. <li><code>Link</code> is now part of GNU social Data Representation terms. It represents
  74. any remote URL being shared in a note.</li>
  75. <li>There's only one fixed directory for GSFiles.</li>
  76. </ul>
  77. <!-- text end -->
  78. ]]></description><link>https://gnusocial.rocks/v3/updates-improve-the-attachments-system.html</link>
  79. <guid>https://gnusocial.rocks/v3/./updates-improve-the-attachments-system.html</guid>
  80. <dc:creator>GNU social development team</dc:creator>
  81. <pubDate>Thu, 05 Aug 2021 13:37:42 +0100</pubDate></item>
  82. <item><title>
  83. Updates: Finish the Avatar component
  84. </title><description><![CDATA[
  85. <p><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/components/Avatar">Avatar Component source</a>.</p>
  86. <p>Its controller handles upload, update and removal.</p>
  87. <p>Important change from v2: Avatars are now regular attachments.</p>
  88. <!-- text end -->
  89. ]]></description><link>https://gnusocial.rocks/v3/updates-finish-the-avatar-component.html</link>
  90. <guid>https://gnusocial.rocks/v3/./updates-finish-the-avatar-component.html</guid>
  91. <dc:creator>GNU social development team</dc:creator>
  92. <pubDate>Wed, 04 Aug 2021 13:42:37 +0100</pubDate></item>
  93. <item><title>
  94. Milestone: Documentation and Tests Infrastructure
  95. </title><description><![CDATA[
  96. <p><strong><a href="https://agile.gnusocial.rocks/doku.php?id=milestones:initial_test_documentation_infrastructure">>WIKI Milestone entry</a></strong></p>
  97. <p>GNU social now has its documentation available in
  98. <a href="https://docs.gnusocial.rocks/">https://docs.gnusocial.rocks/</a>. It features four
  99. 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>
  100. <blockquote>
  101. <p>Only the development book is in an elaborated state, the other books are
  102. holding for more ready code.</p>
  103. </blockquote>
  104. <p>And two of them are new:</p>
  105. <ul>
  106. <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>
  107. <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>
  108. </ul>
  109. <p>And two of them are updates from existing documentation:</p>
  110. <ul>
  111. <li>The <a href="https://docs.gnusocial.rocks/user">User</a> one is adapted
  112. from the existing GNU social documentation for users that was provided in v2.</li>
  113. <li>The <a href="https://docs.gnusocial.rocks/administrator">Administrator</a> one is adapted
  114. 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>
  115. </ul>
  116. <p>Together with the documentation we've introduced a
  117. <a href="https://agile.gnusocial.rocks/">wiki</a>. Its purpose is to walk-through decisions,
  118. convention, terminology. It's where we document the reasoning the development team went
  119. through before implementing more sophisticated functionalities.</p>
  120. <p>Finally, when the documentation doesn't explain, and to ensure the whole code
  121. is properly tested, we have the
  122. <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>
  123. <!-- text end -->
  124. ]]></description><link>https://gnusocial.rocks/v3/milestone-documentation-and-tests-infrastructure.html</link>
  125. <guid>https://gnusocial.rocks/v3/./milestone-documentation-and-tests-infrastructure.html</guid>
  126. <dc:creator>GNU social development team</dc:creator>
  127. <pubDate>Wed, 04 Aug 2021 13:37:42 +0100</pubDate></item>
  128. <item><title>
  129. Milestone: Port Media handling from v2
  130. </title><description><![CDATA[
  131. <p><strong><a href="https://agile.gnusocial.rocks/doku.php?id=milestones:attachment_media_embed_handling">>WIKI Milestone entry</a></strong></p>
  132. <p>File Storage in GNU social is used for avatars, for notes containing
  133. attachments, and for notes containing links (in which case is an Embed preview).
  134. Notes can be created by local users or fetched from remote actors. Filehash is
  135. used to reduce file duplication.</p>
  136. <p>When a user shares a Link that uses OpenGraph tags or has an OEmbed provider,
  137. 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>
  138. <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
  139. file and make it available as an attachment, and will generate a thumbnail.</p>
  140. <p>When an image, video, or other file type is uploaded or retrieved, an Attachment
  141. entity is created. When a thumbnail is requested, one is generated if an
  142. EncoderPlugin that supports the mime type is available.</p>
  143. <p>There are two EncoderPlugins implemented:</p>
  144. <ul>
  145. <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>
  146. <li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/plugins/VideoEncoder">VideoEncoder</a>: Allows to rescale gifs using FFMpeg.</li>
  147. </ul>
  148. <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>
  149. <h2>How is the code organised?</h2>
  150. <p>There are various entities related to attachment and thumbnail handling.
  151. The key ones are:</p>
  152. <ul>
  153. <li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/src/Entity/Attachment.php">Attachment</a></li>
  154. <li><a href="https://code.undefinedhackers.net/GNUsocial/gnu-social/src/branch/v3/src/Entity/AttachmentThumbnail.php">AttachmentThumbnail</a></li>
  155. </ul>
  156. <p>The plugins are able to act by means of the Events system, as elaborated in the
  157. <a href="https://docs.gnusocial.rocks/developer/storage.html">documentation</a>.</p>
  158. <!-- text end -->
  159. ]]></description><link>https://gnusocial.rocks/v3/milestone-port-media-handling-from-v2.html</link>
  160. <guid>https://gnusocial.rocks/v3/./milestone-port-media-handling-from-v2.html</guid>
  161. <dc:creator>GNU social development team</dc:creator>
  162. <pubDate>Mon, 03 May 2021 13:37:42 +0100</pubDate></item>
  163. </channel></rss>