L'Agenda du Libre

Logiciels, Arts, Données, Matériels, Contenus, Communs, Internet...

À proximité

Ruby France

Actualités des organisations

Ruby France

Ruby 3.4.2 est disponible


Île-de-France
Publié le
vendredi 14 février 2025 22h55
Importé le
mardi 25 février 2025 21h03

Ruby 3.4.2 est disponible.

Ceci est une mise à jour de routine incluant des corrections de bugs. Veuillez vous référer aux release notes sur GitHub pour plus de détails.

Calendrier de publication

Nous prévoyons de publier la version stable la plus récente de Ruby (actuellement la 3.4) tous les deux mois. Ruby 3.4.3 sortira en avril, 3.4.4 en juin, 3.4.5 en août, 3.4.6 en octobre et 3.4.7 en décembre.

Si un changement affecte un grand nombre d’utilisateurs, certaines de ces versions pourraient être publiées plus tôt que prévu.

Téléchargement

  • https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.2.tar.gz

    SIZE: 23174066 SHA1: 1537911b4a47940f11c309898e04187344a43167 SHA256: 41328ac21f2bfdd7de6b3565ef4f0dd7543354d37e96f157a1552a6bd0eb364b SHA512: edc3aede0aadcaa62343f38ea6cab7adacedba810d883f1d9c3e6e24e28e24e0e27a7df2c8e517cc2aab940168fc4872ab8cad000598aab5940aa79072ac190b
  • https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.2.tar.xz

    SIZE: 17218200 SHA1: b169f9e0d35cf85085c5f23d774485ba6c00ebac SHA256: ebf1c2eb58f5da17c23e965d658dd7e6202c5c50f5179154c5574452bef4b3e0 SHA512: cb8b5023bce316393716548c5f0a44c7d0240724ff79b995517641266af30bedc6f402c1c8fa27368ea607e2aa6d36bbb201e00c6e9dd2a80d837431d32343b5
  • https://cache.ruby-lang.org/pub/ruby/3.4/ruby-3.4.2.zip

    SIZE: 28336243 SHA1: 5a790b8a5aa662df6512f865bb042e93b8520864 SHA256: e14b850e831bf046cf78d66f14207782da13e76777610596666a74fd6c786021 SHA512: ac897cdc013b71ac3f76d1f70e9b79155a08197e458ddb7bfb638d1168d166b08fbc022aae95953bdade19ccd68989d666b76b6d681ee3480bb5936fb475959d

Commentaire sur la version

Grâce aux nombreux contributeurs, développeurs et utilisateurs qui ont fourni des rapports de bugs, nous avons pu réaliser cette version. Merci à tous pour leurs contributions.

Posté par k0kubun le 2025-02-14
Traduit par Florent Drousset

Ruby France

Ruby 3.1.1 est disponible


Île-de-France
Publié le
vendredi 18 février 2022 13h00
Importé le
jeudi 09 mars 2023 19h40

Ruby 3.1.1 est disponible.

C’est la première TEENY version disponible de la branche 3.1.

Voir les logs de commit pour de plus amples informations.

Téléchargement

  • https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.1.tar.gz

    SIZE: 20562492 SHA1: 289cbb9eae338bdaf99e376ac511236e39be83a3 SHA256: fe6e4782de97443978ddba8ba4be38d222aa24dc3e3f02a6a8e7701c0eeb619d SHA512: a60d69d35d6d4ad8926b324a6092f962510183d9759b096ba4ce9db2e254e0f436030c2a62741352efe72aec5ca2329b45edd85cca8ad3254a9c57e3d8f66319
  • https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.1.tar.xz

    SIZE: 15103808 SHA1: af6afead0e5509c459a580fc260bec2608b46750 SHA256: 7aefaa6b78b076515d272ec59c4616707a54fc9f2391239737d5f10af7a16caa SHA512: 8877fa9a458964a59a11529cd10b3d25b5f6238cd4678b6dcea0bd4b750499cf8ff39d8824053b4ab26c5cd0cfb604a57807ce61580175857fcf00b2cff3e55f
  • https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.1.zip

    SIZE: 24843623 SHA1: 9afab3231e99835dbbdad93c96a240ce90a1f2f5 SHA256: de1cc26c18c6fb838b75f3e700621339cf09d557a15c0b1457720f7c441a1e68 SHA512: 0eac755cd9883659dbd9ab9b2c2e5608112030d96ad14c22e1f21712d870f97ba7dfbd74cc03b1892faacb37958f100df484e4944c90b4a834e27e4c03b8e895

Commentaire de version

Merci aux contributeurs, développeurs et utilisateurs qui, en reportant les bugs, nous ont permis de sortir cette version.

Posté par naruse le 2022-02-18
Traduit par Kevin Rosaz

Ruby France

Ruby 3.1.0 est disponible


Île-de-France
Publié le
samedi 25 décembre 2021 01h00
Importé le
jeudi 09 mars 2023 19h40

Nous avons le plaisir de vous annoncer la sortie de Ruby 3.1.0. Ruby 3.1 conserve la compatibilité avec Ruby 3.0 et ajoute également de nombreuses fonctionnalités.

YJIT: un nouveau compilateur JIT en cours de développement

Ruby 3.1 fusionne YJIT, un nouveau compilateur JIT développé par Shopify.

