components:v2modules
no way to compare when less than two revisions
Differences
This shows you the differences between two versions of the page.
| — | components:v2modules [2021/12/08 00:28] (current) – created - external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | **The introduction of Modules in V2** | ||
| + | This is an adapted transcription from a RFC issue concerning the implementation of Modules in GS v2. | ||
| + | |||
| + | 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). | ||
| + | |||
| + | According to rozzin, and I think it was later confirmed by MMN-o: MMN-o had to extract this functionality from core to separate plugins because it was being hard of maintaining GNU social and his sanity at the same time with everything spread around in a spaghetti manner. | ||
| + | |||
| + | Some apparent inconsistencies are: | ||
| + | |||
| + | * The core plugin list has been created in 19 Oct 2013: https:// | ||
| + | * The Favorite plugin was created in 24 Jun 2014: https:// | ||
| + | |||
| + | Diogo presented four options: | ||
| + | |||
| + | 1. Move everything to actual plugins (hard-work, requires making everything actually dynamic); | ||
| + | 2. Re-integrate all the core plugins into core (hard-work, means reverting everything - and would be stupid as it was surely extracted from core on the first place for a reason); | ||
| + | 3. Refactor core plugins to " | ||
| + | 4. Let's forget all of this and do nothing (meh). | ||
| + | |||
| + | About ActivityModeration: | ||
| + | |||
| + | --- | ||
| + | |||
| + | For reference (raised by rozzin): | ||
| + | |||
| + | * http:// | ||
| + | * http:// | ||
| + | * http:// | ||
| + | |||
| + | > 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?" | ||
| + | |||
| + | |||
| + | rozzin: | ||
| + | I think I'd strongly suggest " | ||
| + | mechanism like this. | ||
| + | | ||
| + | But it might make sense to just move the "core modules" | ||
| + | e.g. lib/ | ||
| + | | ||
| + | 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" | ||
| + | | ||
| + | " | ||
| + | |||
| + | XRevan86: | ||
| + | I think " | ||
| + | modules are not necessarily non-essential. | ||
| + | |||
| + | Given that both directories (plugins and modules) would be in GNU social root, and " | ||
| + | |||
| + | includeals> | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | |||
| + | Note: includeals is Diogo' | ||
| + | |||
| + | --- | ||
| + | |||
| + | Key commits of the resulting change from the above discussion: | ||
| + | |||
| + | 1. [[https:// | ||
| + | |||
| + | > [CORE] Move core plugins to a new modules directory | ||
| + | > | ||
| + | > For reference (raised by rozzin in IRC): | ||
| + | > | ||
| + | > * http:// | ||
| + | > * http:// | ||
| + | > * http:// | ||
| + | > | ||
| + | > 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' | ||
| + | > functionality but makes clearer the way we understand GNU social' | ||
| + | > internals. | ||
| + | |||
| + | 2. [[https:// | ||
| + | |||
| + | > [CORE] Move plugin superclasses from /lib/ to / | ||
| + | |||
| + | 3. [[https:// | ||
| + | |||
| + | > [CORE] Plugin API now extends a new Module API | ||
components/v2modules.txt · Last modified: by 127.0.0.1
