Génération et dépendances

Please use this forum to signal bugs.
Merci d'utiliser ce forum pour signaler des bugs.

Génération et dépendances

Postby Teaniel » Fri 18 Apr 2014 13:20

Bonjour,

Un petit souci à signaler : si vous ajoutez une dépendance à une classe et que vous la générez tout de suite ensuite, la classe ne sera pas considérée comme modifiée et donc la génération ne sera pas rafraîchie.
test : générer l'artifact d'une classe, ajouter une dépendance à la classe vers une autre classe (pour provoquer l'ajout d'un #include), générez la classe à nouveau, vous obtiendrez comme réponse que les fichiers n'auront pas été modifiés.
Contournement trouvé actuellement : ajouter des caractères dans un champs (description ou corps de fonction). Alors la génération est effectuée.
Note : Ma version est actuellement Cordialement, 6.4.7 sous Ubuntu.

Cordialement,
Marc
Teaniel
 
Posts: 75
Joined: Sun 28 Oct 2012 18:57

Re: Génération et dépendances

Postby Bruno Pagès » Fri 18 Apr 2014 17:04

Bonjour,

Je n'arrive pas à reproduire votre problème dans la version actuelle ou la 6.4.7

En C++ une relation de dépendance ne produit rien si sa définition est vide, ce qui n'est pas le cas par défaut sauf si la dépendance a été créé alors que C++ n'était pas positionné via le menu global "Language" ou bien-sûr si vous éditer la relation et utilisez le bouton "not generated in C++"

Contournement trouvé actuellement : ajouter des caractères dans un champs (description ou corps de fonction)


je ne comprends pas pourquoi vous parlez de "fonction" puisqu'il s'agit d'une relation

Cordialement,

Bruno
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 465
Joined: Mon 20 Feb 2012 08:23
Location: France

Re: Génération et dépendances

Postby Teaniel » Fri 18 Apr 2014 20:56

Je vous demande pardon, je viens également d'essayer de reproduire le problème et je n'y arrive plus...
J'ai du effectivement me mettre dans un de ces cas particuliers.
Car en effet, à plusieurs reprises cela m'est arrivé, de déposer une relation de dépendance dans l'unique but d'ajouter un #include qui manquait au moment de la compilation, et de n'obtenir aucun effet (la génération me répondait qu'aucun fichier n'avait été modifié).
Désolé pour le dérangement.

je ne comprends pas pourquoi vous parlez de "fonction" puisqu'il s'agit d'une relation
L'idée était de provoquer la génération du fichier dans lequel la relation était exprimée (là où le #include devait apparaître). Pour cela, modifier une opération ou une description de la classe source est une bonne solution.

Par contre je viens tout de même de trouver une petite anomalie : Lorsque vous modifiez pour la première fois une dépendance en la basculant de '#include dans les entêtes' (valeur par défaut) à '#include dans les sources' et que vous générez (attention ça doit être la seule modification cause de cette génération), alors la génération n'est pas faite. Les modifications suivantes provoquent la génération normalement par contre.

Cordialement,
Marc
Last edited by Teaniel on Fri 18 Apr 2014 21:13, edited 1 time in total.
Teaniel
 
Posts: 75
Joined: Sun 28 Oct 2012 18:57

Re: Génération et dépendances

Postby Bruno Pagès » Fri 18 Apr 2014 21:09

Il n'y a pas de problème, les bugs ça existent, si la chose arrive encore et que vous avez une procédure pour le reproduire merci de me le signaler.

Cordialement

Bruno
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 465
Joined: Mon 20 Feb 2012 08:23
Location: France

Re: Génération et dépendances

Postby Teaniel » Fri 18 Apr 2014 21:15

Oups, j'ai édité mon post pendant que vous me répondiez...

Désolé...
Marc
Teaniel
 
Posts: 75
Joined: Sun 28 Oct 2012 18:57

Re: Génération et dépendances

Postby Bruno Pagès » Sat 19 Apr 2014 09:41

Je ne reproduit pas plus votre 'nouveau' problème

Notez que la modification d'un élément via un éditeur n'est effective qu'après confirmation (bouton 'ok'), cette dernière fermant l'éditeur. L'éditeur de relation n'est pas 'modal', vous pouvez donc éditer une relation et demander la génération de code avant la validation/invalidation de votre édition, je pense que c'est ce que vous avez fait.

Pour information la génération de code a toujours lieu, elles n'est pas conditionnée au fait qu'au moins un des éléments impactant la génération ai ou non été modifié depuis la dernière génération de code. La génération de code est faite artifact par artifact en mémoire, une fois la génération la génération d'un artifact finie je compare le résultât produit en mémoire et le fichier sur disque s'il existe pour décider ou non d'écraser/créé celui-ci avec le nouveau contenu et ce qu'elle que soit la différence du moment qu'il y en a une. Le but étant bien évidemment de ne pas changer la date de dernière modification d'un fichier pour rien, invalidant des Makefile ou équivalents.
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 465
Joined: Mon 20 Feb 2012 08:23
Location: France

Re: Génération et dépendances

Postby Teaniel » Mon 21 Apr 2014 19:10

Bonsoir,

Désolé.
Et merci pour ces précisions.
J'ai refait un essai et effectivement, ma classe cible est externe (ce qui réduit considérablement la portée du bug, j'en conviens). Je l'ai refait dans un projet test et cette fois j'en suis à peu près sur (désolé, à force de me tromper je n'ose plus :oops: )
Donc créer et déployer une classe vide. Lui ajouter un lien de dépendance vers une classe externe (c++). Générer. Tout est normal (#include apparaît dans le .h).
Editer le lien et cliquer dans l'onglet c++ "Générer dans les sources". Générer à nouveau. Aucun fichier n'est modifié (dans mon projet la réponse est xxx.h not modified ... xxx.cpp not modified, alors que dans le projet test on a juste le message 0 error 0 warning). Comme dit plus haut, si ensuite vous modifiez à nouveau le lien, la génération se fait ensuite normalement.

Bon. Utilisant les widget QT, j'utilise pas mal les classes externes (je suis en train de constituer une librairie QT au fur et à mesure des nouveaux objets que j'utilise). C'est pourquoi j'ai cru sans penser à le vérifier que le problème était beaucoup plus général.
Mes excuses pour le dérangement supplémentaire que vous a causé cette imprécision.

Cordialement,
Marc
Teaniel
 
Posts: 75
Joined: Sun 28 Oct 2012 18:57

Re: Génération et dépendances

Postby Bruno Pagès » Tue 22 Apr 2014 15:58

re Bonjour,

Vous dites que par défaut (à la création de la relation) l'#include est produit dans le header ? c'est étrange

Pour moi au contraire pas défaut une dépendance produit l'#include dans le source, pas dans le header, donc en éditant la relation une première fois pour mettre l'#include dans le source vous ne faites aucun changement, et la génération n'a pas à écraser un fichier déjà à jour
ImageAuthor of Bouml
Bruno Pagès
 
Posts: 465
Joined: Mon 20 Feb 2012 08:23
Location: France

Re: Génération et dépendances

Postby Teaniel » Fri 25 Apr 2014 20:53

Bonjour :)

Ben...
Je dépose une dépendance entre deux classes.
Je double clique dessus et ouvres le volet C++
Je vois "#include dans les entetes"
Si je clique "#include dans le source" ça change.
Et vous avez raison, si je créée le lien et que je génère, le #include est dans le source.
Donc petit bug d'affichage, car il devrait indiquer '#include dans les sources".

Cordialement,
Marc
Teaniel
 
Posts: 75
Joined: Sun 28 Oct 2012 18:57


Return to Bug reports / Rapports de bugs

Who is online

Users browsing this forum: No registered users and 1 guest

cron