Using Plotly.rs in CI with `static_export_wd_download` fails

Abierto
#379 3 comentarios 1 reacción 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Necesita aclaración
Estado de actividad
Estancado
Stack tecnológico
github-actions, rust

Línea de trabajo

Comienza con el script de compilación de plotly_static y la configuración de funcionalidades de static_export_geckodriver/static_export_wd_download; después, reproduce el fallo en el runner genérico de Ubuntu de GitHub Actions. Compara la ruta de detección del navegador y del driver con la compilación local exitosa; la tarea se considerará terminada cuando la configuración documentada de CI complete la exportación estática sin el error del script de compilación indicado.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
Rust
Estrellas
1.5k
Forks
130
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de plotly/plotly.rs

Todos los issues de plotly/plotly.rs

Issues similares

Más issues de Rust

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.