Java 10 : Versionnage basé sur le temps pour des mises à jour biannuelles prévisibles
JEP 322 — Versionnage basé sur le temps (Time-Based Release Versioning)
Depuis Java 10, Oracle impose un modèle de versionnage strict basé sur le temps. Une version majeure sort tous les 6 mois (mars et septembre). Les versions sont classées en trois catégories :
- Feature Release (version de fonctionnalités) : contient nouvelles fonctionnalités langage, JVM, API, suppressions/dépréciations. Calendrier fixe ; les fonctionnalités non prêtes passent au train suivant.
- Update Release (version de mise à jour) : corrections de bugs, failles de sécurité, régressions. Une par trimestre (janvier, avril, juillet, octobre). Chaque Feature Release reçoit deux Update Releases avant la suivante.
- LTS Release (Long Term Support) : annoncée tous les 3 ans (depuis septembre 2018). Support et mises à jour pendant 3 ans. Destinée aux entreprises en production.
Format de version
$FEATURE.$INTERIM.$UPDATE.$PATCH
| Composant | Signification |
|---|---|
$FEATURE | Numéro de version majeure (incrémenté à chaque Feature Release). Pour Java 10 : 10. |
$INTERIM | Version intermédiaire (correctifs, améliorations, sans rupture API). 0 pour une Feature Release. |
$UPDATE | Numéro de mise à jour après la Feature Release. Ex: Java 10.0.1 (avril 2018), 10.0.2 (juillet 2018)... |
$PATCH | Version d'urgence pour problème critique. |
Exemple : lire la version à l'exécution
public class Tester {
public static void main(String[] args) {
Runtime.Version version = Runtime.version();
System.out.printf("feature: %d%n interim: %d%n update: %d%n patch: %d%n",
version.feature(), version.interim(), version.update(), version.patch());
}
}
Sortie typique (Java 10.0.2) :
feature: 10
interim: 0
update: 2
patch: 0
Ce modèle apporte de la prévisibilité aux entreprises pour planifier leurs migrations et mises à jour.
Java
- Maîtriser les opérateurs Java : Types, syntaxe et exemples pratiques
- Commentaires Java : Types, utilisation et bonnes pratiques
- Maîtriser la boucle for améliorée en Java : Syntaxe, exemples et bonnes pratiques
- Maîtriser les chaînes de caractères en Java : Création, méthodes et bonnes pratiques
- Maîtriser les interfaces Java : concepts, implémentation et bonnes pratiques
- Maîtriser les classes internes anonymes en Java : définition, syntaxe et exemples pratiques
- Maîtriser le try-with-resources Java : gestion automatique des ressources expliquée
- Annotations Java expliquées : types, placement et exemples pratiques
- Assertions Java : guide pratique pour détecter les bugs et assurer la fiabilité du code