Hello Jacques, Taher and Michael,

I am realizing that I have overreacted to Jacques question by turning it
into a vague (not that constructive) debate about extension mechanism
for providing plugins.

I think the question of removing push/pull/removePlugin* commands should
be post-poned when (1) a viable alternative is ready to use and adapted
to non-technical savy users, or (2) nobody want to devote time to fixing
issues related to those commands.

Since neither (1) or (2) is currently the case I retract my suggestion
and +1 for Jacques solution.  Sorry for letting my frustration regarding
OFBiz extensibility influenced my initial answer.

Kind regards,

Taher Alkhateeb <slidingfilame...@gmail.com> writes:

> If you study the plugin system implementation, you will notice that it
> is based on maven for dependency resolution, which already takes care
> of many of the details you mentioned, especially with respect to
> dependency management. The way it is designed avoids reinventing the
> wheel by using something that already solves the problem. Now granted
> it is incomplete, that doesn't mean it's a bad idea, It's just
> incomplete. And part of the complexity by the way, is deficiencies in
> the architecture of OFBiz itself. The concept of a "component" needs
> to improve and better utilization of the subproject architecture would
> greatly improve this.
>
> I don't have a problem with removing whatever you feel like removing.
> I only propose a more thorough assessment before shrugging it off as
> "too complex" or "poor". Dependency management by design is complex.
> And using Jar libraries or any other solution will not make it easier,
> quite the opposite. It does not matter whether it lives in the build
> system or somewhere else (although I personally prefer the build
> system). The important thing is how to architect it to solve your
> problems.
>
> Anyway, I have no further input on this, please feel free to discuss
> this with the rest of the folks and reach whatever decision you feel
> like heading to.
>
> On Tue, Nov 12, 2019 at 1:26 PM Mathieu Lirzin
> <mathieu.lir...@nereide.fr> wrote:
>>
>> Taher Alkhateeb <slidingfilame...@gmail.com> writes:
>>
>> > I'm not sure I see this issue with the same perspective. Having the
>> > build system automatically download (and run some code) for a certain
>> > component is a convenience especially for the community components.
>> > Things are even easier when using git as there are many plugins to
>> > support that. I'm also not sure what is "poor" about that
>>
>> I agree that having the “build system” downloading things automatically
>> is convenient and desirable. But IMO what we should mean by a build
>> system is Gradle (or Maven, SBT, Leinigen, ...) not “OFBiz pretending to
>> be a build system ontop of Gradle”.
>>
>> Let me clarify what I mean by “OFBiz build system doing things poorly”.
>> There are a lot a important features that people would expect from a
>> tool downloading/installing plugins (a.k.a package manager) that are
>> missing like for example:
>>
>> - having a manifest listing the installed plugins with their version
>> - removing unneeded dependencies when uninstalling a plugin,
>> - having a way to upgrade an install plugin (automatically upgrading its 
>> dependencies if needed).
>> - Ensuring that the plugin is compatible with the framework version
>> - Resolve plugin version mismatchs consistently (A depends on B-0.1 and C 
>> depends on B-0.2 => use B-0.2)
>> - Having a shared cache for already downloaded dependencies.
>>
>> One could then say “we just need to implement those features” to do
>> things properly. But having some experience with in the domain of
>> package managers, I know that things are too *complex* for us OFBiz
>> developpers to mess with that.  This is why I am proposing to remove the
>> push/pull/remove commands and advocate towards working on the adoption
>> of existing distribution interfaces like Jar libraries (See work done in
>> OFBIZ-11161 [1]).
>>
>> [1] https://issues.apache.org/jira/browse/OFBIZ-11161
>>
>> > On Mon, Nov 11, 2019 at 10:37 PM Mathieu Lirzin
>> > <mathieu.lir...@nereide.fr> wrote:
>> >>
>> >> Hello,
>> >>
>> >> Jacques Le Roux <jacques.le.r...@les7arts.com> writes:
>> >>
>> >> > I propose that waiting for plugins Maven repos we simply continue to
>> >> > use Svn through Github as I explained elsewhere
>> >>
>> >> No need to wait for Maven plugins before acting responsibly. :-)
>> >>
>> >> A preferable solution would be to simply remove the
>> >> ‘push/pull/removePlugin*’ stuff from our build system which is the
>> >> reason why we are discussing keeping this “Github SVN” hack initially.
>> >>
>> >> IMO people can manage their plugins more conveniently by directly
>> >> running the “installation” command of their choice ‘git clone’, ‘svn
>> >> checkout’, ‘ln -s’, ... in their plugins directory without needing OFBiz
>> >> build system to do it poorly for them.
>> >>
>> >> > Le 07/11/2019 à 14:00, Gil Portenseigne a écrit :
>> >> >> Hello Deepak, all,
>> >> >>
>> >> >> I do not have a strong opinion about separating plugins into 
>> >> >> independent
>> >> >> git repositories but here are my thought :
>> >> >>
>> >> >> Plugins integration in OFBiz is intended to be used with a maven
>> >> >> repository that hosts the plugin releases for the users. See as a
>> >> >> reference the ‘OFBiz Plugins tasks’ or README.adoc about ‘OFBiz plugin
>> >> >> system’.
>> >> >>
>> >> >> We did not implemented an official maven repository for plugin 
>> >> >> releases,
>> >> >> so there is no simple way to install a plugin without using VCS. There
>> >> >> might be tasks to be done to have an nice answer to how an user can
>> >> >> install a sole plugin from a downloaded release archive.
>> >> >>
>> >>
>> >> --
>> >> Mathieu Lirzin
>> >> GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37
>>
>> --
>> Mathieu Lirzin
>> GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37

-- 
Mathieu Lirzin
GPG: F2A3 8D7E EB2B 6640 5761  070D 0ADE E100 9460 4D37

Reply via email to