Skip to content

chore(deps): upgrade egui to 0.34.2#857

Draft
lklimek wants to merge 5 commits into
v1.0-devfrom
chore/upgrade-egui-0.34
Draft

chore(deps): upgrade egui to 0.34.2#857
lklimek wants to merge 5 commits into
v1.0-devfrom
chore/upgrade-egui-0.34

Conversation

@lklimek

@lklimek lklimek commented May 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Upgrades the egui-family dependencies from 0.33.3 to 0.34.2:

  • egui, eframe, egui_extras, egui_kittest0.34.2
  • egui_commonmark0.23.0 (egui-0.34-compatible release)

Egui 0.34 ships subtler font rendering (Skrifa + font hinting), unifies the panel API, makes AccessKit always-on, and deprecates a number of Context-rooted call sites. Most of the diff is mechanical renames; runtime behavior is preserved.

Notable API changes addressed

  • App::update(&mut self, ctx, frame)App::ui(&mut self, _ui: &mut Ui, frame: &mut Frame). Body is preserved via let ctx = _ui.ctx().clone(); to keep ~250 ctx-using call sites stable.
  • Context::style() / set_style()global_style() / set_global_style(). ui.ctx().style() chains collapsed to idiomatic ui.style().
  • egui::SidePanel / TopBottomPanelegui::Panel::{left,right,top,bottom}.
  • egui_commonmark::CommonMarkViewer API unchanged in 0.23.
  • App::on_exit signature drops _gl: Option<&glow::Context> — the project is wgpu-only.
  • AccessKit feature flag removed in egui (always compiled in). Runtime gate on DASH_EVO_TOOL_ACCESSIBILITY env var preserved in src/app.rs.

Strategic deferral (debt tracked)

Panel::show(ctx, …) is deprecated in favor of Panel::show_inside(ui, …), which would require threading &mut Ui through 60+ screen entrypoints. To keep this PR within a focused scope, the deprecation is contained at the island_central_panel helper (src/ui/components/styled.rs:543) and direct call sites via narrow #[allow(deprecated)] blocks. A TODO(egui-0.35) breadcrumb documents the deferred refactor — the broader migration to show_inside(ui, …) should land before egui's next deprecation cycle removes Panel::show(ctx, …) outright.

User-visible impact

  • Subtle text rendering changes from Skrifa + font hinting (sharper text; pixel positions may shift slightly).
  • Edge fade on ScrollArea content.
  • AccessKit accessibility tree is now unconditionally available (binary slightly larger).

No functional changes to wallet, identity, DPNS, contracts, or token flows.

Commits

  1. chore(deps): bump egui to 0.34.2 — version bumps + Cargo.lock
  2. refactor(ui): adopt egui 0.34 API renames and trait shape — mechanical renames + App::ui migration
  3. style: apply nightly rustfmt after egui 0.34 refactor
  4. docs: bump egui/eframe reference in CLAUDE.md to 0.34
  5. chore(ui): address QA cosmetic findings from egui 0.34 upgrade_ui rename + TODO(egui-0.35) breadcrumb

Test plan

  • cargo build --all-features clean
  • cargo +nightly fmt --all -- --check clean
  • cargo clippy --all-features --all-targets -- -D warnings clean (zero deprecation warnings)
  • cargo test --all-features --workspace — 555 tests pass (468 unit + 10 e2e + 72 kittest + 3 doctests + ignored network-dependent backend-e2e)
  • cargo test --test kittest --all-features — 72/72 kittest UI integration tests pass
  • Manual smoke (out-of-band, before merge): launch cargo run, verify network chooser, identities screen, wallets screen, dark mode toggle, and at least one modal renders correctly under the new font rendering.

Notes for reviewers

  • IDE (rust-analyzer) may show false-positive errors in tests/backend-e2e/ — the project's AppContext::{sdk,db,wallets}() accessors and database::test_helpers are gated by #[cfg(any(test, feature = "testing"))]. cargo test --all-features resolves them; configure rust-analyzer with "rust-analyzer.cargo.features": "all" if the noise bothers you.
  • 26 #[allow(deprecated)] sites added — all narrowly scoped to Panel::show(ctx, …) and axis-non-agnostic Panel methods. Tracked via TODO breadcrumb at src/ui/components/styled.rs:543.

🤖 Co-authored by Claudius the Magnificent AI Agent

lklimek and others added 5 commits May 8, 2026 10:37
Bump egui, eframe, egui_extras, egui_kittest from 0.33.3 to 0.34.2,
and egui_commonmark from 0.22.0 to 0.23.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Rename Context::style() -> global_style() and set_style() ->
  set_global_style() at every Context-receiver site (ui.ctx().style()
  also collapses to ui.style(), which honours nested overrides).
- Rename SidePanel/TopBottomPanel -> Panel::{left,right,top,bottom}.
- Migrate AppState's eframe::App impl from update() to ui() and drop the
  glow Context parameter from on_exit() (we ship the wgpu backend).
- Localise the remaining CentralPanel::show(ctx, …) deprecation behind
  #[allow(deprecated)] inside the island_central_panel helper and the
  popup-overlay sites that still need a top-level CentralPanel; this
  keeps screen ui(&Context) signatures untouched.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- QA-003: rename unused `ui` parameter in `App::ui` to `_ui` so its
  intent (only used to extract `ctx` due to the `&Context` containment
  strategy) is explicit.
- QA-001 / PROJ-002: add a TODO breadcrumb above `island_central_panel`
  documenting the deferred egui 0.35 migration to `show_inside(ui, ...)`
  and the eventual removal of the `#[allow(deprecated)]` containment.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented May 8, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: c46ca668-ea48-433d-8cf2-9e0daa73a9b6

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/upgrade-egui-0.34

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant