[SOLVED] Récupération des dépendances Elixir HS

Bonsoir,

Nous avons fait un reset de notre serveur pour tester nos playbooks from scratch.

Avec Mobilizon on a eu une mauvaise surprise lors de la phase mix deps.get : on a eu le cas quelque soit le tag mobilizon tiré. L’arbre de dépendances semble cassé :

Savez-vous ce qui se passe ?

Merci d’avance

fatal: [cagull.cust.milkywan.xyz]: FAILED! => {« changed »: true, « cmd »: « mix deps.get », « delta »: « 0:00:01.564802 », « end »: « 2021-02-04 20:13:43.853667 », « msg »: « non-zero return code », « rc »: 1, « start »: « 2021-02-04 20:13:42.288865 », « stderr »: « ** (Protocol.UndefinedError) protocol String.Chars not implemented for %IO.Stream{device: :standard_io, line_or_bytes: :line, raw: false} of type IO.Stream (a struct)\n (elixir 1.11.3) lib/string/chars.ex:3: String.Chars.impl_for!/1\n (elixir 1.11.3) lib/string/chars.ex:22: String.Chars.to_string/1\n (mix 1.11.3) lib/mix/scm/git.ex:274: Mix.SCM.Git.git!/2\n (mix 1.11.3) lib/mix/scm/git.ex:128: Mix.SCM.Git.checkout/2\n (elixir 1.11.3) lib/file.ex:1553: File.cd!/2\n (mix 1.11.3) lib/mix/dep/fetcher.ex:61: Mix.Dep.Fetcher.do_fetch/3\n (mix 1.11.3) lib/mix/dep/converger.ex:190: Mix.Dep.Converger.all/9\n (mix 1.11.3) lib/mix/dep/converger.ex:201: Mix.Dep.Converger.all/9 », « stderr_lines »: ["** (Protocol.UndefinedError) protocol String.Chars not implemented for %IO.Stream{device: :standard_io, line_or_bytes: :line, raw: false} of type IO.Stream (a struct)", " (elixir 1.11.3) lib/string/chars.ex:3: String.Chars.impl_for!/1", " (elixir 1.11.3) lib/string/chars.ex:22: String.Chars.to_string/1", " (mix 1.11.3) lib/mix/scm/git.ex:274: Mix.SCM.Git.git!/2", " (mix 1.11.3) lib/mix/scm/git.ex:128: Mix.SCM.Git.checkout/2", " (elixir 1.11.3) lib/file.ex:1553: File.cd!/2", " (mix 1.11.3) lib/mix/dep/fetcher.ex:61: Mix.Dep.Fetcher.do_fetch/3", " (mix 1.11.3) lib/mix/dep/converger.ex:190: Mix.Dep.Converger.all/9", " (mix 1.11.3) lib/mix/dep/converger.ex:201: Mix.Dep.Converger.all/9"], « stdout »: « \n20:13:42.916 [error] No configuration file found\n* Updating icalendar (https://github.com/tcitworld/icalendar.git)\nfatal: reference is not a tree: bd08e872c125f70a87c3ac7d87ea2f22a5577059 », « stdout_lines »: ["", « 20:13:42.916 [error] No configuration file found », « * Updating icalendar (https://github.com/tcitworld/icalendar.git) », « fatal: reference is not a tree: bd08e872c125f70a87c3ac7d87ea2f22a5577059 »]}

Hello @Fraifrai,

Peux tu refaire l’installation et uploader ici tout le log, stp ?
Il se passent peut être des choses avant qui peuvent éclairer ton problème …

à la main ça donne ça

mobilizon@cagull:~/live$ mix deps.get

21:24:04.232 [error] No configuration file found
* Updating icalendar (https://github.com/tcitworld/icalendar.git)
fatal: reference is not a tree: bd08e872c125f70a87c3ac7d87ea2f22a5577059
** (Protocol.UndefinedError) protocol String.Chars not implemented for %IO.Stream{device: :standard_io, line_or_bytes: :line, raw: false} of type IO.Stream (a struct)
    (elixir 1.11.3) lib/string/chars.ex:3: String.Chars.impl_for!/1
    (elixir 1.11.3) lib/string/chars.ex:22: String.Chars.to_string/1
    (mix 1.11.3) lib/mix/scm/git.ex:274: Mix.SCM.Git.git!/2
    (mix 1.11.3) lib/mix/scm/git.ex:128: Mix.SCM.Git.checkout/2
    (elixir 1.11.3) lib/file.ex:1553: File.cd!/2
    (mix 1.11.3) lib/mix/dep/fetcher.ex:61: Mix.Dep.Fetcher.do_fetch/3
    (mix 1.11.3) lib/mix/dep/converger.ex:190: Mix.Dep.Converger.all/9
    (mix 1.11.3) lib/mix/dep/converger.ex:201: Mix.Dep.Converger.all/9
mobilizon@cagull:~/live$

Que donne un git clone https://github.com/tcitworld/icalendar.git chez toi ?

cagull@cagull:~$ git clone https://github.com/tcitworld/icalendar.git
Cloning into 'icalendar'...
remote: Enumerating objects: 56, done.
remote: Counting objects: 100% (56/56), done.
remote: Compressing objects: 100% (39/39), done.
remote: Total 651 (delta 24), reused 41 (delta 17), pack-reused 595
Receiving objects: 100% (651/651), 125.06 KiB | 640.00 KiB/s, done.
Resolving deltas: 100% (312/312), done.
cagull@cagull:~$

Par contre

cagull@cagull:~/icalendar$ git checkout bd08e872c125f70a87c3ac7d87ea2f22a5577059
fatal: reference is not a tree: bd08e872c125f70a87c3ac7d87ea2f22a5577059
cagull@cagull:~/icalendar$

oui, ce commit n’existe pas.
moi dans mon mix.lock j’ai une référence au commit e16a3a0b74e07ba79044361fbf5014bed344f2da qui lui existe.
regarde si tu peux modifier ton mix.lock (cherche « icalendar »).

oui c’est là que le commit est référencé mais comment cela se fait-il que quand on checkout le tag 1.0.6 (le dernier) on a ce commit inexistant dans mix.lock ?

on regarde notre playbook le numéro de tag ne doit pas être pris en compte

quoi, la 1.0.6 est sortie !
je viens à peine de me dépatouiller de la 1.0.5 :smiley:

ce commit bdTruc a existé pendant très longtemps puis remplacé par le commie e16Machin.
je ne sais pas pourquoi il est de retour et pourquoi il n’existe plus sur le repo origine.
Peut être @tcit a une idée.

on a forcé le tag 1.0.6 et ça passe :slight_smile:

Alors, vérification faîte, dans le commit mobilizon qui marque la 1.0.6 (48e5ad89e728e800929263d99305a227c3299902), le commit référencé dans le mix.lock pour icalendar est bien le e16a3a0b74e07ba79044361fbf5014bed344f2da.

Es tu sûr d’avoir une install clean ?

L’admin peut supprimer ce thread :slight_smile: même si c’est bizarre des commits qui disparaissent :slight_smile:

C’est quand même inquiétant de pas pouvoir remonter une ancienne version :confused:.

Heu non, l’admin supprime rien du tout svp.
Par contre on peut mettre [SOLVED] dans le titre histoire de pas faire perdre du temps de support.

Je garde des images docker au chaud des différentes versions que j’ai pu mettre en prod.
Mais oui c’est vrai, c’est une peu inquiétant.

C’est parce que cette dépendance devait être temporaire, le mainteneur de la bibliothèque n’ayant pas encore intégré une des corrections que j’ai faite. À la faveur d’un rebase, les commits ont été réécrits, et j’ai omis de penser aux conséquences sur les versions antérieures.