[Site Docusaurus Gladys] Build en erreur depuis les derniers ajouts côté Airtable

Hello @cicoub13 !

J’ai un petit problème, tu te rappelle tu avais développé le script d’import Airtable en anglais (qui marche super d’ailleurs!), mais le soucis c’est que depuis, si j’essaie d’importer localement les nouveaux périphériques ajoutés sur Airtable, je n’arrive plus à lancer Docusaurus ^^

Je fais:

node scripts/load_integrations.js

ça m’ajoute 56 nouveaux fichiers (images, json, etc…), et tout à l’air de marcher:

Le problème, c’est que quand je relance le site, la page « Intégrations » ne fonctionne plus (elle met des heures à charger – sans succès), et un build ne marche pas.

Je ne suis pas sûr que ce soit de notre faute, j’ai l’impression que ça peut venir de Docusaurus qui a du mal quand on lui ingère trop d’images à traiter, et qu’on ait dépassé une « limite ».

Ou alors, c’est de notre faute et il y a un problème tout bête (genre une image qui manque, un truc du style…) mais ça m’étonnerait, ça ferait une erreur claire

Bon @cicoub13 j’ai réglé le problème tout seul :smiley:

Edit: non, le problème n’est pas réglé. Build infini sur Github actions.

Il y avait un double problème:

En corrigeant les deux, visiblement j’arrive à afficher le site et les builds fonctionnent!

1 Like

J’ai parlé trop vite!

C’est toujours pété visiblement, le build est infini sur Github Actions…

cf

L’erreur sur Github actions:

