Sortie de la version 2.1.0 de Ruby

Nous sommes heureux de vous annoncer la sortie de Ruby 2.1.0.

Ruby 2.1.0 comporte de nombreuses améliorations y compris de performances, sans incompatibilités majeures.

Testez la !

Téléchargement

Changements depuis 2.0

Les changements notables sont :

  • VM (method cache)
  • RGenGC (Voir les présentation RubyKaigi et RubyConf 2013 de ko1)
  • refinements #8481 #8571
  • changements de syntaxe
    • Rational/Complex Literal #8430
    • valeur de retour de def #3753
  • Bignum
    • utilisation de GMP #8796
  • String#scrub #8414
  • Socket.getifaddrs #8368
  • RDoc 4.1.0 et RubyGems 2.2.0
  • “literal”.freeze est maintenant optimisée #9042
  • ajout de Exception#cause #8257
  • mise à jour de certaines librairies parmi lesquelles BigDecimal, JSON, NKF, Rake, RubyGems, et RDoc
  • suppression de curses #8584

Pour plus de détails consultez : La news dans le répertoire Ruby.

Posté par nurse le 2013-12-25
Traduit par Geoffrey Roguelon

Versionnage sémantique à partir de Ruby 2.1.0

Nous avons décidé de changer la façon d’incrémenter les versions de Ruby en utilisant le système des versions sémantiques à partir de Ruby 2.1.0.

Afin de fournir une gestion claire du schéma de versionnage, nous avons décidé de basculer progressivement à la politique suivante.

Politique de changement

Cette politique est basée sur une proposition d’un administrateur de ruby-lang.org, Hiroshi Shibata (@hsbt).

Schéma de versionnage

  • MAJEUR: incrémenté lorsque des changements incompatibles ne peuvent être sortis en version MINEURE
    • Réservée pour des occasions spéciales
  • MINEUR: incrémenté à chaque Noël, peut inclure des changements d’API incompatibles
  • MICRO: correction de bugs ou de failles de sécurité en conservant la compatibilité avec l’API
    • Peut être incrémenté plus de 10 fois (comme 2.1.11) et sortira tous les 2 ou 3 mois
  • PATCH: nombre de commits depuis la dernière version MINEURE (sera remise à 0 à chaque sortie d’une version MINEURE)

Schéma de gestion des branches

Nous maintiendrons les branches suivantes :

  • trunk
  • ruby_{MAJEUR}_{MINEUR}

La branche ruby_{MAJEUR}_{MINEUR} sera maintenue tant que des versions MICRO sortiront. Nous utiliserons des tags pour chaque version.

Compatibilité de l’API

Les critères suivants peuvent être qualifiés de changements incompatibles, nécessitant la sortie d’une version MINEURE:

  • Suppression d’une fonctionnalité de l’API écrite en C
  • Changements ou ajouts incompatibles avec l’API

Compatibilité de l’ABI

L’ABI respectera le schéma suivant : {MAJEUR}.{MINEUR}.0

Nous fournirons le maximum d’effort pour conserver la compatibilité de l’ABI avec la version MINEURE, par conséquent le numéro de version MICRO sera fixé à 0.

Références

Pour plus d’informations sur cette proposition, veuillez consulter les liens suivants :

Merci !

Je souhaiterais remercier personnellement tous ceux qui ont contribué à ce débat. Chaque décision permet d’avoir un Ruby plus stable et plus efficace.

Posté par zzak le 2013-12-21
Traduit par Geoffrey Roguelon

Quelques outils pratiques pour les développeurs