russellbanks / Komac

The Community Manifest Creator for WinGet
GNU General Public License v3.0
213 stars 16 forks source link

Update Rust crate ratatui to 0.28.0 #734

Closed renovate[bot] closed 2 months ago

renovate[bot] commented 2 months ago

Mend Renovate

This PR contains the following updates:

Package Type Update Change
ratatui (source) dependencies minor 0.27.0 -> 0.28.0

Release Notes

ratatui-org/ratatui (ratatui) ### [`v0.28.0`](https://togithub.com/ratatui-org/ratatui/blob/HEAD/CHANGELOG.md#0280---2024-08-07) [Compare Source](https://togithub.com/ratatui-org/ratatui/compare/v0.27.0...v0.28.0) *"If you are what you eat, then I only want to eat the good stuff." – Remy* We are excited to announce the new version of `ratatui` - a Rust library that's all about cooking up TUIs 🐭 In this version, we have upgraded to Crossterm 0.28.0, introducing enhanced functionality and performance improvements. New features include GraphType::Bar, lines in bar charts, and enhanced scroll/navigation methods. We have also refined the terminal module and added brand new methods for cursor positions and text operations. ✨ **Release highlights**: ⚠️ List of breaking changes can be found [here](https://togithub.com/ratatui-org/ratatui/blob/main/BREAKING-CHANGES.md). ##### Features - [8d4a102](https://togithub.com/ratatui-org/ratatui/commit/8d4a1026ab410a52570737c6d62edcd0a205091e) *(barchart)* Allow axes to accept Lines by [@​joshka](https://togithub.com/joshka) in [#​1273](https://togithub.com/ratatui-org/ratatui/pull/1273) \[**breaking**] > Fixes:[https://github.com/ratatui-org/ratatui/issues/1272](https://togithub.com/ratatui-org/ratatui/issues/1272) - [a23ecd9](https://togithub.com/ratatui-org/ratatui/commit/a23ecd9b456ab2aa4dc858fe31461a6224b40fe3) *(buffer)* Add Buffer::cell, cell_mut and index implementations by [@​joshka](https://togithub.com/joshka) in [#​1084](https://togithub.com/ratatui-org/ratatui/pull/1084) > Code which previously called `buf.get(x, y)` or `buf.get_mut(x, y)` > should now use index operators, or be transitioned to `buff.cell()` or > `buf.cell_mut()` for safe access that avoids panics by returning > `Option<&Cell>` and `Option<&mut Cell>`. > > The new methods accept `Into` instead of `x` and `y` > coordinates, which makes them more ergonomic to use. > > ```rust > let mut buffer = Buffer::empty(Rect::new(0, 0, 10, 10)); > > let cell = buf[(0, 0)]; > let cell = buf[Position::new(0, 0)]; > > let symbol = buf.cell((0, 0)).map(|cell| cell.symbol()); > let symbol = buf.cell(Position::new(0, 0)).map(|cell| cell.symbol()); > > buf[(0, 0)].set_symbol("🐀"); > buf[Position::new(0, 0)].set_symbol("🐀"); > > buf.cell_mut((0, 0)).map(|cell| cell.set_symbol("🐀")); > buf.cell_mut(Position::new(0, 0)).map(|cell| cell.set_symbol("🐀")); > ``` > > The existing `get()` and `get_mut()` methods are marked as deprecated. > These are fairly widely used and we will leave these methods around on > the buffer for a longer time than our normal deprecation approach (2 > major release) > > Addresses part of: [https://github.com/ratatui-org/ratatui/issues/1011](https://togithub.com/ratatui-org/ratatui/issues/1011) > > *** - [afe1534](https://togithub.com/ratatui-org/ratatui/commit/afe15349c87efefc5c9f0385f8f145f4b9c42c0a) *(chart)* Accept `IntoIterator` for axis labels by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1283](https://togithub.com/ratatui-org/ratatui/pull/1283) \[**breaking**] > BREAKING CHANGES: [#​1273](https://togithub.com/ratatui-org/ratatui/issues/1273) is already breaking and this only advances the > already breaking part - [5b51018](https://togithub.com/ratatui-org/ratatui/commit/5b51018501c859d4e6ee0ff55e010310bda5511f) *(chart)* Add GraphType::Bar by [@​joshka](https://togithub.com/joshka) in [#​1205](https://togithub.com/ratatui-org/ratatui/pull/1205) > ![Demo](https://vhs.charm.sh/vhs-50v7I5n7lQF7tHCb1VCmFc.gif) - [f97e07c](https://togithub.com/ratatui-org/ratatui/commit/f97e07c08a332e257efabdbe3f8bb306aec2a8eb) *(frame)* Replace Frame::size() with Frame::area() by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1293](https://togithub.com/ratatui-org/ratatui/pull/1293) > Area is the more correct term for the result of this method. > The Frame::size() method is marked as deprecated and will be > removed around Ratatui version 0.30 or later. > > Fixes:[https://github.com/ratatui-org/ratatui/pull/1254#issuecomment-2268061409](https://togithub.com/ratatui-org/ratatui/pull/1254#issuecomment-2268061409) - [5b89bd0](https://togithub.com/ratatui-org/ratatui/commit/5b89bd04a8a4860dc5040150464b45d1909184db) *(layout)* Add Size::ZERO and Position::ORIGIN constants by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1253](https://togithub.com/ratatui-org/ratatui/pull/1253) - [b2aa843](https://togithub.com/ratatui-org/ratatui/commit/b2aa843b310d8df77d16670c302b247fc0315372) *(layout)* Enable serde for Margin, Position, Rect, Size by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1255](https://togithub.com/ratatui-org/ratatui/pull/1255) - [36d49e5](https://togithub.com/ratatui-org/ratatui/commit/36d49e549b9e19e87e71c23afaee274fa7415fde) *(table)* Select first, last, etc to table state by [@​robertpsoane](https://togithub.com/robertpsoane) in [#​1198](https://togithub.com/ratatui-org/ratatui/pull/1198) > Add select_previous, select_next, select_first & select_last to > TableState > > Used equivalent API as in ListState - [3bb374d](https://togithub.com/ratatui-org/ratatui/commit/3bb374df88c79429767d9eb788bda2e65b3ba412) *(terminal)* Add Terminal::try_draw() method by [@​joshka](https://togithub.com/joshka) in [#​1209](https://togithub.com/ratatui-org/ratatui/pull/1209) > This makes it easier to write fallible rendering methods that can use > the `?` operator > > ```rust > terminal.try_draw(|frame| { > some_method_that_can_fail()?; > another_faillible_method()?; > Ok(()) > })?; > ``` - [3725262](https://togithub.com/ratatui-org/ratatui/commit/3725262ca384d28a46e03013023a19677b5a35fe) *(text)* Add `Add` and `AddAssign` implementations for `Line`, `Span`, and `Text` by [@​joshka](https://togithub.com/joshka) in [#​1236](https://togithub.com/ratatui-org/ratatui/pull/1236) > This enables: > > ```rust > let line = Span::raw("Red").red() + Span::raw("blue").blue(); > let line = Line::raw("Red").red() + Span::raw("blue").blue(); > let line = Line::raw("Red").red() + Line::raw("Blue").blue(); > let text = Line::raw("Red").red() + Line::raw("Blue").blue(); > let text = Text::raw("Red").red() + Line::raw("Blue").blue(); > > let mut line = Line::raw("Red").red(); > line += Span::raw("Blue").blue(); > > let mut text = Text::raw("Red").red(); > text += Line::raw("Blue").blue(); > > line.extend(vec![Span::raw("1"), Span::raw("2"), Span::raw("3")]); > ``` - [c34fb77](https://togithub.com/ratatui-org/ratatui/commit/c34fb778183b8360ac0a273af16c695c33632b39) *(text)* Remove unnecessary lifetime from ToText trait by [@​joshka](https://togithub.com/joshka) in [#​1234](https://togithub.com/ratatui-org/ratatui/pull/1234) \[**breaking**] > BREAKING CHANGE:The ToText trait no longer has a lifetime parameter. > This change simplifies the trait and makes it easier implement. - [c68ee6c](https://togithub.com/ratatui-org/ratatui/commit/c68ee6c64a7c48955a7b26db1db57f8427e35e5c) *(uncategorized)* Add `get/set_cursor_position()` methods to Terminal and Backend by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1284](https://togithub.com/ratatui-org/ratatui/pull/1284) \[**breaking**] > The new methods return/accept `Into` which can be either a Position or a (u16, u16) tuple. > > ```rust > backend.set_cursor_position(Position { x: 0, y: 20 })?; > let position = backend.get_cursor_position()?; > terminal.set_cursor_position((0, 20))?; > let position = terminal.set_cursor_position()?; > ``` - [b70cd03](https://togithub.com/ratatui-org/ratatui/commit/b70cd03c029d91acd4709c2b91c735b8d796987c) *(uncategorized)* Add ListState / TableState scroll_down_by() / scroll_up_by() methods by [@​josueBarretogit](https://togithub.com/josueBarretogit) in [#​1267](https://togithub.com/ratatui-org/ratatui/pull/1267) > Implement new methods `scroll_down_by(u16)` and `scroll_up_by(u16)` for > both `Liststate` and `Tablestate`. > > Closes:[#​1207](https://togithub.com/ratatui-org/ratatui/issues/1207) ##### Bug Fixes - [864cd9f](https://togithub.com/ratatui-org/ratatui/commit/864cd9ffef47c43269fa16e773fc7c6e06d13bf3) *(testbackend)* Prevent area mismatch by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1252](https://togithub.com/ratatui-org/ratatui/pull/1252) > Removes the height and width fields from TestBackend, which can get > out of sync with the Buffer, which currently clamps to 255,255. > > This changes the `TestBackend` serde representation. It should be > possible to read older data, but data generated after this change > can't be read by older versions. - [7e1bab0](https://togithub.com/ratatui-org/ratatui/commit/7e1bab049bc5acd4a5cb13189e8f86fec5813ab8) *(buffer)* Dont render control characters by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1226](https://togithub.com/ratatui-org/ratatui/pull/1226) - [c08b522](https://togithub.com/ratatui-org/ratatui/commit/c08b522d34ef3bfae37342ba1bff897cb320971e) *(chart)* Allow removing all the axis labels by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1282](https://togithub.com/ratatui-org/ratatui/pull/1282) > `axis.labels(vec![])` removes all the labels correctly. > > This makes calling axis.labels with an empty Vec the equivalent > of not calling axis.labels. It's likely that this is never used, but it > prevents weird cases by removing the mix-up of `Option::None` > and `Vec::is_empty`, and simplifies the implementation code. - [03f3124](https://togithub.com/ratatui-org/ratatui/commit/03f3124c1d83294788213fb4195a708f86eecd4f) *(paragraph)* Line_width, and line_count include block borders by [@​airblast-dev](https://togithub.com/airblast-dev) in [#​1235](https://togithub.com/ratatui-org/ratatui/pull/1235) > The `line_width`, and `line_count` methods for `Paragraph` would not > take into account the `Block` if one was set. This will now correctly > calculate the values including the `Block`'s width/height. > > Fixes:[#​1233](https://togithub.com/ratatui-org/ratatui/issues/1233) - [3ca920e](https://togithub.com/ratatui-org/ratatui/commit/3ca920e881f2f78ada27e0ff19a9705bb194e533) *(span)* Prevent panic on rendering out of y bounds by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1257](https://togithub.com/ratatui-org/ratatui/pull/1257) - [84cb164](https://togithub.com/ratatui-org/ratatui/commit/84cb16483a76f1eb28f31f4a99075edfd78635f4) *(terminal)* Make terminal module private by [@​joshka](https://togithub.com/joshka) in [#​1260](https://togithub.com/ratatui-org/ratatui/pull/1260) \[**breaking**] > This is a simplification of the public API that is helpful for new users > that are not familiar with how rust re-exports work, and helps avoid > clashes with other modules in the backends that are named terminal. > > BREAKING CHANGE:The `terminal` module is now private and can not be > used directly. The types under this module are exported from the root of > the crate. > > ```diff > - use ratatui::terminal::{CompletedFrame, Frame, Terminal, TerminalOptions, ViewPort}; > + use ratatui::{CompletedFrame, Frame, Terminal, TerminalOptions, ViewPort}; > ``` > > Fixes:[https://github.com/ratatui-org/ratatui/issues/1210](https://togithub.com/ratatui-org/ratatui/issues/1210) - [29c8c84](https://togithub.com/ratatui-org/ratatui/commit/29c8c84fd05692e8981fc21ae55102bf29835431) *(uncategorized)* Ignore newlines in Span's Display impl by [@​SUPERCILEX](https://togithub.com/SUPERCILEX) in [#​1270](https://togithub.com/ratatui-org/ratatui/pull/1270) - [cd93547](https://togithub.com/ratatui-org/ratatui/commit/cd93547db869aab3dbca49f11667a8091a7077bd) *(uncategorized)* Remove unnecessary synchronization in layout cache by [@​SUPERCILEX](https://togithub.com/SUPERCILEX) in [#​1245](https://togithub.com/ratatui-org/ratatui/pull/1245) > Layout::init_cache no longer returns bool and takes a NonZeroUsize instead of usize > > The cache is a thread-local, so doesn't make much sense to require > synchronized initialization. - [b344f95](https://togithub.com/ratatui-org/ratatui/commit/b344f95b7cfc3b90221c84cfef8afcf6944bafc1) *(uncategorized)* Only apply style to first line when rendering a `Line` by [@​joshka](https://togithub.com/joshka) in [#​1247](https://togithub.com/ratatui-org/ratatui/pull/1247) > A `Line` widget should only apply its style to the first line when > rendering and not the entire area. This is because the `Line` widget > should only render a single line of text. This commit fixes the issue by > clamping the area to a single line before rendering the text. - [7ddfbc0](https://togithub.com/ratatui-org/ratatui/commit/7ddfbc0010400f39756a66a666702176e508c5ea) *(uncategorized)* Unnecessary allocations when creating Lines by [@​SUPERCILEX](https://togithub.com/SUPERCILEX) in [#​1237](https://togithub.com/ratatui-org/ratatui/pull/1237) - [84f3341](https://togithub.com/ratatui-org/ratatui/commit/84f334163be2945ca8f5da9e0b244b6413a4d329) *(uncategorized)* Clippy lints from rust 1.80.0 by [@​joshka](https://togithub.com/joshka) in [#​1238](https://togithub.com/ratatui-org/ratatui/pull/1238) ##### Refactor - [bb68bc6](https://togithub.com/ratatui-org/ratatui/commit/bb68bc6968219dacea8f3c272bb99d142d2f3253) *(backend)* Return `Size` from `Backend::size` instead of `Rect` by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1254](https://togithub.com/ratatui-org/ratatui/pull/1254) \[**breaking**] > The `Backend::size` method returns a `Size` instead of a `Rect`. > There is no need for the position here as it was always 0,0. - [e81663b](https://togithub.com/ratatui-org/ratatui/commit/e81663bec07f46433db7b6eb0154ca48e9389bdb) *(list)* Split up list.rs into smaller modules by [@​joshka](https://togithub.com/joshka) in [#​1204](https://togithub.com/ratatui-org/ratatui/pull/1204) - [e707ff1](https://togithub.com/ratatui-org/ratatui/commit/e707ff11d15b5ee10ef2cffc934bb132ee8a1ead) *(uncategorized)* Internally use Position struct by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1256](https://togithub.com/ratatui-org/ratatui/pull/1256) - [32a0b26](https://togithub.com/ratatui-org/ratatui/commit/32a0b265253cb83cbf1d51784abf150fed7ef82f) *(uncategorized)* Simplify WordWrapper implementation by [@​tranzystorekk](https://togithub.com/tranzystorekk) in [#​1193](https://togithub.com/ratatui-org/ratatui/pull/1193) ##### Documentation - [6ce447c](https://togithub.com/ratatui-org/ratatui/commit/6ce447c4f344ae7bec11d7f98cdc49ccac800df8) *(block)* Add docs about style inheritance by [@​joshka](https://togithub.com/joshka) in [#​1190](https://togithub.com/ratatui-org/ratatui/pull/1190) > Fixes:[https://github.com/ratatui-org/ratatui/issues/1129](https://togithub.com/ratatui-org/ratatui/issues/1129) - [55e0880](https://togithub.com/ratatui-org/ratatui/commit/55e0880d2fef35b328901b4194d39101fe26a9e9) *(block)* Update block documentation by [@​leohscl](https://togithub.com/leohscl) in [#​1206](https://togithub.com/ratatui-org/ratatui/pull/1206) > Update block documentation with constructor methods and setter methods > in the main doc comment Added an example for using it to surround > widgets > > Fixes:[https://github.com/ratatui-org/ratatui/issues/914](https://togithub.com/ratatui-org/ratatui/issues/914) - [f2fa1ae](https://togithub.com/ratatui-org/ratatui/commit/f2fa1ae9aa6f456615c519dcb17d7d3b8177bfb8) *(breaking-changes)* Add missing code block by [@​orhun](https://togithub.com/orhun) in [#​1291](https://togithub.com/ratatui-org/ratatui/pull/1291) - [f687af7](https://togithub.com/ratatui-org/ratatui/commit/f687af7c0d1dfc87302d2cf3b9ef7c7d58edb2d3) *(breaking-changes)* Mention removed lifetime of ToText trait by [@​orhun](https://togithub.com/orhun) in [#​1292](https://togithub.com/ratatui-org/ratatui/pull/1292) - [d468463](https://togithub.com/ratatui-org/ratatui/commit/d468463fc6aff426131f3ff61dc63291b90b37d1) *(breaking-changes)* Fix the PR link by [@​orhun](https://togithub.com/orhun) in [#​1294](https://togithub.com/ratatui-org/ratatui/pull/1294) - [1b9bdd4](https://togithub.com/ratatui-org/ratatui/commit/1b9bdd425cb68bbb5f57900175ad88a9b211f607) *(contributing)* Fix minor issues by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1300](https://togithub.com/ratatui-org/ratatui/pull/1300) - [5f7a7fb](https://togithub.com/ratatui-org/ratatui/commit/5f7a7fbe19ecf36c5060a6ba8835d92029a15777) *(examples)* Update barcharts gifs by [@​joshka](https://togithub.com/joshka) in [#​1306](https://togithub.com/ratatui-org/ratatui/pull/1306) - [fe4eeab](https://togithub.com/ratatui-org/ratatui/commit/fe4eeab676e8db69a1e4f878173cdda0d96d5f7f) *(examples)* Simplify the barchart example by [@​joshka](https://togithub.com/joshka) in [#​1079](https://togithub.com/ratatui-org/ratatui/pull/1079) > The `barchart` example has been split into two examples: `barchart` and > `barchart-grouped`. The `barchart` example now shows a simple barchart > with random data, while the `barchart-grouped` example shows a grouped > barchart with fake revenue data. > > This simplifies the examples a bit so they don't cover too much at once. > > - Simplify the rendering functions > - Fix several clippy lints that were marked as allowed > > *** - [6e7b4e4](https://togithub.com/ratatui-org/ratatui/commit/6e7b4e4d55abcfeb3ffa598086ab227604b26ff7) *(examples)* Add async example by [@​joshka](https://togithub.com/joshka) in [#​1248](https://togithub.com/ratatui-org/ratatui/pull/1248) > This example demonstrates how to use Ratatui with widgets that fetch > data asynchronously. It uses the `octocrab` crate to fetch a list of > pull requests from the GitHub API. You will need an environment > variable named `GITHUB_TOKEN` with a valid GitHub personal access > token. The token does not need any special permissions. - [935a718](https://togithub.com/ratatui-org/ratatui/commit/935a7187c273e0efc876d094d6247d50e28677a3) *(examples)* Add missing examples to README by [@​kibibyt3](https://togithub.com/kibibyt3) in [#​1225](https://togithub.com/ratatui-org/ratatui/pull/1225) > Resolves:[#​1014](https://togithub.com/ratatui-org/ratatui/issues/1014) - [50e5674](https://togithub.com/ratatui-org/ratatui/commit/50e5674a20edad0d95bd103522b21df35b38430b) *(examples)* Fix: fix typos in tape files by [@​kibibyt3](https://togithub.com/kibibyt3) in [#​1224](https://togithub.com/ratatui-org/ratatui/pull/1224) - [810da72](https://togithub.com/ratatui-org/ratatui/commit/810da72f26acd8761031d9a822957df9588ac406) *(examples)* Fix hyperlink example tape by [@​kibibyt3](https://togithub.com/kibibyt3) in [#​1222](https://togithub.com/ratatui-org/ratatui/pull/1222) - [5eeb1cc](https://togithub.com/ratatui-org/ratatui/commit/5eeb1ccbc4e1e1dff4979647f87e91c515a56fd5) *(github)* Create CODE_OF_CONDUCT.md by [@​joshka](https://togithub.com/joshka) in [#​1279](https://togithub.com/ratatui-org/ratatui/pull/1279) - [7c0665c](https://togithub.com/ratatui-org/ratatui/commit/7c0665cb0e34eff3ca427d2ada81f043f20cea00) *(layout)* Fix typo in example by [@​EmiOnGit](https://togithub.com/EmiOnGit) in [#​1217](https://togithub.com/ratatui-org/ratatui/pull/1217) - [272d059](https://togithub.com/ratatui-org/ratatui/commit/272d0591a7efc09897a2566969fbafcb2423fdbc) *(paragraph)* Update main docs by [@​joshka](https://togithub.com/joshka) in [#​1202](https://togithub.com/ratatui-org/ratatui/pull/1202) - [bb71e5f](https://togithub.com/ratatui-org/ratatui/commit/bb71e5ffd484fa3296d014d72d8a0521f56c7876) *(readme)* Remove MSRV by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1266](https://togithub.com/ratatui-org/ratatui/pull/1266) > This notice was useful when the `Cargo.toml` had no standardized field > for this. Now it's easier to look it up in the `Cargo.toml` and it's > also a single point of truth. Updating the README was overlooked for > quite some time so it's better to just omit it rather than having > something wrong that will be forgotten again in the future. - [8857037](https://togithub.com/ratatui-org/ratatui/commit/8857037bfff52104affa3c764dea0f3370cc702c) *(terminal)* Fix imports by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1263](https://togithub.com/ratatui-org/ratatui/pull/1263) - [2fd5ae6](https://togithub.com/ratatui-org/ratatui/commit/2fd5ae64bf1440fccf072c1b6aa3dc03dc9ac1ec) *(widgets)* Document stability of WidgetRef by [@​joshka](https://togithub.com/joshka) in [#​1288](https://togithub.com/ratatui-org/ratatui/pull/1288) > Addresses some confusion about when to implement `WidgetRef` vs `impl > Widget for &W`. Notes the stability rationale and links to an issue that > helps explain the context of where we're at in working this out. - [716c931](https://togithub.com/ratatui-org/ratatui/commit/716c93136e0c0f11e62364fdc9b32ec58036851e) *(uncategorized)* Document crossterm breaking change by [@​joshka](https://togithub.com/joshka) in [#​1281](https://togithub.com/ratatui-org/ratatui/pull/1281) - [f775030](https://togithub.com/ratatui-org/ratatui/commit/f77503050ffbe4dd2d4949cb22b451a2b0fe9296) *(uncategorized)* Update main lib.rs / README examples by [@​joshka](https://togithub.com/joshka) in [#​1280](https://togithub.com/ratatui-org/ratatui/pull/1280) - [8433d09](https://togithub.com/ratatui-org/ratatui/commit/8433d0958bd0a384383bdefe28e6146de1332e17) *(uncategorized)* Update demo image by [@​joshka](https://togithub.com/joshka) in [#​1276](https://togithub.com/ratatui-org/ratatui/pull/1276) > Follow up to [https://github.com/ratatui-org/ratatui/pull/1203](https://togithub.com/ratatui-org/ratatui/pull/1203) ##### Performance - [663486f](https://togithub.com/ratatui-org/ratatui/commit/663486f1e8deae6287d4d0051dfab0682b700423) *(list)* Avoid extra allocations when rendering `List` by [@​airblast-dev](https://togithub.com/airblast-dev) in [#​1244](https://togithub.com/ratatui-org/ratatui/pull/1244) > When rendering a `List`, each `ListItem` would be cloned. Removing the > clone, and replacing `Widget::render` with `WidgetRef::render_ref` saves > us allocations caused by the clone of the `Text<'_>` stored inside of > `ListItem`. > > Based on the results of running the "list" benchmark locally; > Performance is improved by %1-3 for all `render` benchmarks for `List`. - [4753b72](https://togithub.com/ratatui-org/ratatui/commit/4753b7241bf3f33b9d953d301f83baa547e7037c) *(reflow)* Eliminate most WordWrapper allocations by [@​SUPERCILEX](https://togithub.com/SUPERCILEX) in [#​1239](https://togithub.com/ratatui-org/ratatui/pull/1239) > On large paragraphs (~1MB), this saves hundreds of thousands of > allocations. > > TL;DR:reuse as much memory as possible across `next_line` calls. > Instead of allocating new buffers each time, allocate the buffers once > and clear them before reuse. - [be3eb75](https://togithub.com/ratatui-org/ratatui/commit/be3eb75ea58127caad6696a21d794f5f99e0dfd6) *(table)* Avoid extra allocations when rendering `Table` by [@​airblast-dev](https://togithub.com/airblast-dev) in [#​1242](https://togithub.com/ratatui-org/ratatui/pull/1242) > When rendering a `Table` the `Text` stored inside of a `Cell` gets > cloned before rendering. This removes the clone and uses `WidgetRef` > instead, saving us from allocating a `Vec>` inside `Text`. Also > avoids an allocation when rendering the highlight symbol if it contains > an owned value. - [f04bf85](https://togithub.com/ratatui-org/ratatui/commit/f04bf855cbc28e0ae29eaf678f26425a05f2295e) *(uncategorized)* Add buffer benchmarks by [@​joshka](https://togithub.com/joshka) in [#​1303](https://togithub.com/ratatui-org/ratatui/pull/1303) - [e6d2e04](https://togithub.com/ratatui-org/ratatui/commit/e6d2e04bcf2340c901ba1513ddaf84d358751768) *(uncategorized)* Move benchmarks into a single benchmark harness by [@​joshka](https://togithub.com/joshka) in [#​1302](https://togithub.com/ratatui-org/ratatui/pull/1302) > Consolidates the benchmarks into a single executable rather than having > to create a new cargo.toml setting per and makes it easier to rearrange > these when adding new benchmarks. ##### Styling - [a80a8a6](https://togithub.com/ratatui-org/ratatui/commit/a80a8a6a473274aa44a4543d945760123f9d5407) *(format)* Lint markdown by [@​joshka](https://togithub.com/joshka) in [#​1131](https://togithub.com/ratatui-org/ratatui/pull/1131) > - **chore: Fix line endings for changelog** > - **chore: cleanup markdown lints** > - **ci: add Markdown linter** > - **build: add markdown lint to the makefile** > > *** ##### Testing - [32d0695](https://togithub.com/ratatui-org/ratatui/commit/32d0695cc2d56900d8a6246d9d876393294dd94e) *(buffer)* Ensure emojis are rendered by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1258](https://togithub.com/ratatui-org/ratatui/pull/1258) ##### Miscellaneous Tasks - [82b70fd](https://togithub.com/ratatui-org/ratatui/commit/82b70fd329885f8ab3cb972b6fe117bc27e3d96a) *(ci)* Integrate cargo-semver-checks by [@​orhun](https://togithub.com/orhun) in [#​1166](https://togithub.com/ratatui-org/ratatui/pull/1166) > > > > [`cargo-semver-checks`](https://togithub.com/obi1kenobi/cargo-semver-checks): > Lint your crate API changes for semver violations. - [c245c13](https://togithub.com/ratatui-org/ratatui/commit/c245c13cc14ac8c483c4aeb6e2e3b4f8e387b791) *(ci)* Onboard bencher for tracking benchmarks by [@​orhun](https://togithub.com/orhun) in [#​1174](https://togithub.com/ratatui-org/ratatui/pull/1174) > https://bencher.dev/console/projects/ratatui-org > > Closes:[#​1092](https://togithub.com/ratatui-org/ratatui/issues/1092) - [efef0d0](https://togithub.com/ratatui-org/ratatui/commit/efef0d0dc0872ed2b0c5d865ef008698f3051d10) *(ci)* Change label from `breaking change` to `Type: Breaking Change` by [@​kdheepak](https://togithub.com/kdheepak) in [#​1243](https://togithub.com/ratatui-org/ratatui/pull/1243) > This PR changes the label that is auto attached to a PR with a breaking > change per the conventional commits specification. - [41a9100](https://togithub.com/ratatui-org/ratatui/commit/41a910004dfe69de135845fac900dd4240a865c7) *(github)* Use the GitHub organization team as codeowners by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1081](https://togithub.com/ratatui-org/ratatui/pull/1081) > Use GitHub organization team in CODEOWNERS and create MAINTAINERS.md - [3e7458f](https://togithub.com/ratatui-org/ratatui/commit/3e7458fdb8051b9a62aac551372d5592e7f59eb7) *(github)* Add forums and faqs to the issue template by [@​joshka](https://togithub.com/joshka) in [#​1201](https://togithub.com/ratatui-org/ratatui/pull/1201) - [45fcab7](https://togithub.com/ratatui-org/ratatui/commit/45fcab7497650685781434e27abf3ddf0459aead) *(uncategorized)* Add rect::rows benchmark by [@​joshka](https://togithub.com/joshka) in [#​1301](https://togithub.com/ratatui-org/ratatui/pull/1301) - [edc2af9](https://togithub.com/ratatui-org/ratatui/commit/edc2af98223229656480dd30e03f1230b0aba919) *(uncategorized)* Replace big_text with hardcoded logo by [@​joshka](https://togithub.com/joshka) in [#​1203](https://togithub.com/ratatui-org/ratatui/pull/1203) > big_text.rs was a copy of the code from tui-big-text and was getting > gradually out of sync with the original crate. It was also rendering > something a bit different than the Ratatui logo. This commit replaces > the big_text.rs file with a much smaller string representation of the > Ratatui logo. > > ![demo2](https://raw.githubusercontent.com/ratatui-org/ratatui/images/examples/demo2-destroy.gif) - [c2d3850](https://togithub.com/ratatui-org/ratatui/commit/c2d38509b4d6a5d80f721c08d4e8727a37475aa6) *(uncategorized)* Use LF line endings for CHANGELOG.md instead of CRLF by [@​joshka](https://togithub.com/joshka) in [#​1269](https://togithub.com/ratatui-org/ratatui/pull/1269) - [a9fe428](https://togithub.com/ratatui-org/ratatui/commit/a9fe4284acfa6ca01260c11b0f64f8f610272d20) *(uncategorized)* Update cargo-deny config by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1265](https://togithub.com/ratatui-org/ratatui/pull/1265) > Update `cargo-deny` config (noticed in [https://github.com/ratatui-org/ratatui/pull/1263#pullrequestreview-2215488414](https://togithub.com/ratatui-org/ratatui/pull/1263#pullrequestreview-2215488414)488414) > > See [https://github.com/EmbarkStudios/cargo-deny/pull/611](https://togithub.com/EmbarkStudios/cargo-deny/pull/611) - [ffc4300](https://togithub.com/ratatui-org/ratatui/commit/ffc43005589c9baf90db839f5388d3783d59e963) *(uncategorized)* Remove executable flag for rs files by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1262](https://togithub.com/ratatui-org/ratatui/pull/1262) - [7bab9f0](https://togithub.com/ratatui-org/ratatui/commit/7bab9f0d802e154f3551f895399398a4d43d489f) *(uncategorized)* Add more CompactString::const_new instead of new by [@​joshka](https://togithub.com/joshka) in [#​1230](https://togithub.com/ratatui-org/ratatui/pull/1230) - [ccf83e6](https://togithub.com/ratatui-org/ratatui/commit/ccf83e6d7610bf74f4ab02e0b1e2fe0e55ad9e78) *(uncategorized)* Update labels in issue templates by [@​joshka](https://togithub.com/joshka) in [#​1212](https://togithub.com/ratatui-org/ratatui/pull/1212) ##### Build - [379dab9](https://togithub.com/ratatui-org/ratatui/commit/379dab9cdb8f1836836dc3ad6bf411088d610f37) *(uncategorized)* Cleanup dev dependencies by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1231](https://togithub.com/ratatui-org/ratatui/pull/1231) ##### Continuous Integration - [476ac87](https://togithub.com/ratatui-org/ratatui/commit/476ac87c9937de8863d2e884efdac19c8c1e43d2) *(uncategorized)* Split up lint job by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1264](https://togithub.com/ratatui-org/ratatui/pull/1264) > This helps with identifying what failed right from the title. Also steps > after a failing one are now always executed. > > Also shortens the steps a bit by removing obvious names. ##### New Contributors - [@​SUPERCILEX](https://togithub.com/SUPERCILEX) made their first contribution in [#​1239](https://togithub.com/ratatui-org/ratatui/pull/1239) - [@​josueBarretogit](https://togithub.com/josueBarretogit) made their first contribution in [#​1267](https://togithub.com/ratatui-org/ratatui/pull/1267) - [@​airblast-dev](https://togithub.com/airblast-dev) made their first contribution in [#​1242](https://togithub.com/ratatui-org/ratatui/pull/1242) - [@​kibibyt3](https://togithub.com/kibibyt3) made their first contribution in [#​1225](https://togithub.com/ratatui-org/ratatui/pull/1225) - [@​EmiOnGit](https://togithub.com/EmiOnGit) made their first contribution in [#​1217](https://togithub.com/ratatui-org/ratatui/pull/1217) - [@​leohscl](https://togithub.com/leohscl) made their first contribution in [#​1206](https://togithub.com/ratatui-org/ratatui/pull/1206) - [@​robertpsoane](https://togithub.com/robertpsoane) made their first contribution in [#​1198](https://togithub.com/ratatui-org/ratatui/pull/1198) **Full Changelog**: https://github.com/ratatui-org/ratatui/compare/v0.27.0...0.28.0

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), 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.



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