2021-03-08T06:58:45.3525026Z ##[group]Run ./build.sh
2021-03-08T06:58:45.3525558Z e[36;1m./build.she[0m
2021-03-08T06:58:45.3571277Z shell: /bin/bash -e {0}
2021-03-08T06:58:45.3571855Z ##[endgroup]
2021-03-08T06:58:46.6430726Z 
2021-03-08T06:58:46.6433031Z > gladys-4-docusaurus@1.0.0 postinstall /home/runner/work/v4-website/v4-website
2021-03-08T06:58:46.6434443Z > cd en && npm install && cd ../fr && npm install
2021-03-08T06:58:46.6435062Z 
2021-03-08T06:58:56.4145957Z npm WARN @docusaurus/plugin-content-blog@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.4235669Z npm WARN @docusaurus/plugin-content-docs@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.4313076Z npm WARN @docusaurus/plugin-content-pages@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.4391487Z npm WARN @docusaurus/plugin-debug@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.4478723Z npm WARN @docusaurus/plugin-google-analytics@2.0.0-alpha.37 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.4572167Z npm WARN @docusaurus/plugin-google-gtag@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.4658446Z npm WARN @docusaurus/plugin-ideal-image@2.0.0-alpha.39 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.4747398Z npm WARN @docusaurus/plugin-sitemap@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.4829614Z npm WARN @docusaurus/preset-classic@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.4909901Z npm WARN @docusaurus/plugin-google-analytics@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.4991920Z npm WARN @docusaurus/plugin-sitemap@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.5076229Z npm WARN @docusaurus/theme-classic@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.5151365Z npm WARN @docusaurus/theme-search-algolia@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.5249191Z npm WARN @endiliey/lqip-loader@3.0.2 requires a peer of file-loader@* but none is installed. You must install peer dependencies yourself.
2021-03-08T06:58:56.5371780Z npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules/fsevents):
2021-03-08T06:58:56.5376096Z npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
2021-03-08T06:58:56.5470535Z npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules/watchpack-chokidar2/node_modules/fsevents):
2021-03-08T06:58:56.5474196Z npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
2021-03-08T06:58:56.5610043Z npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules/webpack-dev-server/node_modules/fsevents):
2021-03-08T06:58:56.5612373Z npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
2021-03-08T06:58:56.5613788Z 
2021-03-08T06:58:56.5639583Z audited 1716 packages in 9.485s
2021-03-08T06:58:57.5825084Z 
2021-03-08T06:58:57.5826242Z 124 packages are looking for funding
2021-03-08T06:58:57.5826956Z   run `npm fund` for details
2021-03-08T06:58:57.5827422Z 
2021-03-08T06:58:57.5838635Z found 933 vulnerabilities (927 low, 1 moderate, 5 high)
2021-03-08T06:58:57.5839828Z   run `npm audit fix` to fix them, or `npm audit` for details
2021-03-08T06:59:07.9415998Z npm WARN @docusaurus/plugin-content-blog@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:07.9500549Z npm WARN @docusaurus/plugin-content-docs@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:07.9581055Z npm WARN @docusaurus/plugin-content-pages@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:07.9656513Z npm WARN @docusaurus/plugin-debug@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:07.9729041Z npm WARN @docusaurus/plugin-google-analytics@2.0.0-alpha.37 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:07.9812613Z npm WARN @docusaurus/plugin-google-gtag@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:07.9891795Z npm WARN @docusaurus/plugin-ideal-image@2.0.0-alpha.39 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:07.9969374Z npm WARN @docusaurus/plugin-sitemap@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:08.0048846Z npm WARN @docusaurus/preset-classic@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:08.0158446Z npm WARN @docusaurus/plugin-google-analytics@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:08.0253014Z npm WARN @docusaurus/plugin-sitemap@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:08.0331413Z npm WARN @docusaurus/theme-classic@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:08.0408575Z npm WARN @docusaurus/theme-search-algolia@2.0.0-alpha.58 requires a peer of @docusaurus/core@^2.0.0 but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:08.0484329Z npm WARN @endiliey/lqip-loader@3.0.2 requires a peer of file-loader@* but none is installed. You must install peer dependencies yourself.
2021-03-08T06:59:08.0617168Z npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules/fsevents):
2021-03-08T06:59:08.0618792Z npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@2.1.3: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
2021-03-08T06:59:08.0708620Z npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules/watchpack-chokidar2/node_modules/fsevents):
2021-03-08T06:59:08.0710347Z npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
2021-03-08T06:59:08.0796188Z npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.13 (node_modules/webpack-dev-server/node_modules/fsevents):
2021-03-08T06:59:08.0798586Z npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.13: wanted {"os":"darwin","arch":"any"} (current: {"os":"linux","arch":"x64"})
2021-03-08T06:59:08.0799947Z 
2021-03-08T06:59:08.0832702Z audited 1716 packages in 9.472s
2021-03-08T06:59:09.1281464Z 
2021-03-08T06:59:09.1282943Z 124 packages are looking for funding
2021-03-08T06:59:09.1284002Z   run `npm fund` for details
2021-03-08T06:59:09.1284496Z 
2021-03-08T06:59:09.1289505Z found 933 vulnerabilities (927 low, 1 moderate, 5 high)
2021-03-08T06:59:09.1290616Z   run `npm audit fix` to fix them, or `npm audit` for details
2021-03-08T06:59:09.3685909Z audited 152 packages in 23.574s
2021-03-08T06:59:09.4326662Z 
2021-03-08T06:59:09.4327502Z 4 packages are looking for funding
2021-03-08T06:59:09.4328030Z   run `npm fund` for details
2021-03-08T06:59:09.4328327Z 
2021-03-08T06:59:09.4337051Z found 1 high severity vulnerability
2021-03-08T06:59:09.4337897Z   run `npm audit fix` to fix them, or `npm audit` for details
2021-03-08T06:59:09.9692267Z 
2021-03-08T06:59:09.9694460Z > my-website@0.0.0 build /home/runner/work/v4-website/v4-website/en
2021-03-08T06:59:09.9695570Z > docusaurus build
2021-03-08T06:59:09.9696141Z 
2021-03-08T06:59:11.3906591Z Creating an optimized production build...
2021-03-08T06:59:11.8991700Z [info] [webpackbar] Compiling Client
2021-03-08T06:59:11.9217023Z [info] [webpackbar] Compiling Server
2021-03-08T07:13:44.4220901Z 
2021-03-08T07:13:44.4222642Z <--- Last few GCs --->
2021-03-08T07:13:44.4223196Z 
2021-03-08T07:13:44.4224703Z [3229:0x4ce0f70]   872349 ms: Mark-sweep 1990.9 (2067.7) -> 1973.9 (2067.0) MB, 2169.4 / 0.2 ms  (average mu = 0.244, current mu = 0.256) allocation failure scavenge might not succeed
2021-03-08T07:13:44.4227033Z [3229:0x4ce0f70]   872444 ms: Scavenge 1989.0 (2067.0) -> 1976.3 (2067.0) MB, 12.7 / 0.0 ms  (average mu = 0.244, current mu = 0.256) allocation failure 
2021-03-08T07:13:44.4229622Z [3229:0x4ce0f70]   872547 ms: Scavenge 1990.1 (2067.0) -> 1978.9 (2067.0) MB, 22.7 / 0.0 ms  (average mu = 0.244, current mu = 0.256) allocation failure 
2021-03-08T07:13:44.4230693Z 
2021-03-08T07:13:44.4232342Z 
2021-03-08T07:13:44.4233332Z <--- JS stacktrace --->
2021-03-08T07:13:44.4233856Z 
2021-03-08T07:13:44.4234496Z ==== JS stack trace =========================================
2021-03-08T07:13:44.4234969Z 
2021-03-08T07:13:44.4235555Z     0: ExitFrame [pc: 0x140a7f9]
2021-03-08T07:13:44.4236321Z Security context: 0x32e4e90008d1 <JSObject>
2021-03-08T07:13:44.4238348Z     1: /* anonymous */ [0x26edba36dd71] [/home/runner/work/v4-website/v4-website/en/node_modules/acorn/dist/acorn.js:~808] [pc=0x12746eec88ce](this=0x22c8d4304271 <Parser map = 0x1a1ae9a7ec39>,0x0a9642f8b859 <String[#3]: for>,0x2ee3d23404b1 <undefined>,0x2ee3d23404b1 <undefined>)
2021-03-08T07:13:44.4240491Z     2: /* anonymous */ [0x26edba36e1f1] [/home/runner/work/v4-website/v4-website/en/...
2021-03-08T07:13:44.4241521Z 
2021-03-08T07:13:44.4244430Z FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
2021-03-08T07:13:44.4931042Z  1: 0xa18150 node::Abort() [node]
2021-03-08T07:13:44.4931907Z  2: 0xa1855c node::OnFatalError(char const*, char const*) [node]
2021-03-08T07:13:44.4932979Z  3: 0xb9705e v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node]
2021-03-08T07:13:44.4934117Z  4: 0xb973d9 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node]
2021-03-08T07:13:44.4935284Z  5: 0xd54655  [node]
2021-03-08T07:13:44.4936094Z  6: 0xd54ce6 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [node]
2021-03-08T07:13:44.4937444Z  7: 0xd615a5 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [node]
2021-03-08T07:13:44.4939291Z  8: 0xd62455 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
2021-03-08T07:13:44.4941620Z  9: 0xd64f0c v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
2021-03-08T07:13:44.4944822Z 10: 0xd2b92b v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType, v8::internal::AllocationOrigin) [node]
2021-03-08T07:13:44.4948355Z 11: 0x106defe v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [node]
2021-03-08T07:13:44.4958799Z 12: 0x140a7f9  [node]
2021-03-08T07:15:45.0450697Z ##[error]The operation was canceled.

