Skip to content

Agrégation, héritage, PDF, etc.

Compare
Choose a tag to compare
@laowantong laowantong released this 05 Sep 13:20
· 431 commits to master since this release

Full Changelog: 2.3.9...3.0

Nouvelles fonctionnalités et modifications

  • Majeures :
    • Visualisation des agrégations (issue #38).
    • Héritage/spécialisation (issue #16). Approche moins complète, mais plus simple que celle expérimentée dans la PR #52.
    • Génération d'une sortie en PDF ou en PNG (en local, requiert CairoSVG, à installer séparément). Options --pdf et --png en ligne de commande, onglet « Options » sous Mocodo online.
    • Interactivité des SVG : possibilité de faire apparaître progressivement les éléments d'un MCD à des fins pédagogiques.
  • Mineures :
    • Nouveau serveur pour Mocodo online, même adresse (merci Cyril !).
    • Génération d'une version non interactive des SVG (si nécessaire).
    • Sous Mocodo online, sous l'onglet Relations, cliquer sur le titre d'une sortie pour la copier dans le presse-papier.
    • pip install mocodo installe le logiciel et la commande magique associée.
    • Sous Jupyter, %load_ext mocodo au lieu de %load_ext mocodo_magic.
    • Les clés primaires sont passées en tête de la liste d'attributs.
    • Les clés étrangères sont par défaut préfixées d'un # dans les sorties HTML et Markdown.
    • Sous Mocodo online, les réarrangements obtenus avec et sans alt sont inversés : sans alt, aucune contrainte ; avec alt, réarrangement contraint par les dimensions de la plus petite grille « équilibrée ». Ajout de la combinaison alt + shift pour un réarrangement sur la deuxième plus petite grille « équilibrée ».
    • Les plus petites grilles équilibrées pour 2 et 3 boîtes sont respectivement (2x1 et 3x1) au lieu de 2x2.
    • Les caractères accentués sont maintenant autorisés dans le titre du MCD.
    • L'ordre des relations est maintenant stable, et ne dépend plus de l'ordre dans lequel sont énumérées les boîtes dans le texte d'entrée.
    • Dans la version HTML du schéma relationnel expliqué, les explications sont maintenant divulguées à la demande (balise <details>). Quand aucune n'est divulguée, la sortie est équivalente à la version HTML non verbeuse. De ce fait, cette dernière n'est plus proposée dans les options de Mocodo online, tandis que la première est cochée par défaut.
    • Les libellés générés lors de l'obfuscation ne peuvent plus être des mots composés et leur longueur est supérieure ou égale à 3.
    • Réduire une clé primaire (agrégation) et forcer la conversion d'une association en table se faisaient avec la même syntaxe (en préfixant d'un "/" un nom d'entité). Cette syntaxe ambiguë est remplacée respectivement en préfixant d'un "/" une cardinalité 0N ou 1N, et en mettant le nom de l'association entre crochets droits.
    • Table des matières latérale ou flottante dans la documentation.

Corrections

  • Sous Mocodo online, le texte d'entrée est conservé en cas d'échec du réarrangement (issue #50).
  • Possibilité d'appliquer un facteur multiplicatif à la largeur des libellés lorsque celle-ci est incorrecte (peut arriver sous Windows et Linux). Option --adjust_width en ligne de commande, onglet « Options » sous Mocodo online.
  • L'obfuscation fonctionne pour les MCD mettant en œuvre une réduction de clé primaire.
  • L'obfuscation respecte les identifiants composites (p. ex., POSITION: latitude, _longitude).
  • L'obfuscation respecte l'option --seed (ce n'était plus le cas avec Python 3).

Principaux changements internes

  • Dans la documentation et le code, ce qui s'appelait « annotation » s'appelle maintenant « note ». L'option --hide_annotations devient --hide_notes.
  • Le SVG est généré directement, et non plus par génération et exécution d'un code Python.
  • Tests de génération des relations remplacés par des instantanés (snapshot testing).
  • Modernisation partielle du code et de sa structure.
  • Passage à Poetry.
  • Mise à jour de la localisation en français.
  • Dans le code, le qualificatif foreign est désormais réservé aux clés étrangères. Les migrations d'attributs non identifiants ou de clés d'entités qui ne donnent pas lieu à une création de table, sont distinguées par le qualificatif outer.
  • À des fins de débogage, le type interne d'un champ est affiché au survol de la sortie html_verbose.

Fonctionnalités retirées

  • Support de Python 2.7.
  • Support du logiciel macOS Nodebox (option --image_format).
  • Support de Tkinter pour le calcul de la taille des libellés (option --tkinter).
  • Réarrangement par résolution d'un programme linéaire (options --arrange lp et --engine [{cplex,gurobi}]) (issue #55).
  • Support du caractère \ dans le texte-source (sauf pour l'héritage) (issue #57).
  • Compression automatique des lignes consécutives réduites à un deux-points.
  • Option --extract, puisque le fichier de géométrie est maintenant généré systématiquement.
  • Option --obfuscation_max_length.