#663 Late F16 Feature Java7
Closed None Opened 8 years ago by toshio.

The java maintainers have been working to put the latest openjdk into Fedora which supports java7 rather than java6. Unfotunately, they have not submitted the Feature to FESCo despite many messages to devel list that they must do this as the upgrade must be coordinated with other packagers although a Feature page has been partially completed[1]_

From the messages to devel list, there appears to be some API incompatibilities with this upgrade. Java applications (libraries as well?) built with java7 will not load with the java6 that we are currently shipping[2]_

Apparently there was a buildroot override for a while with the new java. Since the update was submitted on the 23rd, the window of builds that may possibly have been builot with java7 starts then. The update was given +2 karma and automatically submitted for stable on the 24th. On the 26th, I gave it negative karma so it could get fesco review before going into the buildroot (by that time, the original buildroot override had expired). However, bodhi does not take the karma threshhold no longer being exceeded as a reason to unsubmit for stable. So the update went to stable on the 28th[3]_

It would be great if the Java package maintainers would take over this ticket but they haven't submitted this ticket or updated FESCo about the Feature since it was mentioned last month that this needed to go to FESCo[4]_. Since the initial message, mmaslano, pbrobinson, adamw, and I have all reminded them of the need for a Feature Exception for this to go into F16.

As we're past alpha I make the following proposal for FESCo:

1) At the next meeting decide on one of the following three options:
- This Feature is definitely too major to go into F16 at this time. If so, remove the java7 update from f16, figure out which packages are in need of rebuild (since they were built with java7), tell the java maintainers to get their Feature in for F17.
- This Feature should be allowed into F16 despite the late notice. If so, issue a late feature exception, define who is responsible for fixing problems since this feature is late (rbergeron and I talked about when this happens this late in the cycle, it should be the responsibility of the packagers making the change rather than the packagers who own the broken packages and this was mentioned early in the java7 discusion), do a rebuild of java packages to catch things that no longer build or pass their regression tests, let packagers of things depending on java know about the late addition, give a heads up to QA and docs.
- We don't currently have enough information to definitively decide what to do. In this case, I would urge removing the java-1.7.0-openjdk from the stable repository to get it out of the buildroot until a decision is reached (also tell the java maintainers not to make a new buildroot override for it). Set a timeframe in which the java maintainers need to give you the information you require, and once that passes, do all the steps in one of the above two options to make it happen.

.. [1]: http://fedoraproject.org/wiki/Features/Java7
.. [2]
: http://lists.fedoraproject.org/pipermail/devel/2011-August/156110.html
.. [3]: https://admin.fedoraproject.org/updates/java-1.7.0-openjdk-1.7.0.0-0.1.20110803.fc16
.. [4]
: http://lists.fedoraproject.org/pipermail/devel/2011-July/154794.html


As a middle alternative, would it be possible to ship the 1.7.0 version, but not build against it or have it default? This would allow users to test and check compatibility, but not disrupt those who don't wish to do so.

I can't make it today.

I don't agree with Java7 as default. It's too late in development cycle of F-16. Also developers pushed it into F-16 without any announcement, so I'm not sure how much testing was done. -1 for Java7 as default.

It might be good to ship Java7 in F-16 and Java6 as default. Any other solution should be dependent on how much work is it for maintainers of Java packages and for testers.

The email on devel list did list this possibility:

1) Blacklist openjdk 7 from build roots for f16 -- this means that it
doesn't get tested very well, though.
This would only be a short term solution. As soon as a package that needs
Java 7 is added/updated, it will require OpenJDK7 to be removed from the
blacklist.

I'm not sure how that is accomplished, though. The level of testing and the comment about packages needing java 7 can both be reversed to be seen in a better light: java 7 will get more testing than being left out of F16 entirely. Normally, if a package requires a more recent version of a base language, it simply won't ship in Fedora until a Fedora version where the language version is high enough. So these packages woul be available in F17 but not F16.

Replying to [comment:4 toshio]:

The email on devel list did list this possibility:

1) Blacklist openjdk 7 from build roots for f16 -- this means that it
doesn't get tested very well, though.
This would only be a short term solution. As soon as a package that needs
Java 7 is added/updated, it will require OpenJDK7 to be removed from the
blacklist.

I'm not sure how that is accomplished, though. The level of testing and the comment about packages needing java 7 can both be reversed to be seen in a better light: java 7 will get more testing than being left out of F16 entirely. Normally, if a package requires a more recent version of a base language, it simply won't ship in Fedora until a Fedora version where the language version is high enough. So these packages woul be available in F17 but not F16.

Ah okay, then I am fine with it too. That still leaves one issue -- runtime.

