Features/Maven3

From FedoraProject

< Features(Difference between revisions)
Jump to: navigation, search
(Created page with '{{admon/important | Set a Page Watch| Make sure you click ''watch'' on your new page so that you are notified of changes to it by others, including the Feature Wrangler}} {{admo...')
 
(Current status)
 
(11 intermediate revisions by 3 users not shown)
Line 26: Line 26:
 
== Current status ==
 
== Current status ==
 
* Targeted release: [[Releases/15 | Fedora 15 ]]
 
* Targeted release: [[Releases/15 | Fedora 15 ]]
* Last updated: 25th November 2011
+
* Last updated: 11th February 2011
* Percentage of completion: 75%
+
* Percentage of completion: 100%
  
 
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
 
<!-- CHANGE THE "FedoraVersion" TEMPLATES ABOVE TO PLAIN NUMBERS WHEN YOU COMPLETE YOUR PAGE. -->
Line 53: Line 53:
 
  * Tomcat
 
  * Tomcat
 
  * Azureus
 
  * Azureus
  * Freemind (package review closing up)
+
  * Freemind
  
 
And a lot of their dependencies are using Maven as a build
 
And a lot of their dependencies are using Maven as a build
Line 101: Line 101:
 
their experiences change as a result?  Describe what they will see or
 
their experiences change as a result?  Describe what they will see or
 
notice. -->
 
notice. -->
Commands mvn2 and mvn2-jpp will be superseded by mvn and (possibly)
+
Commands mvn and mvn-jpp will be superseded by mvn3 and (possibly)
mvn-jpp. When maven2 package is obsoleted, compatibility symlinks can
+
mvn3-jpp. When maven2 package is obsoleted, compatibility symlinks can
 
be created. No user experience change apart from cleaner output from
 
be created. No user experience change apart from cleaner output from
 
mvn commands (upstream change).
 
mvn commands (upstream change).
Line 117: Line 117:
 
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
 
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan?  This might be as simple as "None necessary, revert to previous release behaviour."  Or it might not.  If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy.  -->
  
None necessary. Maven 3 is installable in parallel with maven2.
+
None necessary. Maven 3 is installable in parallel with maven2. We can slowly move to use maven 3 to build our packages until we feel comfortable with obsoleting maven2.
  
 
== Documentation ==
 
== Documentation ==
 
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
 
<!-- Is there upstream documentation on this feature, or notes you have written yourself?  Link to that material here so other interested developers can get involved. -->
* [http://maven.apache.org/docs/3.0/release-notes.html| Upstream release notes]
+
* [http://maven.apache.org/docs/3.0/release-notes.html Upstream release notes]
  
 
== Release Notes ==
 
== Release Notes ==
 
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
 
<!-- The Fedora Release Notes inform end-users about what is new in the release.  Examples of past release notes are here: http://docs.fedoraproject.org/release-notes/ -->
 
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
 
<!-- The release notes also help users know how to deal with platform changes such as ABIs/APIs, configuration or data file formats, or upgrade concerns.  If there are any such changes involved in this feature, indicate them here.  You can also link to upstream documentation if it satisfies this need.  This information forms the basis of the release notes edited by the documentation team and shipped with the release. -->
*
+
 
 +
Maven 3.0 should offer better stability and performance compared to previous versions, but the biggest changes shouldn't be noticed by users. Most work has been happening under the hood to simplify writing Maven plugins and further improve performance by building projects in parallel. Users of Maven are encouraged to read [http://maven.apache.org/docs/3.0/release-notes.html Maven 3 release notes].
 +
 
 +
Fedora still provides maven2 package to support backward compatibility where needed.
  
 
== Comments and Discussion ==
 
== Comments and Discussion ==
* See [[Talk:Features/YourFeatureName]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
+
* See [[Talk:Features/Maven3]]  <!-- This adds a link to the "discussion" tab associated with your page.  This provides the ability to have ongoing comments or conversation without bogging down the main feature page -->
  
  
[[Category:FeaturePageIncomplete]]
+
[[Category:FeatureAcceptedF15]]
 
<!-- When your feature page is completed and ready for review -->
 
<!-- When your feature page is completed and ready for review -->
 
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
 
<!-- remove Category:FeaturePageIncomplete and change it to Category:FeatureReadyForWrangler -->
 
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
 
<!-- After review, the feature wrangler will move your page to Category:FeatureReadyForFesco... if it still needs more work it will move back to Category:FeaturePageIncomplete-->
 
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->
 
<!-- A pretty picture of the page category usage is at: https://fedoraproject.org/wiki/Features/Policy/Process -->

Latest revision as of 14:04, 11 February 2011

Important.png
Set a Page Watch
Make sure you click watch on your new page so that you are notified of changes to it by others, including the Feature Wrangler
Note.png
All sections of this template are required for review by FESCo. If any sections are empty it will not be reviewed


Contents

[edit] Maven 3

[edit] Summary

Maven is Java project management, project comprehension and build system tool. It recently reached new major release. Fedora should include Maven 3 since upstream project are already beginning to use its features to build packages.

[edit] Owner

  • Email: sochotnicky@redhat.com

[edit] Current status

  • Targeted release: Fedora 15
  • Last updated: 11th February 2011
  • Percentage of completion: 100%


[edit] Detailed Description

Maven is Java project management, project comprehension and build system tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.

It recently reached new major release that has been re-worked architecturally. New version should offer developers more features, performance improvements and also easier API re-use in other tools.

Upstream developers have working backward compatibility layer with Maven 2.2.1 in place. This means that ideally maven2 package would be obsoleted by new version. This does not have to happen immediately, see Contingency plan.

[edit] Benefit to Fedora

Fedora includes a lot of Java packages, among them:

* Eclipse
* Tomcat
* Azureus
* Freemind

And a lot of their dependencies are using Maven as a build system. Some packages are slowly starting to use Maven 3 features. Unless Fedora includes Maven 3 in repositories, it will be much harder to update these packages to latest version which will prevent Fedora's mission "to lead the advancement of free and open source software and content as a collaborative community".

[edit] Scope

Dependencies of Maven 3 are already in Fedora, maven package is up for review [1].

What needs to be finished is custom resolver of packages from %{_javadir} directory instead of using upstream repositories with binary packages.

Work on custom resolver happens in ssh://fedorapeople.org/~sochotni/public_git/maven-javadir-resolver.git repository on Fedorapeople for now. Due to architectural changes in Maven 3 this resolver is different from one used in Maven 2 and will need more testing. It is already possible to compile several packages with it.

Other work that needs to happen:

  • Maven 3 will be a bit more sensitive to wrong pom filenames. See bugs filed

[edit] How To Test

Building various Java packages with Maven 3 with "custom resolver". Rebuild of all Fedora packages currently using maven2 can be considered as the ultimate test.

[edit] User Experience

Commands mvn and mvn-jpp will be superseded by mvn3 and (possibly) mvn3-jpp. When maven2 package is obsoleted, compatibility symlinks can be created. No user experience change apart from cleaner output from mvn commands (upstream change).

[edit] Dependencies

A lot of java packages are being built by previous (current in Fedora) version. Not all of them have to be buildable with Maven 3 for this feature to be considered complete since current version of maven can be kept around (and is installable in parallel).

[edit] Contingency Plan

None necessary. Maven 3 is installable in parallel with maven2. We can slowly move to use maven 3 to build our packages until we feel comfortable with obsoleting maven2.

[edit] Documentation

[edit] Release Notes

Maven 3.0 should offer better stability and performance compared to previous versions, but the biggest changes shouldn't be noticed by users. Most work has been happening under the hood to simplify writing Maven plugins and further improve performance by building projects in parallel. Users of Maven are encouraged to read Maven 3 release notes.

Fedora still provides maven2 package to support backward compatibility where needed.

[edit] Comments and Discussion