123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894 |
- <!DOCTYPE html>
- <html>
- <head data-suburl="">
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <meta http-equiv="X-UA-Compatible" content="IE=edge"/>
-
- <meta name="author" content="diogo" />
- <meta name="description" content="gnu-social - GNU social is a social communication software used in federated social networks. It is widely supported and has a large userbase. It is already used by the Free Software Foundation." />
- <meta name="keywords" content="go, git, self-hosted, gogs">
-
- <meta name="referrer" content="no-referrer" />
- <meta name="_csrf" content="Db2D5fl2PkW0vwzWYm8aw_fx4rA6MTYwNDc5MjExODI3NjA5OTA5OA==" />
- <meta name="_suburl" content="" />
-
-
-
- <meta property="og:url" content="https://notabug.org/diogo/gnu-social" />
- <meta property="og:type" content="object" />
- <meta property="og:title" content="diogo/gnu-social">
- <meta property="og:description" content="GNU social is a social communication software used in federated social networks. It is widely supported and has a large userbase. It is already used by the Free Software Foundation.">
- <meta property="og:image" content="https://notabug.org/avatars/12290" />
-
- <link rel="shortcut icon" href="/img/favicon.png" />
- <script src="/js/jquery-1.11.3.min.js"></script>
- <script src="/js/libs/jquery.are-you-sure.js"></script>
- <link href="/img/icon-48.ico" rel="icon" type="image/x-icon" />
- <link href="/img/icon-60.png" rel="apple-touch-icon">
- <link href="/img/icon-76.png" rel="apple-touch-icon" sizes="76x76">
- <link href="/img/icon-120.png" rel="apple-touch-icon" sizes="120x120">
- <link href="/img/icon-152.png" rel="apple-touch-icon" sizes="152x152">
- <link href="/img/icon-240.png" rel="apple-touch-icon" sizes="240x240">
- <link rel="stylesheet" href="/assets/font-awesome-4.6.3/css/font-awesome.min.css">
- <link rel="stylesheet" href="/assets/octicons-4.3.0/octicons.min.css">
-
-
-
-
- <link rel="stylesheet" href="/css/semantic-2.2.13.min.css">
- <link rel="stylesheet" href="/css/gogs.css?v=6fc9e85aa88133794d3434ea74aa557a">
- <link rel="stylesheet" href="/css/notabug.css">
-
- <script src="/js/semantic-2.2.13.min.js"></script>
- <script src="/js/gogs.js?v=6fc9e85aa88133794d3434ea74aa557a"></script>
- <title>[RFC] Core Plugins - NotABug.org: Free code hosting</title>
- <meta name="theme-color" content="#428bca">
-
- <noscript><style>.nojs-popup:hover > .menu { display: block ; }</style></noscript>
- </head>
- <body>
- <div class="full height">
- <noscript>Please enable JavaScript in your browser!</noscript>
-
- <div id="header-div" class="following bar light">
- <div class="ui container">
- <div class="ui grid">
- <div class="column">
- <div class="ui top secondary menu">
- <a class="item brand" href="/">
- <img class="ui mini image" src="/img/favicon.png">
- </a>
-
- <a class="item" href="/">Home</a>
-
- <a class="item" href="/explore/repos">Explore</a>
-
-
- <a class="notabug-item item" href="/help" rel="noreferrer">Help</a>
- <div class="right menu">
-
- <a class="item" href="/user/sign_up">
- <i class="octicon octicon-person"></i> Register
- </a>
-
- <a class="item" href="/user/login?redirect_to=%2fdiogo%2fgnu-social%2fissues%2f32">
- <i class="octicon octicon-sign-in"></i> Sign In
- </a>
- </div>
-
- </div>
- </div>
- </div>
- </div>
- </div>
-
- <div class="repository view issue pull">
- <div class="header-wrapper">
- <div class="ui container">
- <div class="ui vertically padded grid head">
- <div class="column">
- <div class="ui header">
- <div class="ui huge breadcrumb">
- <i class="mega-octicon octicon-repo"></i>
- <a href="/diogo">diogo</a>
- <div class="divider"> / </div>
- <a href="/diogo/gnu-social">gnu-social</a>
-
-
- </div>
-
- <div class="ui right">
- <div class="ui labeled button" tabindex="0">
- <a class="ui basic button" href="/diogo/gnu-social/action/watch?redirect_to=%2fdiogo%2fgnu-social%2fissues%2f32">
- <i class="icon fa-eye-slash"></i>Watch
- </a>
- <a class="ui basic label" href="/diogo/gnu-social/watchers">
- 9
- </a>
- </div>
- <div class="ui labeled button" tabindex="0">
- <a class="ui basic button" href="/diogo/gnu-social/action/star?redirect_to=%2fdiogo%2fgnu-social%2fissues%2f32">
- <i class="icon fa-star-o"></i>Star
- </a>
- <a class="ui basic label" href="/diogo/gnu-social/stars">
- 22
- </a>
- </div>
-
- <div class="ui labeled button" tabindex="0">
- <a class="ui basic button " href="/repo/fork/25974">
- <i class="octicon octicon-repo-forked"></i>Fork
- </a>
- <a class="ui basic label" href="/diogo/gnu-social/forks">
- 21
- </a>
- </div>
-
- </div>
-
- </div>
- </div>
- </div>
- </div>
- <div class="ui tabs container">
- <div class="ui tabular menu navbar">
-
- <a class=" item" href="/diogo/gnu-social">
- <i class="octicon octicon-file-text"></i> Files
- </a>
-
-
- <a class="active item" href="/diogo/gnu-social/issues">
- <i class="octicon octicon-issue-opened"></i> Issues <span class="ui blue small label">73</span>
- </a>
-
-
- <a class=" item" href="/diogo/gnu-social/pulls">
- <i class="octicon octicon-git-pull-request"></i> Pull Requests <span class="ui blue small label">3</span>
- </a>
-
-
- <a class=" item" href="/diogo/gnu-social/wiki">
- <i class="octicon octicon-book"></i> Wiki
- </a>
-
-
- </div>
- </div>
- <div class="ui tabs divider"></div>
- </div>
- <div class="ui container">
- <div class="navbar">
- <div class="ui compact small menu">
- <a class=" item" href="/diogo/gnu-social/labels">Labels</a>
- <a class=" item" href="/diogo/gnu-social/milestones">Milestones</a>
- </div>
- <div class="ui right">
-
- <a class="ui green button" href="/diogo/gnu-social/issues/new">New Issue</a>
-
- </div>
- </div>
- <div class="ui divider"></div>
-
- <div>
- <div class="ui grid">
-
-
- <div class="sixteen wide column title">
- <div class="ui grid">
- <h1 class="twelve wide column">
- <span class="index">#32</span> <span id="issue-title" class="has-emoji">[RFC] Core Plugins</span>
- <div id="edit-title-input" class="ui input" style="display: none">
- <input value="[RFC] Core Plugins">
- </div>
- </h1>
-
- </div>
-
- <div class="ui red large label"><i class="octicon octicon-issue-closed"></i> Closed</div>
-
-
-
- <span class="time-desc">
-
- opened <span class="time-since" title="Mon, 22 Jul 2019 20:08:46 UTC">1 year ago</span> by <a href="/diogo">diogo</a>
-
- ·
- 3 comments
- </span>
-
- <div class="ui divider"></div>
- </div>
-
-
- <div class="twelve wide column comment-list">
- <ui class="ui comments">
- <div class="comment">
- <a class="avatar" href="/diogo">
- <img src="/avatars/12290">
- </a>
- <div class="content">
- <div class="ui top attached header">
- <span class="text grey"><a href="/diogo">Diogo Cordeiro</a> commented <a href="#issue-63612"><span class="time-since" title="Mon, 22 Jul 2019 20:08:46 UTC">1 year ago</span></a></span>
- <div class="ui right actions">
-
- </div>
- </div>
- <div class="ui attached segment">
- <div class="render-content markdown has-emoji">
-
- <p>Maybe we should refactor core plugins to stay in a different directory, to better give the idea that they aren't mere plugins.</p>
- <p>For the effects of this RFC, and until a better name is proposed, I'll name such core-plugins of modules (to reflect specialized functionality).</p>
- <p>The heart of this issue is that I can't understand why the core plugins have been created... Why has this functionality been extracted from core to separate plugins? (<a href="/MMN-o" rel="nofollow">@MMN-o</a>)</p>
- <p>Another thing that confuses me is:</p>
- <ul>
- <li>The core plugin list has been created in 19 Oct 2013: <a href="https://git.gnu.io/gnu/gnu-social/commit/2a5ba1f74bb428fc74f181f806aa786b04b48d0a" rel="nofollow">https://git.gnu.io/gnu/gnu-social/commit/2a5ba1f74bb428fc74f181f806aa786b04b48d0a</a> stating that they cannot been disabled.</li>
- <li>The Favorite plugin was created in 24 Jun 2014: <a href="https://git.gnu.io/gnu/gnu-social/commit/db7cc7fa7553e0be302d518360648940756f131c" rel="nofollow">https://git.gnu.io/gnu/gnu-social/commit/db7cc7fa7553e0be302d518360648940756f131c</a> suggesting that it is optional.</li>
- </ul>
- <p>I think that we now have four options:</p>
- <ol>
- <li>Move everything to actual plugins (hard-work, requires making everything actually dynamic)</li>
- <li>Re-integrated all the core plugins into core (hard-work, means reverting everything)</li>
- <li>Refactor core plugins to "modules" and fix issues with the ActivityModeration plugin (reasonable, but it doesn't make sense to accept this change if there was no reason to extract core code to plugins) (other than avoiding the hard work)</li>
- <li>Let's forget all this and do nothing</li>
- </ol>
- <p>About ActivityModeration: This one is listed as core but all the core-code related to notice elimination was not ported to the plugin, contrary to what was done with the Favorite plugin.</p>
-
- </div>
- <div class="raw-content hide">Maybe we should refactor core plugins to stay in a different directory, to better give the idea that they aren't mere plugins.
- For the effects of this RFC, and until a better name is proposed, I'll name such core-plugins of modules (to reflect specialized functionality).
- The heart of this issue is that I can't understand why the core plugins have been created... Why has this functionality been extracted from core to separate plugins? (@MMN-o)
- Another thing that confuses me is:
- * The core plugin list has been created in 19 Oct 2013: https://git.gnu.io/gnu/gnu-social/commit/2a5ba1f74bb428fc74f181f806aa786b04b48d0a stating that they cannot been disabled.
- * The Favorite plugin was created in 24 Jun 2014: https://git.gnu.io/gnu/gnu-social/commit/db7cc7fa7553e0be302d518360648940756f131c suggesting that it is optional.
- I think that we now have four options:
- 1. Move everything to actual plugins (hard-work, requires making everything actually dynamic)
- 2. Re-integrated all the core plugins into core (hard-work, means reverting everything)
- 3. Refactor core plugins to "modules" and fix issues with the ActivityModeration plugin (reasonable, but it doesn't make sense to accept this change if there was no reason to extract core code to plugins) (other than avoiding the hard work)
- 4. Let's forget all this and do nothing
- About ActivityModeration: This one is listed as core but all the core-code related to notice elimination was not ported to the plugin, contrary to what was done with the Favorite plugin.
- </div>
- <div class="edit-content-zone hide" data-write="issue-63612-write" data-preview="issue-63612-preview" data-update-url="/diogo/gnu-social/issues/32/content" data-context="/diogo/gnu-social"></div>
- </div>
-
- </div>
- </div>
-
-
-
-
- <div class="comment" id="issuecomment-15250">
- <a class="avatar" href="/diogo">
- <img src="/avatars/12290">
- </a>
- <div class="content">
- <div class="ui top attached header">
- <span class="text grey"><a href="/diogo">Diogo Cordeiro</a> commented <a href="#issuecomment-15250"><span class="time-since" title="Mon, 22 Jul 2019 21:00:44 UTC">1 year ago</span></a></span>
- <div class="ui right actions">
-
- <div class="item tag">
-
- Owner
-
- </div>
-
-
- </div>
- </div>
- <div class="ui attached segment">
- <div class="render-content markdown has-emoji">
-
- <p>For reference (raised by rozzin):</p>
- <ul>
- <li><a href="http://foldoc.org/module" rel="nofollow">http://foldoc.org/module</a></li>
- <li><a href="http://foldoc.org/library" rel="nofollow">http://foldoc.org/library</a></li>
- <li><a href="http://foldoc.org/plugin" rel="nofollow">http://foldoc.org/plugin</a></li>
- </ul>
- <blockquote>
- <p>Why has this functionality been extracted from core to separate plugins?</p>
- </blockquote>
- <p>rozzin: If you look at changes when FavoritePlugin became a thing, for example... a lot of stuff got aggregated together more logically--the answer to "where is the code implementing favorites?" changed from "oh, all over the place..." to "in plugins/Favorite".</p>
- <p>rozzin:</p>
- <pre><code>I think I'd strongly suggest "module" over "library" for an application-level
- mechanism like this.
- But it might make sense to just move the "core modules" into subdirectories of lib.
- e.g. lib/Favorite.
- I just don't want to have to figure out linguistic constructs like "these modules
- in the modules directory are the non-modular modules and the plugins are
- the modular modules" :)
- "library" has a lower-level connotation;
- </code></pre>
- <p>XRevan86:</p>
- <pre><code>I think "module" is good.
- modules are not necessarily non-essential.
- </code></pre>
- <p>Given that both directories (plugins and modules) would be in GNU social root, and "modules are not necessarily
- non-essential", it's maybe better to go with modules, as core-plugins might not be "as lower-level" as the other lib/ resources.</p>
-
- </div>
- <div class="raw-content hide">For reference (raised by rozzin):
- * http://foldoc.org/module
- * http://foldoc.org/library
- * http://foldoc.org/plugin
- > Why has this functionality been extracted from core to separate plugins?
- rozzin: If you look at changes when FavoritePlugin became a thing, for example... a lot of stuff got aggregated together more logically--the answer to "where is the code implementing favorites?" changed from "oh, all over the place..." to "in plugins/Favorite".
- rozzin:
- I think I'd strongly suggest "module" over "library" for an application-level
- mechanism like this.
-
- But it might make sense to just move the "core modules" into subdirectories of lib.
- e.g. lib/Favorite.
-
- I just don't want to have to figure out linguistic constructs like "these modules
- in the modules directory are the non-modular modules and the plugins are
- the modular modules" :)
-
- "library" has a lower-level connotation;
- XRevan86:
- I think "module" is good.
- modules are not necessarily non-essential.
- Given that both directories (plugins and modules) would be in GNU social root, and "modules are not necessarily
- non-essential", it's maybe better to go with modules, as core-plugins might not be "as lower-level" as the other lib/ resources.
- </div>
- <div class="edit-content-zone hide" data-write="issuecomment-15250-write" data-preview="issuecomment-15250-preview" data-update-url="/diogo/gnu-social/comments/15250" data-context="/diogo/gnu-social"></div>
- </div>
-
- </div>
- </div>
-
-
-
-
-
- <div class="comment" id="issuecomment-15269">
- <a class="avatar" href="/diogo">
- <img src="/avatars/12290">
- </a>
- <div class="content">
- <div class="ui top attached header">
- <span class="text grey"><a href="/diogo">Diogo Cordeiro</a> commented <a href="#issuecomment-15269"><span class="time-since" title="Tue, 23 Jul 2019 22:24:51 UTC">1 year ago</span></a></span>
- <div class="ui right actions">
-
- <div class="item tag">
-
- Owner
-
- </div>
-
-
- </div>
- </div>
- <div class="ui attached segment">
- <div class="render-content markdown has-emoji">
-
- <pre><code>includeals> > [rozzin] I'm kind of liking the "just put the core modules into lib along with all of the other `library' code".
- <includeals> As said eariler, I don't dislike that path either. But at an implementation level, not everything in a module is library code, in fact, modules haver their own lib/ as well as action/, etc.
- <includeals> `modules` are more generic, which is good also, with v2 structured divided in includes and public, modules makes it easier to respect that structure.
- <includeals> > <lnxw37d4> So how about /plugins for 3rd party optional modules; /modules/optional for optional modules included with GS & maintained by the project; /modules/core for required modules? Abandoned or unmaintained modules could go in a separate repo, so admins would know that they may not work or may be insecure.
- <includeals> We already have local/ for 3rd party optional modules, if we can keep backwards compatible without seriously bad consequences, we should
- <includeals> > <dansup> IMO plugins should become their own packages/git repos, that way, they can be maintained without having to require core updates
- <includeals> I confess I have mixed feelings about this... But lets leave that for another discussion.
- <includeals> rozzin: Also, modules still make use of the plugins system, the real twist is that they cannot be turned off
- <xmpp-gnu> [rozzin] more like "plugins make use of the module system"
- <xmpp-gnu> [rozzin] the awkwardness in GNU social WRT `some weird things that are "plugins" are things that are strange to be "plugins"' seems to be that the codebase from StatusNet generally had a lot of spaghetti to it, and the only place where was initially any attempt at providing any sort of clean organization was for plugins
- <xmpp-gnu> [rozzin] because you can't really even do actual plugins (i.e. drop-in/addon-on modules that might be developed/maintained outside of your project) if you don't have any sort of module system
- <xmpp-gnu> [rozzin] but aside from plugins, I don't think StatusNet really cared about modularity / separation of concerns (or really `design' in general, I guess...)
- <xmpp-gnu> [rozzin] so they called their modules "plugins" and they called the API the "plugin" API..., because that's the only kind of modules they had.
- <xmpp-gnu> [rozzin] And I think mmn just didn't bother trying to fight/convert the terminology when he started refactoring everything to have better boundaries.
- <xmpp-gnu> [rozzin] "whether they're called Plugins or Modules" was kind of the least of the concerns around that time--
- <xmpp-gnu> [rozzin] there was a lot of stuff that just didn't even work right, IIRC.
- <xmpp-gnu> [rozzin] and then we'd start trying to fix that stuff, and run into that `wait where is the code for that even located?' issue.
- <xmpp-gnu> [rozzin] I can't really say what was going on in mmn's head at the time, but I'd say something like "OMG. It's spread out all over the place? Again? I'm just going to separate this stuff out now, because I can't maintain this otherwise" is probably a good guess.
- </code></pre>
-
- </div>
- <div class="raw-content hide"> includeals> > [rozzin] I'm kind of liking the "just put the core modules into lib along with all of the other `library' code".
- <includeals> As said eariler, I don't dislike that path either. But at an implementation level, not everything in a module is library code, in fact, modules haver their own lib/ as well as action/, etc.
- <includeals> `modules` are more generic, which is good also, with v2 structured divided in includes and public, modules makes it easier to respect that structure.
- <includeals> > <lnxw37d4> So how about /plugins for 3rd party optional modules; /modules/optional for optional modules included with GS & maintained by the project; /modules/core for required modules? Abandoned or unmaintained modules could go in a separate repo, so admins would know that they may not work or may be insecure.
- <includeals> We already have local/ for 3rd party optional modules, if we can keep backwards compatible without seriously bad consequences, we should
- <includeals> > <dansup> IMO plugins should become their own packages/git repos, that way, they can be maintained without having to require core updates
- <includeals> I confess I have mixed feelings about this... But lets leave that for another discussion.
- <includeals> rozzin: Also, modules still make use of the plugins system, the real twist is that they cannot be turned off
- <xmpp-gnu> [rozzin] more like "plugins make use of the module system"
- <xmpp-gnu> [rozzin] the awkwardness in GNU social WRT `some weird things that are "plugins" are things that are strange to be "plugins"' seems to be that the codebase from StatusNet generally had a lot of spaghetti to it, and the only place where was initially any attempt at providing any sort of clean organization was for plugins
- <xmpp-gnu> [rozzin] because you can't really even do actual plugins (i.e. drop-in/addon-on modules that might be developed/maintained outside of your project) if you don't have any sort of module system
- <xmpp-gnu> [rozzin] but aside from plugins, I don't think StatusNet really cared about modularity / separation of concerns (or really `design' in general, I guess...)
- <xmpp-gnu> [rozzin] so they called their modules "plugins" and they called the API the "plugin" API..., because that's the only kind of modules they had.
- <xmpp-gnu> [rozzin] And I think mmn just didn't bother trying to fight/convert the terminology when he started refactoring everything to have better boundaries.
- <xmpp-gnu> [rozzin] "whether they're called Plugins or Modules" was kind of the least of the concerns around that time--
- <xmpp-gnu> [rozzin] there was a lot of stuff that just didn't even work right, IIRC.
- <xmpp-gnu> [rozzin] and then we'd start trying to fix that stuff, and run into that `wait where is the code for that even located?' issue.
- <xmpp-gnu> [rozzin] I can't really say what was going on in mmn's head at the time, but I'd say something like "OMG. It's spread out all over the place? Again? I'm just going to separate this stuff out now, because I can't maintain this otherwise" is probably a good guess.
- </div>
- <div class="edit-content-zone hide" data-write="issuecomment-15269-write" data-preview="issuecomment-15269-preview" data-update-url="/diogo/gnu-social/comments/15269" data-context="/diogo/gnu-social"></div>
- </div>
-
- </div>
- </div>
-
-
-
-
-
- <div class="comment" id="issuecomment-15270">
- <a class="avatar" href="/diogo">
- <img src="/avatars/12290">
- </a>
- <div class="content">
- <div class="ui top attached header">
- <span class="text grey"><a href="/diogo">Diogo Cordeiro</a> commented <a href="#issuecomment-15270"><span class="time-since" title="Tue, 23 Jul 2019 22:27:22 UTC">1 year ago</span></a></span>
- <div class="ui right actions">
-
- <div class="item tag">
-
- Owner
-
- </div>
-
-
- </div>
- </div>
- <div class="ui attached segment">
- <div class="render-content markdown has-emoji">
-
- <p>Relevant commits:</p>
- <ol>
- <li> <code><a href="https://notabug.org/diogo/gnu-social/commit/4cee29ab5c1317f1794ae45dc85591670ad15d06" rel="nofollow">4cee29ab5c</a></code></li>
- <li> <code><a href="https://notabug.org/diogo/gnu-social/commit/af31848400531406a18cacc66b1f4b8753254568" rel="nofollow">af31848400</a></code></li>
- </ol>
- <p>1.</p>
- <blockquote>
- <p>[CORE] Move core plugins to a new modules directory</p>
- <p>For reference (raised by rozzin in IRC):</p>
- <ul>
- <li><a href="http://foldoc.org/module" rel="nofollow">http://foldoc.org/module</a></li>
- <li><a href="http://foldoc.org/library" rel="nofollow">http://foldoc.org/library</a></li>
- <li><a href="http://foldoc.org/plugin" rel="nofollow">http://foldoc.org/plugin</a></li>
- </ul>
- <p>As noted by XRevan86, modules are not necessarily non-essential.
- As we will keep the modules directory in GS root [therefore, near to
- plugins/], it is evidenced the difference between both.</p>
- <p>This is a simple yet fundamental structural change. It doesn't change
- functionality but makes clearer the way we understand GNU social's
- internals.</p>
- </blockquote>
- <p>2.</p>
- <blockquote>
- <p>[CORE] Refactor Plugin API to Module API</p>
- </blockquote>
-
- </div>
- <div class="raw-content hide">Relevant commits:
- 1. https://notabug.org/diogo/gnu-social/commit/4cee29ab5c1317f1794ae45dc85591670ad15d06
- 2. https://notabug.org/diogo/gnu-social/commit/af31848400531406a18cacc66b1f4b8753254568
- 1.
- > [CORE] Move core plugins to a new modules directory
- >
- > For reference (raised by rozzin in IRC):
- >
- > * http://foldoc.org/module
- > * http://foldoc.org/library
- > * http://foldoc.org/plugin
- >
- > As noted by XRevan86, modules are not necessarily non-essential.
- > As we will keep the modules directory in GS root [therefore, near to
- > plugins/], it is evidenced the difference between both.
- >
- > This is a simple yet fundamental structural change. It doesn't change
- > functionality but makes clearer the way we understand GNU social's
- > internals.
- 2.
- > [CORE] Refactor Plugin API to Module API
- </div>
- <div class="edit-content-zone hide" data-write="issuecomment-15270-write" data-preview="issuecomment-15270-preview" data-update-url="/diogo/gnu-social/comments/15270" data-context="/diogo/gnu-social"></div>
- </div>
-
- </div>
- </div>
-
-
-
-
-
- <div class="event">
- <span class="octicon octicon-circle-slash"></span>
- <a class="ui avatar image" href="/diogo">
- <img src="/avatars/12290">
- </a>
- <span class="text grey"><a href="/diogo">diogo</a> closed <a id="event-15271" href="#event-15271"><span class="time-since" title="Tue, 23 Jul 2019 22:27:22 UTC">1 year ago</span></a></span>
- </div>
-
-
-
-
- <div class="ui warning message">
- <a href="/user/login?redirect_to=/diogo/gnu-social/issues/32">Sign in</a> to join this conversation.
- </div>
-
- </ui>
- </div>
- <div class="four wide column">
- <div class="ui segment metas">
- <div class="ui disabled floating jump select-label dropdown">
- <span class="text">
- <strong>Labels</strong>
- <span class="octicon octicon-gear"></span>
- </span>
- <div class="filter menu" data-action="update" data-update-url="/diogo/gnu-social/issues/32/label">
- <div class="no-select item">Clear labels</div>
-
- <a class=" item" href="#" data-id="1564" data-id-selector="#label_1564"><span class="octicon "></span><span class="label color" style="background-color: #fbca04"></span> bounty</a>
-
- <a class=" item" href="#" data-id="1483" data-id-selector="#label_1483"><span class="octicon "></span><span class="label color" style="background-color: #ee0701"></span> bug</a>
-
- <a class=" item" href="#" data-id="1484" data-id-selector="#label_1484"><span class="octicon "></span><span class="label color" style="background-color: #cccccc"></span> duplicate</a>
-
- <a class=" item" href="#" data-id="1485" data-id-selector="#label_1485"><span class="octicon "></span><span class="label color" style="background-color: #84b6eb"></span> enhancement</a>
-
- <a class=" item" href="#" data-id="1486" data-id-selector="#label_1486"><span class="octicon "></span><span class="label color" style="background-color: #128a0c"></span> help wanted</a>
-
- <a class=" item" href="#" data-id="1487" data-id-selector="#label_1487"><span class="octicon "></span><span class="label color" style="background-color: #e6e6e6"></span> invalid</a>
-
- <a class=" item" href="#" data-id="1488" data-id-selector="#label_1488"><span class="octicon "></span><span class="label color" style="background-color: #cc317c"></span> question</a>
-
- <a class="checked item" href="#" data-id="1565" data-id-selector="#label_1565"><span class="octicon octicon-check"></span><span class="label color" style="background-color: #d4c5f9"></span> RFC</a>
-
- <a class=" item" href="#" data-id="1841" data-id-selector="#label_1841"><span class="octicon "></span><span class="label color" style="background-color: #0052cc"></span> v3</a>
-
- <a class=" item" href="#" data-id="1489" data-id-selector="#label_1489"><span class="octicon "></span><span class="label color" style="background-color: #ffffff"></span> wontfix</a>
-
- </div>
- </div>
- <div class="ui labels list">
- <span class="no-select item hide">No Label</span>
-
- <div class="item">
- <a class="ui label hide" id="label_1564" href="/diogo/gnu-social/issues?labels=1564" style="color: #000; background-color: #fbca04">bounty</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1483" href="/diogo/gnu-social/issues?labels=1483" style="color: #fff; background-color: #ee0701">bug</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1484" href="/diogo/gnu-social/issues?labels=1484" style="color: #000; background-color: #cccccc">duplicate</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1485" href="/diogo/gnu-social/issues?labels=1485" style="color: #000; background-color: #84b6eb">enhancement</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1486" href="/diogo/gnu-social/issues?labels=1486" style="color: #fff; background-color: #128a0c">help wanted</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1487" href="/diogo/gnu-social/issues?labels=1487" style="color: #000; background-color: #e6e6e6">invalid</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1488" href="/diogo/gnu-social/issues?labels=1488" style="color: #fff; background-color: #cc317c">question</a>
- </div>
-
- <div class="item">
- <a class="ui label " id="label_1565" href="/diogo/gnu-social/issues?labels=1565" style="color: #000; background-color: #d4c5f9">RFC</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1841" href="/diogo/gnu-social/issues?labels=1841" style="color: #fff; background-color: #0052cc">v3</a>
- </div>
-
- <div class="item">
- <a class="ui label hide" id="label_1489" href="/diogo/gnu-social/issues?labels=1489" style="color: #000; background-color: #ffffff">wontfix</a>
- </div>
-
- </div>
- <div class="ui divider"></div>
- <div class="ui disabled floating jump select-milestone dropdown">
- <span class="text">
- <strong>Milestone</strong>
- <span class="octicon octicon-gear"></span>
- </span>
- <div class="menu" data-action="update" data-update-url="/diogo/gnu-social/issues/32/milestone">
- <div class="no-select item">Clear milestone</div>
-
-
- </div>
- </div>
- <div class="ui select-milestone list">
- <span class="no-select item ">No Milestone</span>
- <div class="selected">
-
- </div>
- </div>
- <div class="ui divider"></div>
- <input id="assignee_id" name="assignee_id" type="hidden" value="">
- <div class="ui disabled floating jump select-assignee dropdown">
- <span class="text">
- <strong>Assignee</strong>
- <span class="octicon octicon-gear"></span>
- </span>
- <div class="menu" data-action="update" data-update-url="/diogo/gnu-social/issues/32/assignee">
- <div class="no-select item">Clear assignee</div>
-
- </div>
- </div>
- <div class="ui select-assignee list">
- <span class="no-select item ">No assignee</span>
- <div class="selected">
-
- </div>
- </div>
- <div class="ui divider"></div>
- <div class="ui participants">
- <span class="text"><strong>1 Participants</strong></span>
- <div>
-
- <a href="/diogo">
- <img class="ui avatar image poping up" src="/avatars/12290" data-content="Diogo Cordeiro" data-position="top center" data-variation="small inverted">
- </a>
-
- </div>
- </div>
- </div>
- </div>
- </div>
- <div class="hide" id="edit-content-form">
- <div class="ui comment form">
- <div class="ui top attached tabular menu">
- <a class="active write item">Write</a>
- <a class="preview item" data-url="/api/v1/markdown" data-context="/diogo/gnu-social">Preview</a>
- </div>
- <div class="ui bottom attached active write tab segment">
- <textarea tabindex="1" id="content" name="content"></textarea>
- </div>
- <div class="ui bottom attached tab preview segment markdown">
- Loading...
- </div>
- <div class="text right edit buttons">
- <div class="ui basic blue cancel button" tabindex="3">Cancel</div>
- <div class="ui green save button" tabindex="2">Save</div>
- </div>
- </div>
- </div>
- <div class="hide" id="no-content">
- <span class="no-content">There is no content yet.</span>
- </div>
- </div>
-
- </div>
- </div>
- </div>
- <footer>
- <div class="ui container">
- <div class="ui left">
- <a href="/tos">Terms of Service</a>
- •
- <a href="/about">About us</a>
- •
- <a href="/outages">Outages</a>
- •
- <a href="/hp/gogs/issues">Report a problem</a>
- •
- <a href="/assets/librejs/librejs.html" data-jslicense="1">Javascript licenses</a>
- •
- <a href="/fingerprints">SSH Fingerprints</a>
- </div>
- <div class="ui right links">
-
- <div class="ui language bottom floating slide up dropdown link item">
- <i class="world icon"></i>
- <div class="text">English</div>
- <div class="menu">
-
- <a class="item active selected" href="#">English</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=zh-CN">简体中文</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=zh-HK">繁體中文(香港)</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=zh-TW">繁體中文(臺灣)</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=de-DE">Deutsch</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=fr-FR">français</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=nl-NL">Nederlands</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=lv-LV">latviešu</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=ru-RU">русский</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=ja-JP">日本語</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=es-ES">español</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=pt-BR">português do Brasil</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=pl-PL">polski</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=bg-BG">български</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=it-IT">italiano</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=fi-FI">suomi</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=tr-TR">Türkçe</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=cs-CZ">čeština</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=sr-SP">српски</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=sv-SE">svenska</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=ko-KR">한국어</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=gl-ES">galego</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=uk-UA">українська</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=en-GB">English (United Kingdom)</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=hu-HU">Magyar</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=sk-SK">Slovenčina</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=id-ID">Indonesian</a>
-
- <a class="item " href="/diogo/gnu-social/issues/32?lang=fa-IR">Persian</a>
-
- </div>
- </div>
-
- </div>
- </div>
- </footer>
- </body>
- <link rel="stylesheet" href="/plugins/highlight-9.6.0/github.css">
- <script src="/plugins/highlight-9.6.0/highlight.pack.js"></script>
- <link rel="stylesheet" href="/plugins/dropzone-4.2.0/dropzone.css">
- <script src="/plugins/dropzone-4.2.0/dropzone.js"></script>
- <script src="/js/libs/emojify-1.1.0.min.js"></script>
- <script src="/js/libs/clipboard-1.5.9.min.js"></script>
-
- </html>
|