[Sugar-devel] [FEATURE] Create an adapter that calls the third parties/libraries for better maintainability.

James Cameron quozl at laptop.org
Tue Feb 12 00:28:15 EST 2019


On Mon, Feb 11, 2019 at 10:04:02PM -0600, Alejandro García wrote:
> Let's discard the adapter/shim (main goal is to reduce the dependency). 
> 
> Isn't there anything that we can do to reduce the dependency. Especially with
> Gtk.

What problem are you trying to solve by reducing the dependencies?

> Why aren't CollabWrapper and SugarGame very common between activities?
> Especially CollabWrapper.

Too few maintainers, and no requirement.

CollabWrapper is not required where an activity does not support
collaboration.

SugarGame is not required where an activity does not use Pygame.

> If CollabWrapper is simple, why not expanding it?

I don't understand your question, sorry.

> On Sun, Feb 10, 2019, 10:42 PM James Cameron <[1]quozl at laptop.org wrote:
> 
>     On Sun, Feb 10, 2019 at 08:19:03PM -0600, Alejandro García wrote:
>     > I was thinking something like calling a GtkAdapter.Label(...) instead of
>     > Gtk.Label (...), or a WebKitAdapter.emit_signal (...) instead of
>     > WebKit2.emit_signal (...). 
>     >
>     > Are these examples more clear of what I'm trying to say? 
> 
>     Another word for this is a shim.  An abstraction that only exists to
>     hide version dependencies.
> 
>     We have an example of a WebKit API verson independence shim in Sugar, see
> 
>     [2]https://github.com/sugarlabs/sugar/tree/master/src/jarabe/view
> 
>     viewhelp_webkit1.py is the shim for WebKit.
> 
>     viewhelp_webkit2.py is the shim for WebKit2.
> 
>     viewhelp.py choses which of the shims to use.
> 
>     A disadvantage of shims is huge increase in the number of lines of
>     code to be maintained.
> 
>     We cannot use a shim for GTK 2 and GTK 3 independence, because at the
>     same time the binding moved from static to introspection; PyGObject.
> 
>     > The CollabWrapper and SugarGame projects are closer to what I'm
>     > trying to say.  But not the SugarToolkit, as it creates some
>     > widgets, but if the developer needs more, he will use the Gtk
>     > library directly.
> 
>     Okay.  But to proceed with this idea, you must identify a clear
>     benefit to cover the maintenance cost of adding the shim.
> 
>     Long term, CollabWrapper could be added to the Toolkit, as it has no
>     additional dependencies.
> 
>     Sugargame cannot be added without creating a dependency for Pygame,
>     which is something that has been resisted for some time; Pygame
>     activities often do not adapt well to screen rotation and different
>     display sizes.
> 
>     --
>     James Cameron
>     [3]http://quozl.netrek.org/
>     _______________________________________________
>     Sugar-devel mailing list
>     [4]Sugar-devel at lists.sugarlabs.org
>     [5]http://lists.sugarlabs.org/listinfo/sugar-devel
> 
> References:
> 
> [1] mailto:quozl at laptop.org
> [2] https://github.com/sugarlabs/sugar/tree/master/src/jarabe/view
> [3] http://quozl.netrek.org/
> [4] mailto:Sugar-devel at lists.sugarlabs.org
> [5] http://lists.sugarlabs.org/listinfo/sugar-devel

> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel


-- 
James Cameron
http://quozl.netrek.org/


More information about the Sugar-devel mailing list