Developpez.com

Le Club des Développeurs et IT Pro

Le JDK 9 entre dans la deuxième phase de correction de bogues

Dernière étape avant la sortie de la première release candidate prévue pour le 22 juin

Le 2017-03-21 11:53:05, par Michael Guilloux, Chroniqueur Actualités
Maintes fois retardé par le projet Jigsaw, le JDK 9 se dirige maintenant tout droit vers une version stable. En janvier, Mark Reinhold d’Oracle a annoncé que les fonctionnalités ont été gelées ; ce qui signifie qu’à ce stade, seules les petites améliorations à faible risque qui ajoutent de petites fonctionnalités manquantes ou qui améliorent l'utilisabilité sont susceptibles d’être approuvées, en particulier lorsque les commentaires des développeurs le justifient.

Le gel des fonctionnalités annonçait également le début de la première phase des tests pour le JDK 9 (Rampdown Phase 1). Deux mois après, l’architecte en chef du JDK chez Oracle, Mark Reinhold, revient pour annoncer que la deuxième phase de test (Rampdown Phase 2) a démarré, conformément au calendrier établi. L'objectif de ce processus est avant tout de s'assurer que les bogues bloquants pour la sortie du JDK 9 soient corrigés. Après, pour les autres bogues qui étaient censés être corrigés, mais qui ne pourront pas l’être, il s’agira de comprendre pourquoi cela ne sera pas fait. Mark Reinhold a donc défini les objectifs spécifiques suivants :

  • corriger tous les bogues P1-P2 qui sont nouveaux dans le JDK 9 et critiques pour la réussite de cette version ;
  • différer explicitement les bogues P1-P2 qui sont nouveaux dans le JDK 9, mais qui ne sont pas critiques pour cette version ou qui ne peuvent pas, pour une bonne raison, être corrigés dans cette version ;
  • laisser la correction de tous les bogues P1-P2 qui ne sont pas nouveaux dans le JDK 9 et qui ne sont pas critiques pour cette version, mais qui étaient auparavant ciblés pour le JDK 9. Dans ce cas, ils doivent être supprimés de la liste des bogues à corriger ou être affectés à une version future.

Les bogues P3-P5 dont les corrections affectent uniquement les tests, la documentation ou les démos pourront être corrigés jusqu’à la sortie de la première build candidate. En ce qui concerne les bogues P3-P5 dont les corrections pourraient affecter le code du JDK 9, leurs corrections seront reportées aux futures versions.

Encore une fois, Reinhold a exhorté les responsables de correction des bogues à ne pas changer la priorité d'un bogue afin de le retirer de la liste. « La priorité d'un bogue devrait refléter l'importance de le corriger indépendamment d’une version particulière, comme cela a été une pratique courante pour le JDK depuis de nombreuses années », dit-il. Pour s’assurer que les correctifs soient intégrés dans le JDK sans risque, il est également demandé aux responsables de correction des bogues de soumettre leurs correctifs à des leads désignés pour demander leur approbation des correctifs avant leur intégration.

Si la phase Rampdown 2 a démarré, les objectifs spécifiques sont soumis à discussion jusqu’au 23 mars et c’est ce processus qui sera utilisé « s’il n’y a aucune objection sérieuse ». Après cette phase, la prochaine étape majeure conformément au calendrier sera la sortie de la dernière Release Candidate (RC) du JDK 9, attendue le 7 juillet prochain, suivie de la sortie de la version stable, le 27 juillet. Mais bien avant la dernière RC, il y aura une ou plusieurs builds candidates. La première est prévue pour le 22 juin prochain.

Source : OpenJDK Mailing List
  Discussion forum