Ok JavaScript heap out of memory

Bon, visiblement l’erreur mémoire est plus la conséquence que le symptôme du problème…

Le problème a l’air d’être lié à sharp qui a du mal quand il y a trop d’images:

11:12:13 PM: (sharp:1883): GLib-GObject-WARNING **: 15:12:13.499: gtype.c:4265: type id '0' is invalid
11:12:13 PM: (sharp:1883): GLib-GObject-WARNING **: 15:12:13.499: can't peek value table for type '<invalid>' which is not currently referenced
11:12:13 PM: (sharp:1883): GLib-GObject-WARNING **: 15:12:13.499: gvalue.c:188: cannot initialize GValue with type '(null)', this type has no GTypeValueTable implementation

Ce qui entraine une boucle infini, puis fuite mémoire, puis OOM JS.

Si quelqu’un a une idée, @VonOx ou @cicoub13 je suis preneur :slight_smile:

Je continue d’investiguer en attendant mais c’est vraiment mystique…

Edit: on est pas les seules, le problème existe aussi chez Gastby:

Ok j’ai une piste.

Visiblement il y a un problème avec les versions en dessous de 0.27.1 de sharp.

Actuellement, avec la version de Docusaurus qu’on utilise, on est en 0.22.1, d’où le problème.

Ah tiens ! sharp !

