No edit summary |
|||
Line 126: | Line 126: | ||
<!-- 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 == |
Revision as of 10:21, 3 December 2010
Maven 3
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.
Owner
- Name: Stanislav Ochotnický
- Email: sochotnicky@redhat.com
Current status
- Targeted release: Fedora 15
- Last updated: 25th November 2011
- Percentage of completion: 75%
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.
Benefit to Fedora
Fedora includes a lot of Java packages, among them:
* Eclipse * Tomcat * Azureus * Freemind (package review closing up)
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".
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
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.
User Experience
Commands mvn2 and mvn2-jpp will be superseded by mvn and (possibly) mvn-jpp. When maven2 package is obsoleted, compatibility symlinks can be created. No user experience change apart from cleaner output from mvn commands (upstream change).
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).
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.
Documentation
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.