#260 Draft: New Java guidelines draft
Closed: Fixed None Opened 7 years ago by msrb.

Java SIG has agreed on submitting new Java Packaging Guidelines draft for FPC review/vote: https://fedoraproject.org/wiki/User:Msrb/JavaPackagingDraft

Log from Java-SIG meeting: http://meetbot.fedoraproject.org/fedora-meeting/2013-02-26/java_sig.2013-02-26-16.02.log.html

Diff from current guidelines:

A quick summary of changes:
- under specific circumstances, JAR file can be now installed to %{_javadir}/%{name}/ under its usual name
- remove "compatibility package" example (example wasn't correct anyway)
- Apache Maven section now describe new macros, their usage and examples. These macros simplify packaging of Maven artifacts and they should be used in Fedora 19 and newer.
- information on packaging Maven artifacts in older Fedora versions (<19) were moved to the new section "Older packaging techniques"

New Java Guidelines Currently at (+1: 4, 0: 2, -1: 0); voting to continue in the ticket

In favor thus far: geppetto, limburgher, rdieter, toshio
abstained so far: tibbs, racor

Need votes from: SmootherFr0gZ, Rathann, spot

I couldn't attend the meeting but I want to comment on a few things to clarify for those that haven't voted and reassured those that have.

We basically have 1 goal with this change: Simplify Maven packages to the point they are trivial but keep the spirit of core packaging principles & Fedora values.

We haven't included anything about the effective poms issue in the guidelines for several reasons:
1. it's mostly implementation detail
2. it's irrelevant for 99.9% of packages and the rest should try them anyway (since their dep chains will be small, potential rebuilds should be quick).

Alex & Mikolaj have been working for 4 days tossing various ideas back and forth and each one of them had serious limitations/complications either for Maven packaging or on the side of flexibility in case things go South. The issue wasn't ignored, on the contrary. But putting all those discussions into guidelines doesn't make sense. We'd either capture all of reasoning in a long text noone would read or we'd make serious omissions all the while confusing people.

We are also planning restructuring/reworking the guideline text, perhaps splitting it into sub-pages (one common, one per buildsystem). We know there are parts which basically contradict each other. We are working on it but we don't want to introduce functional changes & restructuring at the same time. Functional changes had priority at this time.

People packaging for a while know how situation evolved over time. For example current requires generators will generate requires for jpackage-utils (package providing base directory structure) so there is no need for most Java packages to have Requires: jpackage-utils. Packages that do not provide Maven pom files/dependency mappings will need that requires though so it's still in template.

There are multiple things like that and we will address them (i.e. we'll give you more work to do :-D). I don't ask you to blindly trust us, but I believe we (as a group) had made serious progress over years and we want to continue those improvements. We had multiple proposals and "improvements" over time that never made it to FPC because Java SIG didn't deem them as ready/good for Fedora.

With spot's vote, that brings us to +1: 5 which is enough to pass. I'll update the guidelines.


Announcement text:
"Java Guidelines have been updated with macros that simplify packaging on F19+, a specific circumstance where JAR files can be now installed to %{_javadir}/%{name}/ under its usual name, and other cleanups proposed by the Java SIG."

Metadata Update from @toshio:
- Issue assigned to spot

3 years ago

Login to comment on this ticket.