85 commentaires
  • Mickael_Istria
    Membre émérite
    Envoyé par Vyrob
    Y a un truc qui m'échappe : pourquoi se manifestent-ils seulement maintenant, à 3 mois de la release ? Le projet Jigsaw ne date pourtant pas d'hier.
    Il faut lire les posts detailles et les discussions en lien.
    Les inquietudes vis-a-vis de Jigsaw et de son interet technique et pour la communaute ont ete manifestees par tous des le debut. La compatibilite avec OSGi ou Maven a ete identifiee comme critique tres tot. Maitenant que Jigsaw a atteint un "pallier", il a ete teste dans ces environnements (OSGi et Maven) et il apparait qu'en l'etat actuel, ca complique tout sans ajouter grand chose. En l'etat actuel, il ne delivre pas les promesses qui ont ete identifiees initialement comme des "requirements".
    Si l'annonce n'est publiee que maintenant, c'est qu'avant, il y avait encore de l'espoir que ca tourne mieux; mais maintenant, Jigsaw est face a un constat d'echec programme, et il est donc temps d'etre plus explicite si on veut que les choses aillent dans le bon sens.

    Le principal avantage sera la taille en mémoire de la JVM qui va considérablement baisser.
    Si par memoire tu entends "espace disque du deliverable", OK. Pour la RAM ou le Heap ca ne devrait pas changer grand chose car les classloaders ne chargent deja que ce qui est utile.
  • Matthieu Vergne
    Expert éminent
    La prédiction n'a jamais été une science exacte, d'une part, et d'autre part la manie d'établir des dates de rendu même quand on n'en sait fichtrement rien n'aide pas à ce qu'elles soient respectées. Dans ces conditions, on a beau faire ce qu'on peut, il ne faut pas s'étonner que ça arrive.
  • adiGuba
    Expert éminent sénior
    Envoyé par Matthieu Vergne
    Et c'est où qu'il prend en compte ce qui est faisable en interne ? Parce que bon, copier les autres a ses avantages, mais si c'est pour avoir en pratique le même rythme et se contenter de sortir des versions qui sont juste de moins en moins boguées, les utilisateurs resteront au rythme habituel pour éviter de perdre leur temps, en se contentant d'ignorer les versions intermédiaires.
    L'intérêt c'est que les versions intermédiaires pourront proposer de nouvelles fonctionnalités plus "simple", sans avoir à dépendre du temps de développement trop important d'une autre fonctionnalités.

    Par exemple si cela aurait été le cas on aurait déjà pu avoir le REPL, HttpClient avec support d'HTTP2, l'évolution de la classe Process, etc.

    Envoyé par Matthieu Vergne
    Ce qui veut dire qu'à terme il n'en restera qu'un seul. L'objectif, si on lit entre les lignes, et de supprimer l'un des deux. La question est alors de savoir lequel. Je vous le laisse en mille. Reste à voir ensuite l'évolution que ça engendrera, style pas en arrière sur les licences avec celui qui reste. En surface, ça semble génial, mais où sont les garanties ?
    Moi je vois plutôt çà dans le sens où çà leur permettra de proposer plus facilement leur JDK commerciale.

    S'ils tuent l'OpenJDK ils se prendront un gros bad-buzz, se retrouveront éjecté des distributions, et risqueraient de voir un fork...

    Envoyé par ParseCoder
    Dommage qu'Oracle n'ai pas choisit une license aussi libérale que la license du .NET Compiler Platform (Roslyn).
    C'est à dire ?
    On est sur du GPLv2 là je ne vois pas où est le problème...

    a++
  • kilroyFR
    Membre éprouvé
    Oracle ne faisant rien sans arriere pensée (il faut bien payer l'ile de l'insatiable ellison), du business, rien que du business dans cette strategie.
  • Uther
    Expert éminent sénior
    Envoyé par Matthieu Vergne
    La position que je prend est plus celle du questionnement : qu'est-ce qui empêcherait Oracle de prendre de telles mesures aux dépends de la communauté ? À l'heure actuelle, je ne vois pas de garantie qui permette de se dire "ça c'est une bonne chose". J'ai l'impression qu'à l'heure actuelle, c'est plus une question de pari/confiance.
    On peut toujours ce méfier, mais cette question n'a rien de particulier à la situation. On peut tout a fait la poser pour n'importe quel langage/société. Il n'y a pas plus de raison d'être sceptique qu'envers Microsoft, Google, Apple, Redhat, ...
  • Vyrob
    Membre régulier
    Y a un truc qui m'échappe : pourquoi se manifestent-ils seulement maintenant, à 3 mois de la release ? Le projet Jigsaw ne date pourtant pas d'hier.
  • bouye
    Rédacteur/Modérateur
    Erf, a deux mois de la sortie planifiée et déjà repoussée de nombreuses fois, c'est limite ridicule...
  • Matthieu Vergne
    Expert éminent
    Je viens d'ailleurs de terminer de lire un chapitre à ce sujet :
    Dunning, David. «*Prediction: The Inside View*». In Social psychology: handbook of basic principles, édité par Arie W. Kruglanski et E. Tory Higgins, 2nd ed., 69‑90. New York: Guilford Press, 2007.

    En résumé : l'homme est une machine à prédire de la merde, mais ça se soigne.
  • sekaijin
    Expert éminent
    Bonjour,

    Java9 semble s'approcher. J'utilise Karaf de longue date et après avoir relu le sujet, je pense que la notion de module de java9 et de module de OSGI sont suffisamment différentes pour ne pas être contradictoires.

    J'ai vu que beaucoup de questions se posaient autour des deux notions de module.
    De que j'ai conclus des mes essais avec le jdk9 et de mon expérience Karaf c'est que nous ne sommes pas du tout dans le même scope, bien qu'il y ait des usages qui se recouvre.

    Je veux faire une application découpée en modules pour faciliter l'évolution la maintenance, etc. Mais que je lance comme un tout. Dans ce cas tant la notion de module de java9 que celle de OSGI peuvent faire l'affaire.

    Je veux une application qui fonctionne comme un conteneur dans lequel je veux déployer des modules à la volée en arrêter les relancer les supprimer, etc. je veux qu'ils puissent interagir, se reconnaitre, etc. là le jdk9 ne le permet pas.

    Pour moi l'apport de la modularité dans java9 permet essentiellement d'obtenir un runtime adapté au besoin de l'application. de définir des sous-ensembles réutilisables d'appli en appli. Alors que OSGI est plus un conteneur, et/ou un système de plug-in à chaud.

    Je vais donc continuer à utiliser Karaf, aider à le faire fonctionner sur java 9. quant à l'usage que je fais du tout forcément se posera la question module java9 ou bundle OSGI. ce qui semble se dessiner c'est que les librairies de base vont probablement devenir des modules java9 alors que les composants de l'application resteront des bundles.

    A+JYT
  • Matthieu Vergne
    Expert éminent
    Envoyé par Michael Guilloux
    « En m’appuyant sur les modèles de publication utilisés par d'autres plateformes et par diverses distributions de système d'exploitation, je propose qu'après Java 9, nous adoptions un modèle strict et basé sur le temps avec une nouvelle version de fonctionnalités tous les six mois, des mises à jour chaque trimestre et une LTS tous les trois ans », peut-on lire dans son billet.
    Et c'est où qu'il prend en compte ce qui est faisable en interne ? Parce que bon, copier les autres a ses avantages, mais si c'est pour avoir en pratique le même rythme et se contenter de sortir des versions qui sont juste de moins en moins boguées, les utilisateurs resteront au rythme habituel pour éviter de perdre leur temps, en se contentant d'ignorer les versions intermédiaires.

    Envoyé par Michael Guilloux
    L'objectif est de rendre l'OpenJDK et le JDK d'Oracle interchangeables. « Bien que nous sachions qu'il y aura d'abord des différences, notre intention est que, après quelques versions, il n'y ait plus de différences techniques entre les builds OpenJDK et les binaires Oracle JDK », a déclaré Smith.
    Ce qui veut dire qu'à terme il n'en restera qu'un seul. L'objectif, si on lit entre les lignes, et de supprimer l'un des deux. La question est alors de savoir lequel. Je vous le laisse en mille. Reste à voir ensuite l'évolution que ça engendrera, style pas en arrière sur les licences avec celui qui reste. En surface, ça semble génial, mais où sont les garanties ?