Lilianne E. Blaze wrote:
Hello,
Vincent Massol wrote:
On Jun 13, 2008, at 11:17 AM, Lilianne E. Blaze
wrote:
> Hello,
>
> Vincent Massol wrote:
>>> 2) It needed mailsender plugin moved from plugins module to core
>>> module
>>> to avoid circulars and other nasties.
>> We need to find a solution for this since we'd like to keep the
>> modules separate. This is actually our current effort: modularize
>> XWiki and move everything to components.
>>
>> One solution for now could be to set a dependency on the last
>> released
>> version of core with a provided scope.
> I'm not sure I get it. MailSender depending on Core isn't the problem.
> The problem is Core depending on MailSender to get the glue code in
> XWiki.sendMessage working.
xwiki-core SNAPSHOT --> mailsender plugin SNAPSHOT version
mailsender --> xwiki-core LATEST (i.e. 1.5M1 or 1.4.1)
Make Core snapshot
depend on Mailsender snapshot and Mailsender snapshot
depend on Core latest? Isn't that... unhealthy?
I'm not sure my solution works with maven. It
might still create a
circular dep but it's worth verifying it.
I'm not sure either if it's
possible, I only recently started using Maven.
But even if it is possible, it _will_ create a circular, and with
different versions it's even more nasty. Having to build a previous
version to build current version? It sounds more hackish than Windows'
leaked alpha version. It should be possible to just check out the
current version source and then build it on- or offline.
Not exactly, as you
don't have to build a previous core. A released version is never built, it is
taken from the repository. So like you depend on a released (final and public)
commons-logging-1.1.1, you depend on a released (final and public) xwiki-core-1.4.1,
which will not
be used except when building, because it is declared as "provided", which means
that a compatible
version will be available where the plugin will be used. This "provided" scope
is used to allow
plugins to be reused with different core versions, as otherwise we would need to
re-release each
plugin whenever we release core.