If the default 'java' is set to 1.7, packages that absolutely need 1.6 only may break. It can be mitigated by forcing the packages to use Java 1.6.0, but that would require identifying all such packages. I am working on doing just that, but it will take a few days given the sheer # of packages.

I'm afraid I wont make it for the meeting tonight.

It's really late and I am a skeptic but I am willing to give this feature a chance given that
* the maintainers of the affected packages agree
* none of the major applications such as tomcat break
* there is enough manpower to fix the fallout
* it gets sufficient testing

If these conditions are met, consider this a +1, otherwise -1.

Replying to [comment:5 dbhole]:

Ah okay, then I am fine with it too. That still leaves one issue -- runtime.

If the default 'java' is set to 1.7, packages that absolutely need 1.6 only may break. It can be mitigated by forcing the packages to use Java 1.6.0, but that would require identifying all such packages. I am working on doing just that, but it will take a few days given the sheer # of packages.

The approach that would be more inline with how Fedora's Alpha/beta/release schedule is supposed to work would be that openjdk-1.6.0 would be the default. openjdk-1.7.0 would be available for people to try out but otherwise unused. You can continue to press for 1.7.0 as the default since this is an exception request but I would strongly encourage you to show up at this (and subsequent FESCo meetings until this is decided) to explain the rationale.

FESCo meetings occur on Monday at 17:00 UTC

I can't make the meeting but -1 me.

its not even all built in f-17 afaict and hence there's absolutely no idea what the impact would be. if it had already was in rawhide I would be a little more comfortable.

  • AGREED: Remove Provides: java[*] from Java 7, require that all F16
    official updates are built against Java 1.6 (sgallagh, 17:35:47)
  • ACTION: dbhole to update java-openjdk-1.7.0 to remove the Provides:
    (sgallagh, 17:39:03)
  • ACTION: dbhole to file Fedora 17 Feature Page for Java 7 (sgallagh,
    17:40:39)

The package is updated. Thanks.

We still need:

The feature page updated to reflect the current target.

Confirmation that all packages in f16 branched are built with 1.6.0.

dbhole update feature page of Java7
dbhole will write a script for packages built with Java7

Release notes should mention tech preview, nirik?

Revisit next week.

I've created a rel-eng ticket requesting a rebuild of packages that got built with 1.6:

https://fedorahosted.org/rel-eng/ticket/4932

Furthermore, feature page is also updated:
https://fedoraproject.org/wiki/Features/Java7TechPreview

Replying to [comment:12 dbhole]:

I've created a rel-eng ticket requesting a rebuild of packages that got built with 1.6:

s/1.6/1.7

Update from 2011-10-17 FESCo meeting:

  • 663 Late F16 Feature Java7 (notting, 17:04:43)

  • ACTION: dbhole will update the ticket with the 5 remaining items
    (notting, 17:07:52)
  • one of the 5 is libgda, which is ftbfs (notting, 17:07:57)

dbhole, please check the status of the remaining 4 (?) packages and close the ticket if all are OK now.

There was still issues only a couple of days ago with libreoffice. I filed the following bug

https://bugzilla.redhat.com/show_bug.cgi?id=748585

I can't tell from this ticket or from meeting logs immediately if this is actually accepted as a feature. The feature itself is still in the featurepageincomplete category.

Will there be a new feature page filed for F17 to have it as default, so that it can get the proper amount of marketing, documentation, etc?

Re-adding (sorry) the meeting keyword just to get some clarity here.

Sorry it's not clear.

For f16:

  • This is a tech preview only. The java-1.7.0-openjdk package is shipped to allow people to play with it and test their code, etc. No packages are built against it.

For f17:

  • Yes, I think this will be a feature. Everything java will be rebuilt against the 1.7.0 version. I don't know if the feature page needs further consideration before being reviewed/approved.

Hi,

Sorry for the lag. The Toronto Red Hat office moved last week so it was quite hectic around here.

All packages I could find (based on repoquery --whatrequires java and --requires java, and whatever of those were built with OpenJDK7) have now been rebuilt. Once this update is out, everything in F16 will have been built with OpenJDK6:

https://admin.fedoraproject.org/updates/libgda-4.2.8-2.fc16,munin-1.4.6-4.fc16.2,plexus-xmlrpc-1.0-0.7.b4.3.fc16,plexus-digest-1.1-6.fc16,plexus-resources-1.0-0.7.a7.fc16

Please open a bug in Fedora Bugzilla and propose it for F16Blocker. Otherwise, these fixes won't make it into the [fedora] repo (and will instead become 0day [updates] releases).

Ticket is complete. No package exists on the DVD that was built with Java 7, and the remaining few packages are installed net-only, so a zero-day update is sufficient.

Login to comment on this ticket.

Metadata