<div dir="auto"><div>I want to reduce the impact of an update of a third party in all the activities, avoiding the need of change each activity when it happens. </div><div dir="auto"><br></div><div dir="auto">Examples of what I want to avoid are the activities that were updated from gtk2 to gtk3 and those that still need to be updated.<br><br><br><div class="gmail_quote" dir="auto"><div dir="ltr">On Mon, Feb 11, 2019, 11:28 PM James Cameron <<a href="mailto:quozl@laptop.org" target="_blank" rel="noreferrer">quozl@laptop.org</a> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Mon, Feb 11, 2019 at 10:04:02PM -0600, Alejandro García wrote:<br>
> Let's discard the adapter/shim (main goal is to reduce the dependency). <br>
> <br>
> Isn't there anything that we can do to reduce the dependency. Especially with<br>
> Gtk.<br>
<br>
What problem are you trying to solve by reducing the dependencies?<br>
<br>
> Why aren't CollabWrapper and SugarGame very common between activities?<br>
> Especially CollabWrapper.<br>
<br>
Too few maintainers, and no requirement.<br>
<br>
CollabWrapper is not required where an activity does not support<br>
collaboration.<br>
<br>
SugarGame is not required where an activity does not use Pygame.<br>
<br>
> If CollabWrapper is simple, why not expanding it?<br>
<br>
I don't understand your question, sorry.<br>
<br>
> On Sun, Feb 10, 2019, 10:42 PM James Cameron <[1]<a href="mailto:quozl@laptop.org" rel="noreferrer noreferrer" target="_blank">quozl@laptop.org</a> wrote:<br>
> <br>
>     On Sun, Feb 10, 2019 at 08:19:03PM -0600, Alejandro García wrote:<br>
>     > I was thinking something like calling a GtkAdapter.Label(...) instead of<br>
>     > Gtk.Label (...), or a WebKitAdapter.emit_signal (...) instead of<br>
>     > WebKit2.emit_signal (...). <br>
>     ><br>
>     > Are these examples more clear of what I'm trying to say? <br>
> <br>
>     Another word for this is a shim.  An abstraction that only exists to<br>
>     hide version dependencies.<br>
> <br>
>     We have an example of a WebKit API verson independence shim in Sugar, see<br>
> <br>
>     [2]<a href="https://github.com/sugarlabs/sugar/tree/master/src/jarabe/view" rel="noreferrer noreferrer noreferrer" target="_blank">https://github.com/sugarlabs/sugar/tree/master/src/jarabe/view</a><br>
> <br>
>     viewhelp_webkit1.py is the shim for WebKit.<br>
> <br>
>     viewhelp_webkit2.py is the shim for WebKit2.<br>
> <br>
>     viewhelp.py choses which of the shims to use.<br>
> <br>
>     A disadvantage of shims is huge increase in the number of lines of<br>
>     code to be maintained.<br>
> <br>
>     We cannot use a shim for GTK 2 and GTK 3 independence, because at the<br>
>     same time the binding moved from static to introspection; PyGObject.<br>
> <br>
>     > The CollabWrapper and SugarGame projects are closer to what I'm<br>
>     > trying to say.  But not the SugarToolkit, as it creates some<br>
>     > widgets, but if the developer needs more, he will use the Gtk<br>
>     > library directly.<br>
> <br>
>     Okay.  But to proceed with this idea, you must identify a clear<br>
>     benefit to cover the maintenance cost of adding the shim.<br>
> <br>
>     Long term, CollabWrapper could be added to the Toolkit, as it has no<br>
>     additional dependencies.<br>
> <br>
>     Sugargame cannot be added without creating a dependency for Pygame,<br>
>     which is something that has been resisted for some time; Pygame<br>
>     activities often do not adapt well to screen rotation and different<br>
>     display sizes.<br>
> <br>
>     --<br>
>     James Cameron<br>
>     [3]<a href="http://quozl.netrek.org/" rel="noreferrer noreferrer noreferrer" target="_blank">http://quozl.netrek.org/</a><br>
>     _______________________________________________<br>
>     Sugar-devel mailing list<br>
>     [4]<a href="mailto:Sugar-devel@lists.sugarlabs.org" rel="noreferrer noreferrer" target="_blank">Sugar-devel@lists.sugarlabs.org</a><br>
>     [5]<a href="http://lists.sugarlabs.org/listinfo/sugar-devel" rel="noreferrer noreferrer noreferrer" target="_blank">http://lists.sugarlabs.org/listinfo/sugar-devel</a><br>
> <br>
> References:<br>
> <br>
> [1] mailto:<a href="mailto:quozl@laptop.org" rel="noreferrer noreferrer" target="_blank">quozl@laptop.org</a><br>
> [2] <a href="https://github.com/sugarlabs/sugar/tree/master/src/jarabe/view" rel="noreferrer noreferrer noreferrer" target="_blank">https://github.com/sugarlabs/sugar/tree/master/src/jarabe/view</a><br>
> [3] <a href="http://quozl.netrek.org/" rel="noreferrer noreferrer noreferrer" target="_blank">http://quozl.netrek.org/</a><br>
> [4] mailto:<a href="mailto:Sugar-devel@lists.sugarlabs.org" rel="noreferrer noreferrer" target="_blank">Sugar-devel@lists.sugarlabs.org</a><br>
> [5] <a href="http://lists.sugarlabs.org/listinfo/sugar-devel" rel="noreferrer noreferrer noreferrer" target="_blank">http://lists.sugarlabs.org/listinfo/sugar-devel</a><br>
<br>
> _______________________________________________<br>
> Sugar-devel mailing list<br>
> <a href="mailto:Sugar-devel@lists.sugarlabs.org" rel="noreferrer noreferrer" target="_blank">Sugar-devel@lists.sugarlabs.org</a><br>
> <a href="http://lists.sugarlabs.org/listinfo/sugar-devel" rel="noreferrer noreferrer noreferrer" target="_blank">http://lists.sugarlabs.org/listinfo/sugar-devel</a><br>
<br>
<br>
-- <br>
James Cameron<br>
<a href="http://quozl.netrek.org/" rel="noreferrer noreferrer noreferrer" target="_blank">http://quozl.netrek.org/</a><br>
</blockquote></div>
</div></div>