Les thèmes et composants sur le canal par défaut latest sont automatiquement désactivés, et les auteurs de thèmes doivent recourir à des contournements peu intuitifs.
Je suis tombé sur ce problème ici : Featured Topics - #76 by cogdog Il est assez peu intuitif que toutes les versions minimales doivent utiliser un format comme xxx.x.999 inférieur à la version actuelle qu’elles sont censées correspondre.
Plateforme
Discourse auto-hébergé sur la branche latest
Version de Discourse : 2026.8.0-latest.1
Affecte : la création de thèmes/composants de thème (métadonnées about.json) et les vérifications de compatibilité des thèmes
Description
Résultat actuel :
Un thème avec "minimum_discourse_version": "2026.8.0" dans son about.json est considéré comme incompatible et automatiquement désactivé lorsque le site exécute la construction -latest2026.8.0-latest.1. La seule façon de garder le thème activé est de définir une version inférieure, telle que "minimum_discourse_version": "2026.7.999".
Un problème similaire se produit lors de l’importation d’un thème qui définit minimum_discourse_version avec une valeur de type -latest (par exemple 2025.12.0-latest), qui est rejetée comme invalide — voir le rapport existant : 主题配置文件中minimum_discourse_version不支持日期化版本格式
Résultat attendu :
Étant donné que 2026.8.0-latest.1 est une construction -latest de la ligne de version 2026.8.0, elle devrait satisfaire une exigence minimale de 2026.8.0. Les constructions latest sont plus récentes que la version publiée correspondante, et non plus anciennes.
Mais une version -latest est une version antérieure à la sortie officielle de cette version. C’est sur cette base que les entrées de compatibilité ont été établies depuis des années.
La façon dont vous avez géré cela avec <2026.7.999 semble peu intuitive, mais pourquoi n’avez-vous pas spécifié <2026.8.0-latest ?
Si j’ai besoin d’un commit spécifique ajouté au cours du développement de la version 2026.8, je peux être certain que tout le monde utilisant la version 2026.8 le possède, mais je ne peux pas être certain que tout le monde utilisant 2026.8-latest le possède. Peut-être que leur dernière mise à jour a eu lieu avant l’ajout de ce commit spécifique. Ainsi, si 2026.8 incluait 2026.8-latest par défaut, des problèmes pourraient survenir. Je trouve qu’il est préférable que l’administrateur doive attendre quelques semaines avant de pouvoir utiliser ou mettre à jour un thème, plutôt que de risquer que des choses cassent à cause de l’absence du commit requis.
Nous devrions corriger cela. Les auteurs de thèmes devraient pouvoir faire :
minimumDiscourseVersion: "2026.8.0-latest"
Bien que, comme @moin l’a mentionné, cela puisse être risqué car -latest fait référence à une multitude de commits différents. Donc, dans un monde idéal, nous devrions attendre la prochaine sortie avant de dépendre d’une nouvelle fonctionnalité du cœur depuis un thème/plugin.
Je trouve que c’est un peu difficile à comprendre et que je dois aussi utiliser cette approche x.999 dans le fichier de compatibilité. Par exemple, c’est comme ça que ça se présente actuellement dans mon composant :
2026.7.999: 93b5b22
2026.4.999: 0321b6d
Car apparemment, une fonctionnalité a été ajoutée dans la version 2026.5.0 et pour correspondre à cela, je dois indiquer 2026.4.999 ?
Je n’ai pas utilisé cela récemment, mais les exemples de l’équipe Discourse utilisaient généralement la version actuelle avec le suffixe -latest plutôt que la version précédente avec .999.
Par le passé, oui, il y a donc encore certains anciens thèmes/plugins qui font cela (et je suppose que les humains/robots continuent de copier le modèle hérité).
Mais de nos jours, vous pouvez utiliser les indicateurs < ou > à gauche du fichier de compatibilité. Vous pouvez donc faire :
<2026.7.0-latest: 93b5b22
Mais aussi, nous essayons d’éviter d’utiliser le fichier de compatibilité pour quoi que ce soit ces jours-ci. Nous nous appuyons désormais sur les branches automatiques d-compat/* pour prendre en charge la compatibilité avec les versions antérieures.
La documentation des deux modèles, anciens et nouveaux, se trouve ici :