💾 Archived View for deuchnord.fr › blog › 31-kosmorro-v10.gmi captured on 2023-04-19 at 22:21:28. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2022-03-01)

-=-=-=-=-=-=-

Kosmorro : objectif 1.0 !

Deux ans, quatre mois, plus de 350 commits, pas tant de maux de tête que ça.

C'est ce qu'il aura fallu pour parvenir Ă  avancer une version 1.0 de Kosmorro.

Kosmorro, c'est pour moi l'histoire d'un projet totalement fou, dont jamais je n'aurais pensé jusqu'à l'existence il y a seulement deux ans et demie. Le plus gros projet que j'aie pu créer, à vrai dire, en terme de complexité. Il a connu de multiples évolutions depuis son annonce, et même depuis l'article de mise à jour de l'an dernier.

Kosmorro : calculez les éphémérides de demain !

Quoi de neuf sur Kosmorro ?

Kosmorrolib : la librairie qui fait tourner Kosmorro

À ses tous débuts, Kosmorro possèdait un répertoire, nommé `kosmorrolib`, contenant l'ensemble du code de Kosmorro. Non seulement la logique de calcul, mais aussi ce qui lui permettait d'interagir avec l'utilisateur dans le terminal.

Même si ça fonctionnait très bien, ça a très vite posé un problème, et un gros : en effet, en plus de l'interface en ligne de commande, j'ai prévu d'autres projets, notamment une interface graphique. Tous ces projets doivent reprendre la même logique de calcul. Or, tel que Kosmorro était bâti, deux choix s'offraient à moi : soit j'ajoutais systématiquement le programme en ligne de commande afin de profiter de ses capacités de calcul, soit je devais inclure les nouveaux projets dans celui de Kosmorro.

Aucune des deux solutions ne me convenaient : la première parce que cela signifiait qu'on ajoutait un programme en dépendance alors qu'on n'en a en fait pas tant besoin que ça, la seconde parce que ça signifiait créer un méga-dépôt qui deviendrait extrêmement difficile à maintenir avec le temps.

J'ai donc entrepris d'exporter toute la logique de calcul afin qu'elle soit désormais dans son propre paquet, que les développeurs nomment librairie (ou bibliothèque pour ceux qui se la pètent à ne pas utiliser des anglicismes comme tout le monde 👀), de sorte que Kosmorro ne soit désormais plus qu'une sorte de coquille vide y faisant appel afin de présenter les résultats de ses calculs d'une façon toute belle.

Cette nouvelle architecture présente deux avantages conséquants :

Tout comme Kosmorro depuis ses débuts, la Kosmorrolib est distribuée sous licence libre, ce qui signifie que tout le monde peut l'intégrer à son propre travail. Attention cependant, la licence n'est pas tout à fait la même selon la version que vous choisirez :

Texte de la licence CeCILL-C

Texte de la licence GNU AGPL

La librairie est conçue pour être facile d'utilisation : pas de calcul compliqué à réaliser. Une fois que vous avez installé la librairie, importez-la dans votre programme Python, et vous obtenez un accès direct à toutes les fonctions disponibles.

Par exemple, si vous souhaitez obtenir tous les événements du 21 décembre 2021, procédez comme ceci :

from datetime import date
import kosmorrolib

events = kosmorrolib.get_events(date(2021, 12, 21))
# events = [<Event type=SEASON_CHANGE objects=[] start=2021-12-21 15:59:18.269509+00:00 end=None details={'season': <SeasonType.DECEMBER_SOLSTICE: 3>} />]

Vous obtenez une liste d'objets contenant les événements qui surviendront à cette date. Ici, il y en a un, le solstice de décembre (hiver si vous vivez dans l'hémisphère nord, été dans l'hémisphère sud). Je profite d'ailleurs de ces quelques lignes pour remercier LiamNgn pour sa contribution qui a permis cette détection des changements de saison !

Si vous avez besoin d'aide pour utiliser la librairie, une documentation est bien entendu disponible.

Principe KISS

Installer et utiliser la Kosmorrolib

Documentation de la Kosmorrolib

Version 1.0 : la feuille de route !

Désormais suffisamment stable, il est temps pour Kosmorro de basculer en version 1.0 (vous n'imaginez pas à quel point le fait d'écrire cette phrase éveille en moi une excitation intense) ! Mais cela doit se faire avec quelques précautions, c'est pourquoi je vous propose de dresser une feuille de route de l'avenir proche de Kosmorro, de la Kosmorrolib, et des projets à venir liés au projet.

Vous n'y verrez pas beaucoup de dates exactes, car cela dépend de mes disponibilités.

J'espère que tous ces futurs projets vous plairont autant qu'il me tarde de les réaliser.

Je l'ai beaucoup dit ces derniers temps, Kosmorro est le projet le plus ambitieux que j'ai réalisé jusqu'ici, et je souhaite terminer ce billet en remerciant toutes les personnes qui m'ont soutenu dans sa réalisation :

Merci à tous. ♥