Using Plotly.rs in CI with `static_export_wd_download` fails

Ouverte
#379 3 commentaires 1 réaction 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
35/100
Type d'issue
Bug
Clarté
À clarifier
Activité
À l'abandon
Stack technique
github-actions, rust

Piste de recherche

Commencez par le script de build de plotly_static et la configuration des fonctionnalités static_export_geckodriver/static_export_wd_download, puis reproduisez l’échec sur le runner Ubuntu générique de GitHub Actions. Comparez le chemin de détection du navigateur et du driver avec le build local réussi ; le travail sera considéré comme terminé lorsque la configuration CI documentée effectuera l’export statique sans l’erreur signalée dans le script de build.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

I have a GitHub Actions CI that has been building with plotly.rs fine for a year, but started failing today. I was building with this:

plotly = { version = "0.13.5", features = ["kaleido", "kaleido_download"] }

which failed due to errors like this:

error[E0412]: cannot find type `Table` in crate `crc`
  --> /Users/bart/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/lzma-rust2-0.15.3/src/xz.rs:33:33
   |
33 | const CRC32: crc::Crc<u32, crc::Table<16>> =
   |                                 ^^^^^ not found in `crc`

It turns out that under my project I have two versions of crc being used, and somehow (because plotly_kaleido uses it as a build-dependency? Shouldn't cargo handle this fine?) they are colliding:

❯ cargo tree -p [email protected] -i    
crc v2.1.0
└── lzma-rust2 v0.15.3
    └── zip v7.1.0
        [build-dependencies]
        └── plotly_kaleido v0.13.6
            └── plotly v0.13.5

My project uses sqlx:

❯ cargo tree -p [email protected] -i    
crc v3.4.0
└── sqlx-core v0.8.6
    ├── sqlx v0.8.6

So instead of fighting plotly_kaleido, it being deprecated, I switched to this:

plotly = { version = "0.14", features = ["static_export_geckodriver", "static_export_wd_download"] }

Which works fine on my local machine, but when I build in GitHub actions on the generic ubuntu runner, I get this

warning: [email protected]: You can specify WEBDRIVER_PATH to an existing chromedriver/geckodriver installation to avoid downloads.
warning: [email protected]: You can override browser detection using BROWSER_PATH environment variable.
warning: [email protected]: geckodriver selected but not installed, will be downloaded ... 
error: failed to run custom build command for `plotly_static v0.1.0`
Caused by:
  process didn't exit successfully: `/__w/foo/bar/target/debug/build/plotly_static-60b220e432895492/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-changed=src/lib.rs
  cargo::rerun-if-changed=/github/home/.local/bin
  cargo::warning=You can specify WEBDRIVER_PATH to an existing chromedriver/geckodriver installation to avoid downloads.
  cargo::warning=You can override browser detection using BROWSER_PATH environment variable.
  cargo::warning=geckodriver selected but not installed, will be downloaded ... 
  --- stderr
  Error: Failed to detect browser path for geckodriver
  Caused by:
      0: Failed to run command
      1: cannot find binary path
warning: build failed, waiting for other jobs to finish...

My assumption would be that static_export_wd_download takes care of downloading whatever rendering engine I'd need. Maybe I'm misunderstanding the requirements for not using kaleido, but seems like some sort of bug.

Langage dominant
Rust
Étoiles
1.5k
Forks
130
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de plotly/plotly.rs

Toutes les issues de plotly/plotly.rs

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.