Re: Join "Maven FOSS Repository Extension " for GSOC 2013

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Carlo and Malintha,

I am CCing java-devel so that this information can be easily pointed to
in future, if needed.

> Mikolaj has asked to be co-mentor on this one. He is the author of xmvn,
> which is a similar tool.
> Before we move on, we need to establish the scope of fmvn vs xmvn. If
> there is no differentiation then there is no need to work on fmvn. :-)
> For one I still see the main goal for xmvn to be 'simplifying packaging
> on Fedora' vs fmvn's 'build from a sanctioned repository'.

I think that there are many similarities.  But first let me introduce XMvn.

XMvn is a project with similar, but wider scope than Maven FOSS
Repository Extension (FRE).  You can see its Maven-generated website
[1], git repository [2] and github mirror [3].

I have never used FRE before, but I looked briefly at the code.  From
what I suppose XMvn can do all that FRE can.  A short comparison
follows.


Scope

FRE seems to have a very precise goal: resolve all dependencies from
local repository.  XMvn goes beyond that.  Besides doing what FRE does
XMvn also:

* allows to blacklist some artifacts (whenever they are used as
  dependency or plugin they are removed from POM during validation);
  this is especially useful for plugins (for eg. you don't want to use
  bugreport plugin to build Fedora packages, so it's best to ban it)

* provides MOJO to create JPP-style repository from artifacts in
  reactor (it creates layout that follows Fedora packaging guidelines,
  creating JPP depmap files and so on)

* provides information for building RPMs (like outputing list of files
  so they can be used in RPM %files section, or list of direct
  dependency artifacts that can be used to generate BuildRequires)

* enforce other rules when building projects (for example force
  minimal Java source format; older formats are not supported with
  newer JDKs)

* provides other useful tools (xmvn-resolve, xmvn-bisect)


Implementation details

Both FRE and XMvn are pure-Java implementations.  They both provide
Plexus components that override default Maven components and this way
can redefine standard Maven behaviour.  To ease maintenance XMvn tries
to redefine as few Plexus components as possible and delegate real
work to default Maven components.


Configuration

FRE is configured by defining environmental variables and system
properties.  Configuration of XMvn 0.4.0 and later is specified in XML
format [4].


System-interdependence

Both XMvn and FRE are system-independent.  They can be successfully
used on non-Fedora systems.  (For example I use XMvn on Debian.)


Licensing

XMvn is licensed under ASL 2.0 license, which is exactly the same as
upstream Maven.  FRE is licensed under BSD license.  Although both
licenses are good, in my opinion it's better to keep the same
licensing as Maven itself (i.e. ASL 2.0).


Code style

XMvn uses maven coding guidelines, FRE uses different style.  In my
opinion Maven coding style should be followed when developing
extensions for Maven.


XMvn is already packaged for Fedora (currently F-19+, but could be
easily added to F-17 and later).  It is behind the implementation of
mvn-rpmbuild and mvn-local scripts as well as %mvn_build macro.  All
Maven packages in Fedora 19 and later are built with XMvn.

I think that FRE and XMvn have a lot of similarities.  Instead of
developing and maintaining separate projects we should combine our
efforts.  I am open for discussion, suggestions, RFEs and
contributions.

Because XMvn has more generic approach and it's already packaged and
used in Fedora, I think that any future development should rather
focus on XMvn.

Please let me know what you think and correct me if I'm wrong somewhere
about FRE.  I have never used it before so thanks for understanding.

--
Mikolaj Izdebski
IRC: mizdebsk


[1] http://mizdebsk.fedorapeople.org/xmvn/
[2] http://git.fedorahosted.org/git/xmvn.git
[3] http://github.com/mizdebsk/xmvn
[4] http://mizdebsk.fedorapeople.org/xmvn/site/xmvn-core/config.html
--
java-devel mailing list
java-devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/java-devel





[Index of Archives]     [Red Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]

  Powered by Linux