Il y’a quelques semaines @Terdious et @damalgos l’avait ajouté sur le service netatmo , mais impossible de build les images arm avec ce package.

1 Like

Bon, je suis entrain de mettre à jour docusaurus dans sa dernière version, c’est pas simple il y a beaucoup de changements breaking ^^

Je viens de tomber sur ça , sachant que l’actions s’execute sur ubuntu , ça se tente

Je pense pas qu’on ait quelque chose à faire au niveau système :slight_smile:

Il y a clairement un bug dans la version de sharp qu’on utilise, et le vrai remède c’est de mettre à jour sharp !

Je suis d’accord, j’essaye juste de débloquer le bousin :slight_smile:

Au passage je viens de découvrir la fonction yarn ( pas d’aquivalent npm a priori ) pour gérer une version sur une dépendance

"resolutions": {
    "sharp": "^0.27.1"
  }

Bon, ça fait plusieurs heures que j’essaie de mettre à jour Docusaurus, et je suis tombé sur des bugs docusaurus bien deep :stuck_out_tongue:

Ils ont un problème avec leur validation Joi qui attend à ce que « prependBaseUrlToHref » soit un string, alors que dans leur doc ils disent que c’est un boolean (ce qui ferait sens)…

ça sent la PR côté docusaurus…

Issue créé chez Docusaurus: "prependBaseUrlToHref" is defined as a string in Joi validation, and it's supposed to be a boolean in the doc · Issue #4363 · facebook/docusaurus · GitHub

J’aurais pas le temps de leur faire une PR aujourd’hui, pour l’instant je leur ai créé une issue et on verra ce qu’ils disent…

En attendant, je pense qu’on est bloqué. On ne peut pas passer à la dernière version ^^

Pour info, la dernière version de Docusaurus (alpha-72) gère l’internationalisation!

Aujourd’hui j’essaie donc de passer à cette version, ça a l’air vraiment stylé :slight_smile:

D’ailleurs, je me suis rendu compte que le lead mainteneur de ce projet est français, et je suis dans un groupe avec lui ^^

1 Like

Pour ceux qui veulent suivre, la PR est là :

Le travail est monstre, ça va me prendre du temps je pense

1 Like

Super initiative. Est-ce que tu ne peux pas le faire en 2 temps ? Mettre à jour en gardant les versions en/fr puis activer l’internationalisation ?

Pas trop le temps pour t’aider mais pour tester oui :computer:

1 Like

Il y a quand même pas mal de différence, comme c’est encore en alpha l’API a pas mal changé entre la version qu’on utilisait et la version 72 là.

De toute façon je suis lancé :stuck_out_tongue: J’ai créé un projet Docusaurus vide, et j’ai copié progressivement tout dedans. J’ai quasiment le site EN fonctionnel là.

Ensuite il va falloir générer les fichiers de trad FR, et copier les trads depuis le site actuel. C’est un peu du travail de fourmis mais bon il faut bien le faire ^^

1 Like

Bon j’ai passé la matinée dessus, le site build enfin !!

J’ai du traduire toutes les parties de la doc qui étaient présentes en FR mais pas en EN.

Franchement c’est vraiment stylé cette nouvelle version de Docusaurus, il détecte les liens morts, les images qui pointent sur rien, c’est vraiment bien fait. J’ai trouvé beaucoup de problèmes sur le site grâce à ça :slight_smile:

Hop, une preview du site pour ceux qui veulent tester:

[EDIT: le site est live! => https://gladysassistant.com/ pour tester ! ]

En gros:

  1. Désormais, la racine du site est la version anglaise du site
  2. En “/fr” il y a la version française du site
  3. J’ai du transférer tous les articles FR qui n’était pas sur le site anglais. J’en ai traduit certains, mais pas tous parce que c’est vraiment long… ^^

Normalement, niveau doc il y a la parité complète entre la version FR et EN du site (tout traduit :stuck_out_tongue: )

Dites moi ce que vous en pensez !

Bon, j’ai mis en ligne le site, c’était pour moi déjà bien mieux que là :slight_smile:

N’hésitez pas si vous voyez des trucs, de mon côté je continue à regarder !