CI: Double compute performance, halve build jobs - #150
Conversation
f6c9b42 to
fbb75f3
Compare
There was a problem hiding this comment.
The Nix provided sqlite3 library is of a slightly different version that the one bundled with libsqlite-sys crate, which causes some small differences in the explanation of the query plans.
There was a problem hiding this comment.
Here you can spot the reduction in dependencies! But the workspace hack still makes sense because that consolidates the feature selection as well, which also reduces the amount of recompiles of the same (transitive) dependency.
radekchannable
left a comment
There was a problem hiding this comment.
Some more suggestions but I understand if not all of them are wanted, actionable right now or at all.
| tracing = { version = "0.1.41", features = ["log"] } | ||
| tracing-opentelemetry = { version = "0.33.0" } | ||
| tracing-subscriber = { version = "0.3", features = ["std", "env-filter", "fmt"] } | ||
| url = { version = "2.5.2" } |
There was a problem hiding this comment.
By pinning idna_adapter to 1.1.0 this will use unicode-rs instead of ICU4X for working with Unicode domains, which should build much faster. I think we only use this for talking to GCS, Opsqueue server, and Sentry, none of which are hosted on Unicode domains, so we could even disable Unicode domain support entirely. See https://docs.rs/crate/idna_adapter/latest.
There was a problem hiding this comment.
ICU4X as the default
I think this indicates that the ICU4X2.2 is indeed used.
Lines 1402 to 1410 in fbb75f3
I switched to idna_adapter = v1.1 to use unicode.rs.
| pyo3-async-runtimes = { version = "0.28.0", features = ["tokio-runtime", "unstable-streams"] } | ||
| pyo3-log = { version = "0.13.3" } | ||
| rand = { version = "0.10.1" } | ||
| reqwest = { version = "0.13.2", default-features = false, features = ["json"] } |
There was a problem hiding this comment.
If we use curl instead of reqwest for talking to GCS, Opsqueue server, and Sentry that would save a lot of build time.
There was a problem hiding this comment.
I am not changing the internal guts in this PR. The development experience when using libcurl from Rust is also worse.
|
@OpsBotPrime merge! |
More effective caching between the nix jobs.
Approved-by: ReinierMaas Priority: Normal Auto-deploy: false
|
Rebased as c239da7, waiting for CI … |
|
CI job 🟡 started. |
888ff06 to
c239da7
Compare
More effective caching between the Nix builds by running in the same job.
Share feature flags between Rust builds by using
cargo hakari.