Using Plotly.rs in CI with `static_export_wd_download` fails
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Rust
- Sterne
- 1.5k
- Forks
- 128
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
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 crc@2.1.0 -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 crc@3.4.0 -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: plotly_static@0.1.0: You can specify WEBDRIVER_PATH to an existing chromedriver/geckodriver installation to avoid downloads.
warning: plotly_static@0.1.0: You can override browser detection using BROWSER_PATH environment variable.
warning: plotly_static@0.1.0: 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.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit dem plotly_static-Build-Skript und der Feature-Konfiguration für static_export_geckodriver/static_export_wd_download und reproduziere anschließend den Fehler auf dem generischen Ubuntu GitHub Actions Runner. Vergleiche den Erkennungspfad für Browser und Treiber mit dem erfolgreichen lokalen Build; als abgeschlossen gilt die Aufgabe, wenn das dokumentierte CI-Setup den statischen Export ohne den gemeldeten Fehler im Build-Skript abschließt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- github-actions, rust
- Bereich
- ci-cd, data-visualization
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 35/100