Hi Michael,

By symlink, are you referring to a filesystem symlink? If so, this
unfortunately won't solve the problem of identifying which branch/tag of
the ofbiz-plugins repository should be checked out for a continuous
integration build - a problem we are seeing for tagged releases.

Also, I think (but may be wrong) that checkstyle runs against plugin code
as part of the CI process. This means we have to set checkstyle error count
thresholds in ofbiz-framework in such a way that takes ofbiz-plugins into
account. This complicates the decision around what is an acceptable
threshold at any given time. Happily the threshold in trunk is currently 0
(see tasks.checkstyleMain.maxErrors in build.gradle), but when we introduce
a new checkstyle rule we will need to track checkstyle errors in both
ofbiz-framework and ofbiz-pluginsand we work towards being the error count
back to zero.

If the plugins are not really the focus of the ofbiz-framework developers,
should we even include them in the ofbiz-framework CI process at all?
Perhaps we should instead document and provide examples on how an
integrator would retrieve and build a plugin, but remove platform-specific
code - such as pull*PluginSources* - from ofbiz-framework completely.

Interested parties could then augment ofbiz-plugins with a solution to
insert plugin sources into the ofbiz-framework source and trigger a build
accordingly.

If a particular plugin is deemed important enough to the ofbiz-framework
developers - such as the rest-api plugin - then we could port that plugin
to become a component of ofbiz-framework. We would therefore think of
ofbiz-plugins as a contributed code area when components are incubated
before being integrated.

I suppose the broader problem I'm trying to address is that I'm uneasy with
the idea that we ofbiz-framework developers need to ensure the content of a
seperate ofbiz-plugins repository remains compatible with our build checks,
particularly since contributors may not event be aware ofbiz-plugins
exists. (This position of course does not affect the need to maintain our
API for use by plugins/integrations). Bringing a subset of plugins that
need to be supported into the ofbiz-framework repository should address
this problem.

Thanks,

Dan.

On Tue, 5 Mar 2024 at 10:32, Michael Brohl <michael.br...@ecomify.de> wrote:

> Hi Dan,
>
> just a short reply for now: you can easily integrate the plugins using a
> symlink to the plugins repository to check if changes in the framework
> are compatible with the plugins.
>
> The plugins do not get as much support as the core framework and
> applications, I even would call some of them experimental. Some were
> also be switched off because of problems/security issues. They are
> optional enhancements and I think it is the right way to leave them in
> their own repository with one exception.
>
> IMO, the rest-api Plugin should be merged into the framework as a core
> functionality after we have provided the enhancements we have developed
> over the last 2 years (still waiting for me to find time to provide a PR).
>
> For the historical view, I would need more time to dig into the past
> discussions...
>
> Best regards,
>
> Michael Brohl
>
> ecomify GmbH - www.ecomify.de
>
> Am 05.03.24 um 09:42 schrieb Daniel Watford:
> > Hello OFBiz developers,
> >
> > I imagine this topic might be revisiting discussions that pre-date my
> > involvement with OFBiz so I would appreciate it if anyone can offer any
> > historical perspective on the separation of the ofbiz-framework and
> > ofbiz-plugins repository.
> >
> > This is a proposal to merge the HEAD of the trunk branch of the
> > ofbiz-plugins repository into a directory within the ofbiz-framework
> > repository. We would then use build-time configuration to include or
> > exclude plugins from the build.
> >
> > Currently the ofbiz-plugins repository is maintained by the main OFBiz
> > framework project's developers. As we make changes to a branch in
> > ofbiz-framework, we need to check that plugins continue to build in the
> > corresponding branch of the ofbiz-plugins repository. Having plugins in a
> > separate repository complicates this process and I'm sure it is often
> > overlooked by contributors to the project.
> >
> > Further, our continuous integration processes need to checkout the
> relevant
> > branch from ofbiz-plugins when building ofbiz-framework. We have some
> > platform-specific scripts that carry out this process for us, but they
> are
> > not able to handle CI builds triggered by applying tags to
> ofbiz-framework.
> >
> > Lastly, should an integrator wish to use one or more plugins from the
> > ofbiz-plugins repository in addition to their own plugins, there is some
> > confusion about how they arrange their own code alongside the
> ofbiz-plugins
> > repository.
> >
> > Proposed changes:
> > - Copy repository content from the HEAD of the trunk branch from
> > ofbiz-plugins to a suitable directory in ofbiz-framework. Perhaps this
> > directory should be named ofbiz-plugins to help identify the contents as
> > being maintained by the project.
> > - Modify the build process to exclude the ofbiz-plugins directory from
> the
> > build by default. The ofbiz-plugins directory can be added to the build
> > through a gradle command line argument or setting.
> > - Set code checking thresholds (e.g. checkstyle) to levels that allow
> > inclusion of the new code.
> >
> > Expected benefits:
> > - Contributors can more easily check their changes do not impact on the
> > building of ofbiz-plugins.
> > - The continuous integration builds do not need to run platform-specific
> > scripts to fetch plugin sources since the sources are already part of the
> > default checkout.
> > - Determining which branch/tag from the ofbiz-plugins repository
> > corresponds to the ofbiz-framework branch/tag being built by CI is no
> > longer an issue.
> > - We have one less repository to manage access/issues/PRs for.
> > - The set of ofbiz-plugins will have more visibility among OFBiz
> developers
> > - perhaps helping us decide which plugins the project no longer wishes to
> > be responsible for and should be removed from ofbiz-framework. These
> > plugins can be spun off into their own repository by any interested
> > maintainers.
> >
> > Possible negatives:
> > - The ofbiz-framework repository size will increase due to additional
> code.
> > I'm not sure this is a major issue, particularly since the number of
> > contributions to ofbiz-plugins is low these days.
> > - The build process is more complicated for users wishing to include
> > plugins. We can mitigate this by documenting the (hopefully) single
> > modification needed to include ofbiz-plugins into the build.
> > - We undo whatever benefit was achieved by having a separate
> ofbiz-plugins
> > repository in the first place.
> >
> > I'm sure there will be other benefits and negatives to consider. Please
> let
> > me know what you think.
> >
> > Thanks,
> >
> > Dan.
> >
>


-- 
Daniel Watford

Reply via email to