Débugger Duniter v1

Je voudrais débugger Duniter v1, en ajoutant des console.log() dans la méthode requirementsOfIdentity() pour trouver l’origine des lenteurs actuelles.

Mais encore faut-il réussir à faire tourner la requete (via un test d’intégration ou autre) sur la BDD de prod, non ?

As tu déjà débugger DUniter sur une BDD copie de prod ?

Non, je n’ai jamais utilisé d’outils de debug en None/TS. Avec des logs autant le compiler directement et l’exécuter comme en prod, non ?

Oui. J’ai essayé de compiler duniter, mais je n’arrive pas à lancer exécutable. Il ne reconnait aucune commande du CLI…

cd duniter
cargo xtask build
./target/release/duniter wizard bma

This upgrade requires resetting the data and resynchronization (duniter reset data && duniter sync).
2023-05-15T13:33:53+02:00 - error: This upgrade requires resetting the data and resynchronization (duniter reset data && duniter sync).

Et si je lance `reset data``j’ai la même erreur :

./target/release/duniter reset data
This upgrade requires resetting the data and resynchronization (duniter reset data && duniter sync).
2023-05-15T13:34:23+02:00 - error: This upgrade requires resetting the data and resynchronization (duniter reset data && duniter sync).

EDIT: le tuto de développement indique de lancer la commande :

node bin/duniter sync g1.duniter.org:443

Mais pas mieux : j’ai une erreur “SyntaxError: Invalid or unexpected token”

Sur la branche dev l’exécutable intermédiaire c’est bin/duniter_js. Il y a juste une chose en plus à définir : la variable d’environnement DUNITER_MODE.

Exemple :

Oui c’est un bug de cette version pour ceux qui ont des données 1.8.
Il faut simplement supprimer son répertoire $HOME/.config/duniter/duniter_default manuellement.

La doc ne doit pas être à jour car sous le répertoire bin/ il n’existe que duniter_js désormais.
Essayes plutôt :

DUNITER_MODE=sync bin/duniter_js sync g1.duniter.org

Ça devrait suffire.

À noter que DUNITER_MODE ne prend que ces deux valeurs : sync ou start. Je n’ai pas creusé la différence mais par défaut c’est start, tandis que sync ne sert que pour la synchro.

1 Like

Moi non plus, c’est un bug que je constate depuis longtemps.

Pour la configuration de l’IDE, je ne fais rien de plus que ce que j’explique ici : Débugger Duniter v1 - #4 by cgeek

Mis à part que j’ai toujours une command npm run tsc -w en fond pour transpiler à chaque modification.

1 Like

cool. merci pour ta réponse ! :slight_smile:

Je penses avoir trouvé la raison de la duplication des tests sous WebStorm : c’est juste parcequ’il lance le test “.ts” ET du “.js”
Pour contourner, il suffit de changer le nom du fichier de test, en précisant “.js” au lieu de “.ts” :

2 Likes

@tuxmain pour réussir à modifier duniter-gva, je dois publier mes nouvelles fontions dans le module duniter-core.
Peux tu dire ce que je dois faire ensuite, pour que duniter-gva vois ma mise à jour ?
ce que j’ai fait :

  • modifier <duniter-gva>/Cargo.toml pour que duniter-core pointe vers le chemin relatif (…/duniter-core)
  • cargo build, dans les deux projets
    il y a surement autre chose à faire ?

EDIT: c’est bon, j’ai réussi à tout compiler. Les tests passent tous.
Je vais faire des MR pour duniter-core et duniter-gva

Comme les dépendances sont indiquées dans Cargo.toml par l’adresse du dépôt, il n’y a besoin de rien faire pour les mettre à jour.

Par contre en local il y a un cache. Pour le mettre à jour il faut faire cargo update, ou cargo update -p <crate>.

Pour développer en local on peut utiliser directement un chemin local, en décommentant la ligne patch : (ne pas oublier de la recommenter avant de commit)

[patch.'https://git.duniter.org/nodes/rust/modules/duniter-gva']
duniter-gva = { path = "../duniter-gva" }
1 Like