Skip to content

chore(deps): update rust crate comfy-table to v8 - #2349

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/comfy-table-8.x
Open

chore(deps): update rust crate comfy-table to v8#2349
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/comfy-table-8.x

Conversation

@renovate

@renovate renovate Bot commented Aug 17, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
comfy-table workspace.dependencies major 78

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

Cargo major update — Before merging, verify the workspace compiles and check upstream release notes for removed features or API changes.


Release Notes

nukesor/comfy-table (comfy-table)

v8.0.0

Compare Source

Breaking Changes
  • The following types and functions have been removed:

    • TableComponent enum
    • The modifiers module and Table::apply_modifier have been removed.
    • Table::current_style_as_preset
    • Table::set_style
    • Table::style
    • Table::remove_style
    • Table::load_preset
  • The positional preset string format has been replaced with the new TableStyle, LineStyle and ContentLineStyle types.
    The old approach of having "stringified" presets was too finicky and also implicitly bound to the order of variants in the old TableComponent enum.
    It was just not a good design.

    The new design, in comparison, has a nice and (hopefully) intuitive API to define a style.
    On top of that, all functions on TableStyle are const, so custom styles can still be declared as constants:

    const MY_STYLE: TableStyle = TableStyle::new()
        .top_border(LineStyle::new('┌', '─', '┬', '┐'))
        .header_lines(ContentLineStyle::new('│', '┆', '│'))
        .header_separator(LineStyle::new('╞', '═', '╪', '╡'))
        .content_lines(ContentLineStyle::new('│', '┆', '│'))
        .bottom_border(LineStyle::new('└', '─', '┴', '┘'));

    The new API looks as follows:

    • Presets in comfy_table::presets::* are now TableStyle constants.
    • Table::load_style(style) has been added to load a preset or custom style.
    • Table::style() and Table::style_mut() to get a handle to the style used by the table.
      The mut handle can be used to change the style.
    • Instead of modifiers, there are now functions on TableStyle TableStyle::with_rounded_corners/TableStyle::with_solid_inner_borders.
    • All fields of TableStyle, LineStyle and ContentLineStyle are public:
      table.style_mut().top_border.left = Some('╭');
  • The default truncation indicator is now instead of ....
    This should make it more obvious that there's more text and consumes less visual space.

Fix
  • Various performance improvements that reduce table formatting time quite a bit:

    • ~36% for "normal" tables (The readme of the project). 17µs -> 11µs
    • ~34% for "larger" tables, which I would consider a reasonable usecase. 253µs -> 172µs
    • ~70% for very large tables, i.e. a 10x500 table. -> 20.8ms -> 6.15ms

    Most of these improvements boil down to:

    • Less string allocations.
    • Special handling when handling ASCII-only text, as grapheme handling can be skipped in those cases.
    • Moving computational heavy stuff (such as UTF-8 width calculations) out of hot loops.
  • Fixed a non-critical bug that resulted in less-than optimal layouting when UTF-8 characters were involved.

  • No longer panic when rendering a Table that contains a row with Row::max_height(0).

  • Don't print multi-width truncation indicators, if they would be longer than the column.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM, only on Monday (* 0-3 * * 1)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot requested a review from a team as a code owner August 17, 2026 02:50

@datadog-datadog-prod-us1 datadog-datadog-prod-us1 Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Datadog Autotest: FAIL

Comfy-table v8 removes Table::load_preset, but the primary agent-data-plane binary still calls it from its unconditionally compiled DogStatsD CLI module. Migrate the call to load_style or retain v7; otherwise the production artifact cannot compile.

Open Bits AI session

🤖 Datadog Autotest · Commit f808f91 · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest

Comment thread Cargo.toml
test-strategy = { version = "0.4", default-features = false }
opentelemetry-semantic-conventions = { version = "0.32.0", default-features = false }
comfy-table = { version = "7", default-features = false }
comfy-table = { version = "8", default-features = false }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P0 Migrate the removed load_preset API

The primary agent-data-plane production artifact cannot be compiled.

Assertion details
  • Input: Any compilation of the agent-data-plane package with comfy-table 8.0.0.
  • Expected: Migrate get_stylized_table to load_style, or revert both Cargo files to comfy-table v7.
  • Actual: The PR resolves comfy-table 8.0.0 while bin/agent-data-plane/src/cli/dogstatsd.rs still calls Table::load_preset. The supplied v8 release notes explicitly identify that method as removed, causing a missing-method compilation error.

Was this helpful? React 👍 or 👎
🤖 Datadog Autotest · What is Autotest? · @DataDog review to ask questions · Any feedback? Reach out in #autotest

@pr-commenter

pr-commenter Bot commented Aug 17, 2026

Copy link
Copy Markdown

Regression Detector (Agent Data Plane)

Optimization Goals: ⚠️ Report unavailable

The benchmark run did not produce a usable report: outputs/report.json is missing

Check the benchmark job logs for details.

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.

0 participants