Depuis que Ruby 2.6 a introduit MJIT en 2018, ses performances se sont grandement améliorées et nous sommes parvenus à Ruby3x3 l’année dernière. Même si Optcarrot a montré des accélérations impressionnantes, le JIT n’a pas profité aux applications du monde professionnel.

Récemment, Shopify a apporté de nombreuses améliorations à Ruby pour accélérer son application Rails. YJIT est une contribution importante et vise à améliorer les performances des applications Rails.

Bien que MJIT soit un compilateur JIT basé sur des méthodes et qu’il utilise un compilateur C externe, YJIT utilise le Basic Block Versioning et inclut le compilateur JIT à l’intérieur. Avec Lazy Basic Block Versioning (LBBV), cela compile d’abord le début d’une méthode et compile progressivement le reste lorsque le type des arguments et des variables est déterminé dynamiquement. Voir YJIT: a basic block versioning JIT compiler for CRuby pour une introduction détaillée.

Avec cette technologie, YJIT permet d’avoir à la fois un temps de démarrage rapide et des améliorations de performance sur la plupart des logiciels, jusqu’à 22% sur railsbench et 39% sur le rendu liquid.

YJIT est toujours une fonctionnalité expérimentale. En tant que telle, elle est désactivée par défaut. Si vous souhaitez l’utiliser, spécifiez l’option en ligne de commande --yjit pour activer YJIT. L’utilisation est pour le moment limitée à macOS et Linux sur les plateformes x86-64.

  • https://bugs.ruby-lang.org/issues/18229
  • https://shopify.engineering/yjit-just-in-time-compiler-cruby
  • https://www.youtube.com/watch?v=PBVLf3yfMs8

debug.gem: un nouveau débogueur

Un débogueur complètement réécrit debug.gem est fourni. Debug.gem possède les fonctionnalités suivantes:

  • Améliorer les performances de débogage (il ne ralentit pas l’application même avec le débogueur)
  • Prise en charge du débogage à distance
  • Prise en charge de l’interface de débogage riche (VSCode et navigateur Chrome sont désormais pris en charge)
  • Prise en charge du débogage multiprocessus/multithread
  • REPL coloré et d’autres fonctionnalités utiles telles que la fonction enregistrer et rejouer , la fonction de traçage, etc.

Ruby avait intégré lib/debug.rb, mais il n’était pas bien maintenu et posait des problèmes de performances et de fonctionnalités. Debug.gem a complètement remplacé lib/debug.rb.

error_highlight: localisation des erreurs plus précise

La gemme error_highlight a été ajoutée. Elle permet d’obtenir la localisation d’une erreur de manière plus précise dans la trace:

$ ruby test.rb test.rb:1:in `
': undefined method `time' for 1:Integer (NoMethodError) 1.time {} ^^^^^ Did you mean? times

Actuellement, seul NameError est pris en charge.

Cette gemme est activée par défaut. Vous pouvez la désactiver en utilisant l’option en ligne de commande --disable-error_highlight. Voir le dépôt pour de plus amples informations.

Auto-complétion dans IRB et affichage de la documentation

IRB dispose désormais d’une fonction de saisie semi-automatique où vous pouvez simplement taper le code et une boîte de dialogue des candidats à la complétion apparaîtra. Vous pouvez utiliser Tab et Shift+Tab pour vous déplacer de haut en bas.

Si la documentation est installée lorsque vous sélectionnez une proposition à la complétion, la boîte de dialogue de la documentation apparaîtra à côté de celle-ci, affichant une partie du contenu. Vous pouvez lire la documentation complète en appuyant sur Alt+d.

Autres nouvelles fonctionnalités notables

Language

  • Les valeurs dans les littéraux de hachage peuvent être omis. [Feature #14579]
    • {x:, y:} est un sucre syntaxique de {x: x, y: y}.
    • foo(x:, y:) est un sucre syntaxique de foo(x: x, y: y).
  • L’opérateur pin (^) dans le filtrage par motif prend désormais une expression. [Feature #17411]
Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).to_a #=> [[3, 5], [5, 7], [11, 13]]
  • Les parenthèses peuvent être omises dans les filtrages par motifs qui ne font qu’une seule ligne. [Feature #16182]
[0, 1] => _, x {y: 2} => y: x #=> 1 y #=> 2

RBS

RBS est un langage pour décrire la structure des programmes Ruby. Voir le dépôt pour de plus amples informations.

Mises à jour depuis Ruby 3.0.0:

  • Les paramètres de type générique peuvent être bornés. (PR)
  • Les alias de type générique sont pris en charge. (PR)
  • rbs collection été introduit pour gérer les RBS des gemmes. (doc)
  • De nombreuses signatures pour les bibliothèques intégrées et standard ont été ajoutées/mises à jour.
  • Il inclut également de nombreuses corrections de bogues et améliorations des performances.

Voir le CHANGELOG.md pour de plus amples informations.

TypeProf

TypeProf est un analyseur de type statique pour Ruby. Il génère un prototype de RBS à partir de code Ruby non annoté de type. Voir la documentation pour de plus amples informations.

Les principales mises à jour depuis Ruby 3.0.0 concernent un support IDE expérimental appelé “TypeProf for IDE”.

L’extension vscode affiche une signature de méthode devinée (ou explicitement écrite dans un fichier RBS) au-dessus de chaque définition de méthode, souligne en rouge le code qui peut provoquer une erreur de nom ou de type et complète les noms de méthode (c’est-à-dire affiche les méthodes candidates). Voir la documentation pour de plus amples informations.

De plus, la version inclut de nombreuses corrections de bogues et améliorations des performances.

Améliorations de performance

  • MJIT
    • Pour les charges de travail telles que Rails, la valeur par défaut --jit-max-cache passe de 100 à 10000. Le compilateur JIT ne saute plus la compilation des méthodes de plus de 1000 instructions.
    • Pour prendre en charge Zeitwerk de Rails, le code généré par le compilateur JIT n’est plus annulé lorsqu’un TracePoint est activé pour les évènements de classe.

Autres changements notables depuis la version 3.0

  • Le filtrage par motif en une ligne, e.g., ary => [x, y, z], n’est plus au stade expérimental.
  • L’ordre d’évaluation des affectations multiples a été légèrement modifié. [Bug #4443]
    • foo[0], bar[0] = baz, qux était évalué dans l’ordre baz, qux, foo puis bar dans Ruby 3.0. Dans Ruby 3.1, l’évaluation est dans l’ordre foo, bar, baz puis qux.
  • Allocation de la taille d’une variable String (expérimental) [Bug #18239]
  • Psych 4.0 change Psych.load en safe_load par défaut. Vous devrez peut-être utiliser Psych 3.3.2 pour migrer vers ce comportement. [Bug #17866]

Mise à jour des bibliothèques standards

  • Les gemmes par défaut suivantes ont été mises à jour.
    • RubyGems 3.3.3
    • base64 0.1.1
    • benchmark 0.2.0
    • bigdecimal 3.1.1
    • bundler 2.3.3
    • cgi 0.3.1
    • csv 3.2.2
    • date 3.2.2
    • did_you_mean 1.6.1
    • digest 3.1.0
    • drb 2.1.0
    • erb 2.2.3
    • error_highlight 0.3.0
    • etc 1.3.0
    • fcntl 1.0.1
    • fiddle 1.1.0
    • fileutils 1.6.0
    • find 0.1.1
    • io-console 0.5.10
    • io-wait 0.2.1
    • ipaddr 1.2.3
    • irb 1.4.1
    • json 2.6.1
    • logger 1.5.0
    • net-http 0.2.0
    • net-protocol 0.1.2
    • nkf 0.1.1
    • open-uri 0.2.0
    • openssl 3.0.0
    • optparse 0.2.0
    • ostruct 0.5.2
    • pathname 0.2.0
    • pp 0.3.0
    • prettyprint 0.1.1
    • psych 4.0.3
    • racc 1.6.0
    • rdoc 6.4.0
    • readline 0.0.3
    • readline-ext 0.1.4
    • reline 0.3.0
    • resolv 0.2.1
    • rinda 0.1.1
    • ruby2_keywords 0.0.5
    • securerandom 0.1.1
    • set 1.0.2
    • stringio 3.0.1
    • strscan 3.0.1
    • tempfile 0.1.2
    • time 0.2.0
    • timeout 0.2.0
    • tmpdir 0.1.2
    • un 0.2.0
    • uri 0.11.0
    • yaml 0.2.0
    • zlib 2.1.1
  • Les gemmes groupées suivantes ont été mises à jour.
    • minitest 5.15.0
    • power_assert 2.0.1
    • rake 13.0.6
    • test-unit 3.5.3
    • rexml 3.2.5
    • rbs 2.0.0
    • typeprof 0.21.1
  • Les gemmes par défaut suivantes sont désormais des gemmes groupées. Vous devez les ajouter au Gemfile sous l’environnement bundler.
    • net-ftp 0.1.3
    • net-imap 0.2.2
    • net-pop 0.1.1
    • net-smtp 0.3.1
    • matrix 0.4.2
    • prime 0.1.2
    • debug 1.4.0

Voir NEWS ou les logs de commit pour de plus amples informations.

Avec ces changements, 3124 fichiers changés, 551760 insertions(+), 99167 suppressions(-) depuis Ruby 3.0.0!

Joyeux Noël, joyeuses fêtes et bonne programmation avec Ruby 3.1!

Téléchargement

  • https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0.tar.gz

    SIZE: 20103517 SHA1: e4e8c20dd2a1fdef4d3e5bd5a3461000dd17f226 SHA256: 50a0504c6edcb4d61ce6b8cfdbddaa95707195fab0ecd7b5e92654b2a9412854 SHA512: 76009d325e961e601d9a287e36490cbc1f3b5dbf4878fa6eab2c4daa5ff2fed78cbc7525cd87b09828f97cbe2beb30f528928bcc5647af745d03dffe7c5baaa9
  • https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0.tar.xz

    SIZE: 14709096 SHA1: 92b603c2a69fb25d66c337a63e94280984edea11 SHA256: 1a0e0b69b9b062b6299ff1f6c6d77b66aff3995f63d1d8b8771e7a113ec472e2 SHA512: a2bb6b5e62d5fa06dd9c30cf84ddcb2c27cb87fbaaffd2309a44391a6b110e1dde6b7b0d8c659b56387ee3c9b4264003f3532d5a374123a7c187ebba9293f320
  • https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0.zip

    SIZE: 24388179 SHA1: e37435956d6f840a0e8758d7374bc7e0e346105f SHA256: a3bfcd486d09c065d46421da0ff3d430ce4423fefd80cea63c6595d83ae4af0e SHA512: 67db71144e06da2c1c25eaf413d1417c99a4b18738a573f9e3371c11ea242eee9dcbdc3de17336f25ab5060039fe034e57298943d344be9cd9eb33bb56e2e1c6

Ruby, c’est quoi?

Ruby a été initialement développé par Matz (Yukihiro Matsumoto) en 1993 puis est devenu open source. Il fonctionne sur de nombreuses plateformes et est utilisé partout dans le monde, en particulier pour le développement web.

Posté par naruse le 2021-12-25
Traduit par Kevin Rosaz

Ruby France

CVE-2021-41816: Dépassement de la mémoire tampon dans CGI.escape_html


Île-de-France
Publié le
mercredi 24 novembre 2021 13h00
Importé le
jeudi 09 mars 2023 19h40

Une vulnérabilité de dépassement de mémoire tampon a été découverte dans CGI.escape_html. Cette vulnérabilité a reçu l’identifiant CVE CVE-2021-41816. Nous vous recommandons fortement de mettre à jour Ruby.

Détails

Cette vulnérabilité de sécurité provoque un débordement de la mémoire tampon lorsque vous transmettez une très grande chaîne de caractères (> 700 Mo) à CGI.escape_html sur une plate-forme où le type long prend 4 octets, généralement Windows.

Veuillez mettre à jour la gemme cgi vers la version 0.3.1, 0.2.1, 0.1.1 ou ultérieure. Vous pouvez utiliser gem update cgi pour la mettre à jour. Si vous utilisez bundler, veuillez ajouter gem "cgi", ">= 0.3.1" à votre Gemfile. Vous pouvez également mettre à jour Ruby vers la version 2.7.5 ou 3.0.3.

Ce problème a été introduit depuis Ruby 2.7, donc la version cgi fournie avec Ruby 2.6 n’est pas vulnérable.

Versions concernées

  • Gemme cgi 0.1.0 ou antérieure (qui sont des versions inclusent dans la branche Ruby 2.7 avant la version Ruby 2.7.5)
  • Gemme cgi 0.2.0 ou antérieure (qui sont des versions inclusent dans la branche Ruby 3.0 avant la version Ruby 3.0.3)
  • Gemme cgi 0.3.0 ou antérieure

Remerciements

Merci à chamal pour la découverte de ce problème.

Historique

  • Paru initialement le 2021-11-24 12:00:00 (UTC)

Posté par mame le 2021-11-24
Traduit par Kevin Rosaz

Ruby France

CVE-2021-41819: Usurpation de préfixes de cookie dans CGI::Cookie.parse


Île-de-France
Publié le
mercredi 24 novembre 2021 13h00
Importé le
jeudi 09 mars 2023 19h40

Une vulnérabilité d’usurpation de préfixes de cookie a été découverte dans CGI::Cookie.parse. Cette vulnérabilité a reçu l’identifiant CVE CVE-2021-41819. Nous vous recommandons fortement de mettre à jour Ruby.

Détails

Les anciennes versions de CGI::Cookie.parse appliquent le décodage d’URL aux noms de cookies. Un attaquant pourrait exploiter cette vulnérabilité pour usurper les préfixes de sécurité dans les noms de cookies, ce qui pourrait tromper une application vulnérable.

Par ce correctif, CGI::Cookie.parse ne décode plus les noms de cookies. Notez qu’il s’agit d’une incompatibilité si les noms de cookies que vous utilisez incluent des caractères non alphanumériques URL encodés.

C’est le même problème que CVE-2020-8184.

Si vous utilisez Ruby 2.7 ou 3.0:

  • Veuillez mettre à jour la gemme cgi vers la version 0.3.1, 0.2.1, 0.1.1 ou ultérieure. Vous pouvez utiliser gem update cgi pour la mettre à jour. Si vous utilisez bundler, veuillez ajouter gem "cgi", ">= 0.3.1" à votre Gemfile.
  • Vous pouvez également mettre à jour Ruby vers la version 2.7.5 ou 3.0.3.

Si vous utilisez Ruby 2.6:

  • Veuillez mettre à jour Ruby vers la version 2.6.9. Vous ne pouvez pas utiliser gem update cgi pour Ruby 2.6 ou antérieur.

Versions concernées

  • Ruby 2.6.8 ou antérieure (Vous ne pouvez pas utiliser gem update cgi pour cette version.)
  • Gemme cgi 0.1.0 ou antérieure (qui sont des versions inclusent dans la branche Ruby 2.7 avant la version Ruby 2.7.5)
  • Gemme cgi 0.2.0 ou antérieure (qui sont des versions inclusent dans la branche Ruby 3.0 avant la version Ruby 3.0.3)
  • Gemme cgi 0.3.0 ou antérieure

Remerciements

Merci à ooooooo_q pour la découverte de ce problème.

Historique

  • Paru initialement le 2021-11-24 12:00:00 (UTC)

Posté par mame le 2021-11-24
Traduit par Kevin Rosaz

Ruby France

Ruby 2.6.9 est disponible


Île-de-France
Publié le
mercredi 24 novembre 2021 13h00
Importé le
jeudi 09 mars 2023 19h40

Ruby 2.6.9 est disponible.

Cette version contient des corrections concernant des problèmes de sécurité. Merci de regarder les sujets suivants pour plus de détails.

Voir les logs de commit pour de plus amples informations.

Ruby 2.6 se trouve dans la phase de maintenance de sécurité jusqu’à la fin mars 2022. Après cette date, la branche 2.6 de Ruby ne sera alors plus officiellement supportée. Nous vous recommandons donc de passer sur de nouvelles versions de Ruby comme la 3.0 ou 2.7.

Téléchargement

  • https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.9.tar.bz2

    SIZE: 14137792 SHA1: a482c36645e7ff4596c6aca2cf96d15481fcfc5e SHA256: a0639060c4519572e51828eb742f09dd40f154c820f6007246de7a2090e3ee45 SHA512: ff067ebc059094c0a9a0debf54a37aad2c85f7ed47be59299041c9c03a7701529f5063ff32a1b8c56d48ee8585015acba63602ed0176b2797d263d43d67aa241
  • https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.9.tar.gz

    SIZE: 16202802 SHA1: 00e69747e7e2b87155c65b4003470313e4403b0a SHA256: eb7bae7aac64bf9eb2153710a4cafae450ccbb62ae6f63d573e1786178b0efbb SHA512: 24bd6c8f528907349bcf392ed75a2d767b93a35a9f4c839267873d1dde862d3292d1682e0edc56c078a2690de76a045ef866f54eab8a330a18771f0b234c5993
  • https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.9.tar.xz

    SIZE: 11590064 SHA1: fc67ca162010aac4af49d73a8c48be5cb2fb5907 SHA256: 6a041d82ae6e0f02ccb1465e620d94a7196489d8a13d6018a160da42ebc1eece SHA512: f60aa89e685cea324185eb0d13e6b44caef4e4f761cbf9ea1386ae70e39faf3866ac01e4bb5354574f2583e74290b8c80eaf63d126040d52368be6c771476451
  • https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.6.9.zip

    SIZE: 19869379 SHA1: 41a60c783306f4b47b867bd19d16688b546b8e3a SHA256: 2480dbdc72d3dc832d8254e938e4861ca54a5337edd6f358e5202fd2a5339eec SHA512: 9073e0fc5040434f15158f24c6a551286bc5f1c4c1cb54d6e3debb4ac039187a4f274a217bdb5c8489c72360c65d708f89eb0f2472a1f9232fcfee8e296dec57

Commentaire de version

Merci aux contributeurs, développeurs et utilisateurs qui, en reportant les bugs, nous ont permis de sortir cette version.

Posté par usa le 2021-11-24
Traduit par Kevin Rosaz

Ruby France

Ruby 2.7.5 est disponible


Île-de-France
Publié le
mercredi 24 novembre 2021 13h00
Importé le
jeudi 09 mars 2023 19h40

Ruby 2.7.5 est disponible.

Cette version contient des corrections concernant des problèmes de sécurité. Merci de regarder les sujets suivants pour plus de détails.

Voir les logs de commit pour de plus amples informations.

Téléchargement

  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.5.tar.bz2

    SIZE: 14805180 SHA1: 2a179b601f45172b1cb38e8f157c4e6ce272c22c SHA256: d6b444341a5e06fcd6eaf1feb83a1c0c2da4705dbe4f275ee851761b185f4bd1 SHA512: 0aa2ac44bc22859a39c43d08b7c7f457df05c2dc36b2574fd70ca399143ef1000dc5e496212db9eb055bc4258523d47d26db3c57a1a5a5d63cf1b3de9f81645a
  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.5.tar.gz

    SIZE: 16923709 SHA1: c2d0f6c793f9e673f9fb22276d32f8c395ec5581 SHA256: 2755b900a21235b443bb16dadd9032f784d4a88f143d852bc5d154f22b8781f1 SHA512: 09e029b5cc15b6e4e37bcf15adb28213eaedec3ea22106d63095b37ea6b2a2b68e82e74e6b50746c87dd77e5185795d014e0db118bf0f45ffa0b0a307f5f65da
  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.5.tar.xz

    SIZE: 12072980 SHA1: 1d04fbf24150eaa1297a7ef4c7057ec0a9dca527 SHA256: d216d95190eaacf3bf165303747b02ff13f10b6cfab67a9031b502a49512b516 SHA512: 21c8a713e3ce115fc4c405113ac691ddcefc3419f528b93ca1ac59e7052c1b6e9e241da0e570e291e567f28f3d840824dbcc5967b216cbe7d6ca7a05580fa311
  • https://cache.ruby-lang.org/pub/ruby/2.7/ruby-2.7.5.zip

    SIZE: 20702176 SHA1: 541b34fa5e7e55b6269a2bfa67e2a06ad0dcb571 SHA256: 3793d764ec8da68203eba1a7fe338fae9bafa8226cce911c8648c1b7c32ba9c2 SHA512: fe9a706f8139e59a40ab205dc88cdc613c9c69186cb2daeb5adc80bdf45290a523fa7e3fd0866fa12325039ba413ff1e1f4233073d352da08079dc903063b31a

Commentaire de version

Merci aux contributeurs, développeurs et utilisateurs qui, en reportant les bugs, nous ont permis de sortir cette version.

La maintenance de Ruby 2.7, incluant cette version, est basée sur l’ “Agreement for the Ruby stable version” de la Ruby Association.

Posté par usa le 2021-11-24
Traduit par Kevin Rosaz

Ruby France

Ruby 3.0.3 est disponible


Île-de-France
Publié le
mercredi 24 novembre 2021 13h00
Importé le
jeudi 09 mars 2023 19h40

Ruby 3.0.3 est disponible.

Cette version contient des corrections concernant des problèmes de sécurité. Merci de regarder les sujets suivants pour plus de détails.

Voir les logs de commit pour de plus amples informations.

Téléchargement

  • https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.3.tar.gz

    SIZE: 20242729 SHA1: 049317b7c6246d6ea86564c3f73a629b766ff634 SHA256: 3586861cb2df56970287f0fd83f274bd92058872d830d15570b36def7f1a92ac SHA512: 39dab51a0d784a38302372b99f96205817d466245202586d22123745761e9cb39db128ec2b984ebc3919b9faf2adf828d19c97d3fb1e56d44be0a81dc5d11b87
  • https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.3.tar.xz

    SIZE: 14991880 SHA1: c1e6dac2b8c08afbbee39e25e325c84e1cab7c17 SHA256: 88cc7f0f021f15c4cd62b1f922e3a401697f7943551fe45b1fdf4f2417a17a9c SHA512: bb9ea426278d5a7ac46595296f03b82d43df8b7db41045cdf85611e05e26c703c53f700494cd7cf5d4c27fa953bdc5c144317d7720812db0a6e3b6f4bc4d2e00
  • https://cache.ruby-lang.org/pub/ruby/3.0/ruby-3.0.3.zip

    SIZE: 24627744 SHA1: 5341ed1602a3289c4857560ead53191895e5c586 SHA256: 0b8370e404550bf736f46307a14eb9306a7868fb8d54e1418ecdaccbaa8ac06f SHA512: 24c2a4f455f90e54f85d9565e392519833b36aefce32dc707e6693994d175c82e84ee6c37ed4a9ddf8840479e7cdfaae714c12bc6923368bb00346d4edd434d8

Commentaire de version

Merci aux contributeurs, développeurs et utilisateurs qui, en reportant les bugs, nous ont permis de sortir cette version.

Posté par nagachika le 2021-11-24
Traduit par Kevin Rosaz

Ruby France

CVE-2021-41817: Vulnérabilité de déni de service d'expression régulière (ReDoS) sur les méthodes d'analyse de date


Île-de-France
Publié le
lundi 15 novembre 2021 09h00
Importé le
jeudi 09 mars 2023 19h40

Nous avons publié les versions 3.2.1, 3.1.2, 3.0.2 et 2.0.1 de la gemme date qui incluent un correctif de sécurité pour une vulnérabilité de déni de service d’expression régulière (ReDoS) sur les méthodes d’analyse de date. Un attaquant peut exploiter cette vulnérabilité pour provoquer une attaque DoS efficace. Cette vulnérabilité a reçu l’identifiant CVE CVE-2021-41817.

Détails

Les méthodes d’analyse de date, y compris Date.parse, utilisent des expressions régulières en interne, dont certaines sont vulnérables au déni de service d’expression régulière (ReDoS). Les applications et bibliothèques qui utilisent de telles méthodes à des entrées non fiables peuvent être affectées.

Le correctif limite la longueur d’entrée jusqu’à 128 octets par défaut au lieu de modifier les expressions régulières. La raison est que la gemme Date utilise de nombreuses expressions régulières donc il existe peut-être des expressions régulières vulnérables non découvertes. Pour des raisons de compatibilité, il est permis de supprimer la limitation en passant explicitement le mots-clé limit à nil comme Date.parse(str, limit: nil), mais notez que l’analyse peut prendre beaucoup de temps.

Veuillez mettre à jour la gemme de date vers la version 3.2.1, 3.1.2, 3.0.2, 2.0.1 ou ultérieure. Vous pouvez utiliser gem update date pour la mettre à jour. Si vous utilisez bundler, veuillez ajouter gem "date", ">= 3.2.1" à votre Gemfile. Vous pouvez également mettre à jour Ruby vers la version 3.0.3, 2.7.5, 2.6.9 ou ultérieure.

Versions concernées

  • Gemme date 2.0.0 ou antérieure (qui sont des versions inclusent dans la branche Ruby 2.6 avant la version Ruby 2.6.9)
  • Gemme date 3.0.1 ou antérieure (qui sont des versions inclusent dans la branche Ruby 2.7 avant la version Ruby 2.7.5)
  • Gemme date 3.1.1 ou antérieure (qui sont des versions inclusent dans la branche Ruby 3.0 avant la version Ruby 3.0.3)
  • Gemme date 3.2.0 ou antérieure

Remerciements

Merci à svalkanov pour la découverte de ce problème.

Historique

  • Paru initialement le 2021-11-15 08:00:00 (UTC)
  • Mention concernant les nouvelles versions de Ruby le 2021-11-24 13:20:00 (UTC)

Posté par mame le 2021-11-15
Traduit par Kevin Rosaz

Ruby France

Ruby 3.1.0 Preview 1 est disponible


Île-de-France
Publié le
mardi 09 novembre 2021 01h00
Importé le
jeudi 09 mars 2023 19h40

Nous avons le plaisir de vous annoncer la sortie de Ruby 3.1.0-preview1.

YJIT: un nouveau compilateur JIT en cours de développement

Ruby 3.1 fusionne YJIT, un nouveau compilateur JIT développé par Shopify.

Depuis que Ruby 2.6 a introduit MJIT en 2018, ses performances se sont grandement améliorées et nous sommes parvenus à Ruby3x3 l’année dernière. Même si Optcarrot a montré des accélérations impressionnantes, le JIT n’a pas profité aux applications du monde professionnel.

Récemment, Shopify a apporté de nombreuses améliorations à Ruby pour accélérer son application Rails. YJIT est une contribution importante et vise à améliorer les performances des applications Rails.

Bien que MJIT soit un compilateur JIT basé sur des méthodes et qu’il utilise un compilateur C externe, YJIT utilise le Basic Block Versioning et inclut le compilateur JIT à l’intérieur. Avec Lazy Basic Block Versioning (LBBV), cela compile d’abord le début d’une méthode et compile progressivement le reste lorsque le type des arguments et des variables est déterminé dynamiquement. Voir YJIT: a basic block versioning JIT compiler for CRuby pour une introduction détaillée.

Avec cette technologie, YJIT permet d’avoir à la fois un temps de démarrage rapide et des améliorations de performance sur la plupart des logiciels, jusqu’à 22% sur railsbench et 39% sur le rendu liquid.

YJIT est toujours une fonctionnalité expérimentale. En tant que telle, elle est désactivée par défaut. Si vous souhaitez l’utiliser, spécifiez l’option en ligne de commande --yjit pour activer YJIT. L’utilisation est pour le moment limitée à macOS et Linux sur les plateformes x86-64.

  • https://bugs.ruby-lang.org/issues/18229
  • https://shopify.engineering/yjit-just-in-time-compiler-cruby
  • https://www.youtube.com/watch?v=PBVLf3yfMs8

debug gem: un nouveau débogueur

Un nouveau débogueur debug.gem est inclu. debug.gem est une implémentation rapide du débogueur et fournit de nombreuses fonctionnalités telles que le débogage à distance, un REPL coloré, une intégration dans un IDE (VSCode) et bien plus encore. Cela remplace lib/debug.rb de la bibliothèque standard.

error_highlight: localisation des erreurs plus précise

La gemme error_highlight a été ajoutée. Elle permet d’obtenir la localisation d’une erreur de manière plus précise dans la trace:

$ ruby test.rb test.rb:1:in `
': undefined method `time' for 1:Integer (NoMethodError) 1.time {} ^^^^^ Did you mean? times

Cette gemme est activée par défaut. Vous pouvez la désactiver en utilisant l’option en ligne de commande --disable-error_highlight. Voir le dépôt pour de plus amples informations.

Amélioration d’IRB

À décrire dans le prochain aperçu.

Autres nouvelles fonctionnalités notables

Language

  • Les valeurs dans les littéraux de hachage peuvent être omis. [Feature #14579]
    • {x:, y:} est un sucre syntaxique de {x: x, y: y}.
    • foo(x:, y:) est un sucre syntaxique de foo(x: x, y: y).
  • L’opérateur pin dans le filtrage par motif prend désormais une expression. [Feature #17411]
Prime.each_cons(2).lazy.find_all{_1 in [n, ^(n + 2)]}.take(3).to_a #=> [[3, 5], [5, 7], [11, 13]]

RBS

RBS est un langage pour décrire la structure des programmes Ruby. Voir le dépôt pour de plus amples informations.

Mises à jour depuis Ruby 3.0.0:

  • rbs collection a été introduite pour gérer les RBS des gemmes. doc
  • Plusieurs signatures pour des bibliothèques intégrées et standards ont été ajoutées/mises à jour.
  • Il y a également de nombreuses corrections de bogues et d’améliorations de performance.

Voir le CHANGELOG.md pour de plus amples informations.

TypeProf

TypeProf est un analyseur de type statique pour Ruby. Il génère un prototype de RBS à partir de code Ruby non annoté de type. Voir le document pour de plus amples informations.

Mises à jour depuis Ruby 3.0.0:

Amélioration de performance

  • MJIT
    • Pour les charges de travail telles que Rails, la valeur par défaut --jit-max-cache passe de 100 à 10000. Le compilateur JIT ne saute plus la compilation des méthodes de plus de 1000 instructions.
    • Pour prendre en charge Zeitwerk de Rails, le code généré par le compilateur JIT n’est plus annulé lorsqu’un TracePoint est activé pour les évènements de classe.

Autres changements notables depuis la version 3.0

  • Le filtrage par motif en une ligne, e.g., ary => [x, y, z], n’est plus au stade expérimental.
  • L’ordre d’évaluation des affectations multiples a été légèrement modifié. [Bug #4443]
    • foo[0], bar[0] = baz, qux était évalué dans l’ordre baz, qux, foo puis bar dans Ruby 3.0. Dans Ruby 3.1, l’évaluation est dans l’ordre foo, bar, baz puis qux.
  • Allocation de la taille d’une variable: Strings (expérimental) [Bug #18239]

Mises à jour des bibliothèques standards

  • Plusieurs bibliothèques standards ont été mises à jour.
    • RubyGems
    • Bundler
    • RDoc 6.4.0
    • ReLine
    • JSON 2.6.0
    • Psych 4.0.2
    • FileUtils 1.6.0
    • Fiddle
    • StringIO 3.0.1
    • IO::Console 0.5.9
    • IO::Wait 0.2.0
    • CSV
    • Etc 1.3.0
    • Date 3.2.0
    • Zlib 2.1.1
    • StringScanner
    • IpAddr
    • Logger 1.4.4
    • OStruct 0.5.0
    • Irb
    • Racc 1.6.0
    • Delegate 0.2.0
    • Benchmark 0.2.0
    • CGI 0.3.0
    • Readline(C-ext) 0.1.3
    • Timeout 0.2.0
    • YAML 0.2.0
    • URI 0.11.0
    • OpenSSL
    • DidYouMean
    • Weakref 0.1.1
    • Tempfile 0.1.2
    • TmpDir 0.1.2
    • English 0.7.1
    • Net::Protocol 0.1.2
    • Net::Http 0.2.0
    • BigDecimal
    • OptionParser 0.2.0
    • Set
    • Find 0.1.1
    • Rinda 0.1.1
    • Erb
    • NKF 0.1.1
    • Base64 0.1.1
    • OpenUri 0.2.0
    • SecureRandom 0.1.1
    • Resolv 0.2.1
    • Resolv::Replace 0.1.0
    • Time 0.2.0
    • PP 0.2.1
    • Prettyprint 0.1.1
    • Drb 2.1.0
    • Pathname 0.2.0
    • Digest 3.1.0.pre2
    • Un 0.2.0
  • Les gemmes incluses suivantes ont été mises à jour.
    • minitest 5.14.4
    • power_assert 2.0.1
    • rake 13.0.6
    • test-unit 3.5.0
    • rbs 1.6.2
    • typeprof 0.20.0
  • Les gemmes par défaut suivantes sont désormais incluses.
    • net-ftp
    • net-imap
    • net-pop
    • net-smtp
    • matrix
    • prime

Voir NEWS ou les logs de commit pour de plus amples informations.

Avec ces changements, 2963 fichiers changés, 529321 insertions(+), 92305 suppressions(-) depuis Ruby 3.0.0!

Téléchargement

  • https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0-preview1.tar.gz

    SIZE: 20821221 SHA1: 40dfd3db076a49fab9a0eee51e89d9b3d16a4e23 SHA256: 540f49f4c3aceb1a5d7fb0b8522a04dd96bc4a22f9660a6b59629886c8e010d4 SHA512: 63f528f20905827d03649ed9804e4a4e5c15078f9c6c8efcfb306baa7baafa17a406eb09a2c08b42e151e14af33b1aadbd9fb1cc84f9353d070b54bbf1ff950d
  • https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0-preview1.tar.xz

    SIZE: 15742844 SHA1: 22aa861b17031cd1b163b7443f5f2f5897c5895e SHA256: 86a836ad42f6a7a469fce71ffec48fd3184af55bf79e488b568a4f64adee551d SHA512: bdbd7c624197ca478658280d84123a8c12ae72425bc566dcc75989c5b5ef114dd57e64efc09e2413ed615d9b47621a70ace0f3612e8ca7ba853822ad9e88c0b0
  • https://cache.ruby-lang.org/pub/ruby/3.1/ruby-3.1.0-preview1.zip

    SIZE: 25019629 SHA1: ef5fa22890e55935db4b96b3089a8aea1335bd85 SHA256: 4e8d118b2365164873148ac545a8fa36c098b846a9b19ebb9037f8ee9adb4414 SHA512: 917803aac0848e00871614a09740b5c9cca26f200d68580dde61666633f1b7fee506e25ea4ed0c38eb20149417bf9f1ed449a4d2aec5b726de670e7177e5c07a

Ruby, c’est quoi?

Ruby a été initialement développé par Matz (Yukihiro Matsumoto) en 1993 puis est devenu open source. Il fonctionne sur de nombreuses plateformes et est utilisé partout dans le monde, en particulier pour le développement web.

Posté par naruse le 2021-11-09
Traduit par Kevin Rosaz

Ruby France

Concours 2022 Fukuoka Ruby Award - Les candidatures seront jugées par Matz


Île-de-France
Publié le
mardi 03 août 2021 01h00
Importé le
jeudi 09 mars 2023 19h40

Chers passionnés de Ruby,

Le gouvernement de Fukuoka au Japon et «Matz» Matsumoto aimeraient vous inviter à participer au concours Ruby suivant. Si vous avez développé un programme Ruby intéressant, vous êtes encouragés à postuler.

Concours 2022 Fukuoka Ruby Award - Grand Prix - 1 Million de Yens!

Date limite d’inscription: 3 décembre 2021

Matz et un groupe de panélistes sélectionneront les gagnants du concours de Fukuoka. Le grand prix du concours de Fukuoka est de 1 million de yens. Les anciens gagnants du grand prix sont Rhomobile (États-Unis) et APEC Climate Center (Corée).

Les programmes inscrits au concours n’ont pas à être entièrement écrits en Ruby, mais doivent tirer parti des caractéristiques uniques de Ruby.

Le programme doit avoir été développé ou mis à jour au cours de l’année passée. Veuillez visiter le site Web de Fukuoka suivant pour participer.

http://www.digitalfukuoka.jp/events/242

Veuillez envoyer le formulaire de candidature à award@f-ruby.com

«Matz testera et révisera votre code source de manière approfondie, il est donc très intéressant de postuler! Le concours est gratuit. »

Merci!

Posté par Fukuoka Ruby le 2021-08-03
Traduit par Kevin Rosaz