hcavarsan / kftray

kubectl port-forward on steroids πŸ¦€ manage and share multiple k8s port forwards configurations- with support for UDP, proxy through the k8s cluster, and github state sync.
https://kftray.app/
MIT License
790 stars 70 forks source link

chore(deps): update all non-major dependencies #286

Closed renovate[bot] closed 3 weeks ago

renovate[bot] commented 1 month ago

Mend Renovate

This PR contains the following updates:

Package Type Update Change
crossterm dependencies minor 0.27 -> 0.28
ctrlc dependencies patch 3.4.4 -> 3.4.5
env_logger dependencies patch 0.11.4 -> 0.11.5
hyper-util (source) dependencies patch 0.1.6 -> 0.1.7
keyring dependencies patch 3.0.4 -> 3.2.0
ratatui (source) dependencies minor 0.26 -> 0.28
rust stage patch 1.80.0-alpine3.19 -> 1.80.1-alpine3.19
serde_json dependencies patch 1.0.120 -> 1.0.125
tokio (source) dependencies patch 1.39.1 -> 1.39.3
tower dependencies minor 0.4.13 -> 0.5.0

Release Notes

crossterm-rs/crossterm (crossterm) ### [`v0.28.1`](https://togithub.com/crossterm-rs/crossterm/blob/HEAD/CHANGELOG.md#Version-0281) #### Fixed πŸ› - Fix broken build on linux when using `use-dev-tty` with ([#​906](https://togithub.com/crossterm-rs/crossterm/issues/906)) #### Breaking ⚠️ - Fix desync with mio and signalhook between repo and published crate. (upgrade to mio 1.0)
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 ### [`v0.27.0`](https://togithub.com/ratatui-org/ratatui/blob/HEAD/CHANGELOG.md#0270---2024-06-24) [Compare Source](https://togithub.com/ratatui-org/ratatui/compare/v0.26.3...v0.27.0) In this version, we have focused on enhancing usability and functionality with new features like background styles for LineGauge, palette colors, and various other improvements including improved performance. Also, we added brand new examples for tracing and creating hyperlinks! ✨ **Release highlights**: ⚠️ List of breaking changes can be found [here](https://togithub.com/ratatui-org/ratatui/blob/main/BREAKING-CHANGES.md). ##### Features - [eef1afe](https://togithub.com/ratatui-org/ratatui/commit/eef1afe9155089dca489a9159c368a5ac07e7585) *(linegauge)* Allow LineGauge background styles by [@​nowNick](https://togithub.com/nowNick) in [#​565](https://togithub.com/ratatui-org/ratatui/pull/565) ```text This PR deprecates `gauge_style` in favor of `filled_style` and `unfilled_style` which can have its foreground and background styled. `cargo run --example=line_gauge --features=crossterm` ``` https://github.com/ratatui-org/ratatui/assets/5149215/5fb2ce65-8607-478f-8be4-092e08612f5b Implements:[#​424](https://togithub.com/ratatui-org/ratatui/issues/424) - [1365620](https://togithub.com/ratatui-org/ratatui/commit/13656206064b53c7f86f179b570c7769399212a3) *(borders)* Add FULL and EMPTY border sets by [@​joshka](https://togithub.com/joshka) in [#​1182](https://togithub.com/ratatui-org/ratatui/pull/1182) `border::FULL` uses a full block symbol, while `border::EMPTY` uses an empty space. This is useful for when you need to allocate space for the border and apply the border style to a block without actually drawing a border. This makes it possible to style the entire title area or a block rather than just the title content. ```rust use ratatui::{symbols::border, widgets::Block}; let block = Block::bordered().title("Title").border_set(border::FULL); let block = Block::bordered().title("Title").border_set(border::EMPTY); ``` - [7a48c5b](https://togithub.com/ratatui-org/ratatui/commit/7a48c5b11b3d51b915ccc187d0499b6e0e88b89d) *(cell)* Add EMPTY and (const) new method by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1143](https://togithub.com/ratatui-org/ratatui/pull/1143) ```text This simplifies calls to `Buffer::filled` in tests. ``` - [3f2f2cd](https://togithub.com/ratatui-org/ratatui/commit/3f2f2cd6abf67a04809ff314025a462a3c2e2446) *(docs)* Add tracing example by [@​joshka](https://togithub.com/joshka) in [#​1192](https://togithub.com/ratatui-org/ratatui/pull/1192) ```text Add an example that demonstrates logging to a file for: ``` ```shell cargo run --example tracing RUST_LOG=trace cargo run --example=tracing cat tracing.log ``` ![Made with VHS](https://vhs.charm.sh/vhs-21jgJCedh2YnFDONw0JW7l.gif) - [1520ed9](https://togithub.com/ratatui-org/ratatui/commit/1520ed9d106f99580a9e529212e43dac06a2f6d2) *(layout)* Impl Display for Position and Size by [@​joshka](https://togithub.com/joshka) in [#​1162](https://togithub.com/ratatui-org/ratatui/pull/1162) - [46977d8](https://togithub.com/ratatui-org/ratatui/commit/46977d88519d28ccac1c94e171af0c9cca071dbc) *(list)* Add list navigation methods (first, last, previous, next) by [@​joshka](https://togithub.com/joshka) in [#​1159](https://togithub.com/ratatui-org/ratatui/pull/1159) \[**breaking**] ```text Also cleans up the list example significantly (see also ) ``` Fixes:[#​1159](https://togithub.com/ratatui-org/ratatui/pull/1159) BREAKING CHANGE:The `List` widget now clamps the selected index to the bounds of the list when navigating with `first`, `last`, `previous`, and `next`, as well as when setting the index directly with `select`. - [10d7788](https://togithub.com/ratatui-org/ratatui/commit/10d778866edea55207ff3f03d063c9fec619b9c9) *(style)* Add conversions from the palette crate colors by [@​joshka](https://togithub.com/joshka) in [#​1172](https://togithub.com/ratatui-org/ratatui/pull/1172) ````text This is behind the "palette" feature flag. ```rust use palette::{LinSrgb, Srgb}; use ratatui::style::Color; let color = Color::from(Srgb::new(1.0f32, 0.0, 0.0)); let color = Color::from(LinSrgb::new(1.0f32, 0.0, 0.0)); ``` ```` - [7ef2dae](https://togithub.com/ratatui-org/ratatui/commit/7ef2daee060a7fe964a8de64eafcb6062228e035) *(text)* support conversion from Display to Span, Line and Text by [@​orhun](https://togithub.com/orhun) in [#​1167](https://togithub.com/ratatui-org/ratatui/pull/1167) ````text Now you can create `Line` and `Text` from numbers like so: ```rust let line = 42.to_line(); let text = 666.to_text(); ``` ```` - [74a32af](https://togithub.com/ratatui-org/ratatui/commit/74a32afbaef8851f9462b27094d88d518e56addf) *(uncategorized)* Re-export backends from the ratatui crate by [@​joshka](https://togithub.com/joshka) in [#​1151](https://togithub.com/ratatui-org/ratatui/pull/1151) ```text `crossterm`, `termion`, and `termwiz` can now be accessed as `ratatui::{crossterm, termion, termwiz}` respectively. This makes it possible to just add the Ratatui crate as a dependency and use the backend of choice without having to add the backend crates as dependencies. To update existing code, replace all instances of `crossterm::` with `ratatui::crossterm::`, `termion::` with `ratatui::termion::`, and `termwiz::` with `ratatui::termwiz::`. ``` - [3594180](https://togithub.com/ratatui-org/ratatui/commit/35941809e11ab43309dd83a8f67bb375f5e7ff2b) *(uncategorized)* Make Stylize's `.bg(color)` generic by [@​kdheepak](https://togithub.com/kdheepak) in [#​1103](https://togithub.com/ratatui-org/ratatui/pull/1103) \[**breaking**] - [0b5fd6b](https://togithub.com/ratatui-org/ratatui/commit/0b5fd6bf8eb64662df96900faea3608d4cbb3984) *(uncategorized)* Add writer() and writer_mut() to termion and crossterm backends by [@​enricozb](https://togithub.com/enricozb) in [#​991](https://togithub.com/ratatui-org/ratatui/pull/991) ```text It is sometimes useful to obtain access to the writer if we want to see what has been written so far. For example, when using &mut [u8] as a writer. ``` ##### Bug Fixes - [efa965e](https://togithub.com/ratatui-org/ratatui/commit/efa965e1e806c60cb1bdb2d1715f960db0857704) *(line)* Remove newlines when converting strings to Lines by [@​joshka](https://togithub.com/joshka) in [#​1191](https://togithub.com/ratatui-org/ratatui/pull/1191) `Line::from("a\nb")` now returns a line with two `Span`s instead of 1 Fixes:[https://github.com/ratatui-org/ratatui/issues/1111](https://togithub.com/ratatui-org/ratatui/issues/1111) - [d370aa7](https://togithub.com/ratatui-org/ratatui/commit/d370aa75af99da3e0c41ceb28e2d02ee81cd2538) *(span)* Ensure that zero-width characters are rendered correctly by [@​joshka](https://togithub.com/joshka) in [#​1165](https://togithub.com/ratatui-org/ratatui/pull/1165) - [127d706](https://togithub.com/ratatui-org/ratatui/commit/127d706ee4876a58230f42f4a730b18671eae167) *(table)* Ensure render offset without selection properly by [@​joshka](https://togithub.com/joshka) in [#​1187](https://togithub.com/ratatui-org/ratatui/pull/1187) Fixes:[#​1179](https://togithub.com/ratatui-org/ratatui/issues/1179) - [4bfdc15](https://togithub.com/ratatui-org/ratatui/commit/4bfdc15b80ba14489d359ab1f88564c3bd016c19) *(uncategorized)* Render of \&str and String doesn't respect area.width by [@​thscharler](https://togithub.com/thscharler) in [#​1177](https://togithub.com/ratatui-org/ratatui/pull/1177) - [e6871b9](https://togithub.com/ratatui-org/ratatui/commit/e6871b9e21c25acf1e203f4860198c37aa9429a1) *(uncategorized)* Avoid unicode-width breaking change in tests by [@​joshka](https://togithub.com/joshka) in [#​1171](https://togithub.com/ratatui-org/ratatui/pull/1171) ```text unicode-width 0.1.13 changed the width of \u{1} from 0 to 1. Our tests assumed that \u{1} had a width of 0, so this change replaces the \u{1} character with \u{200B} (zero width space) in the tests. Upstream issue (closed as won't fix): https://github.com/unicode-rs/unicode-width/issues/55 ``` - [7f3efb0](https://togithub.com/ratatui-org/ratatui/commit/7f3efb02e6f846fc72079f0921abd2cee09d2d83) *(uncategorized)* Pin unicode-width crate to 0.1.13 by [@​joshka](https://togithub.com/joshka) in [#​1170](https://togithub.com/ratatui-org/ratatui/pull/1170) ```text semver breaking change in 0.1.13 ``` - [42cda6d](https://togithub.com/ratatui-org/ratatui/commit/42cda6d28706bf83308787ca784f374f6c286a02) *(uncategorized)* Prevent panic from string_slice by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1140](https://togithub.com/ratatui-org/ratatui/pull/1140) ##### Refactor - [73fd367](https://togithub.com/ratatui-org/ratatui/commit/73fd367a740924ce80ef7a0cd13a66b5094f7a54) *(block)* Group builder pattern methods by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1134](https://togithub.com/ratatui-org/ratatui/pull/1134) - [257db62](https://togithub.com/ratatui-org/ratatui/commit/257db6257f392a07ee238b439344d91566beb740) *(cell)* Must_use and simplify style() by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1124](https://togithub.com/ratatui-org/ratatui/pull/1124) ```text ``` - [bf20369](https://togithub.com/ratatui-org/ratatui/commit/bf2036987f04d83f4f2b8338fab1b4fd7f4cc81d) *(cell)* Reset instead of applying default by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1127](https://togithub.com/ratatui-org/ratatui/pull/1127) ```text Using reset is clearer to me what actually happens. On the other case a struct is created to override the old one completely which basically does the same in a less clear way. ``` - [7d175f8](https://togithub.com/ratatui-org/ratatui/commit/7d175f85c1905c08adf547dd37cc89c63039f480) *(lint)* Fix new lint warnings by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1178](https://togithub.com/ratatui-org/ratatui/pull/1178) - [cf67ed9](https://togithub.com/ratatui-org/ratatui/commit/cf67ed9b884347cef034b09e0e9f9d4aff74ab0a) *(lint)* Use clippy::or_fun_call by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1138](https://togithub.com/ratatui-org/ratatui/pull/1138) - [4770e71](https://togithub.com/ratatui-org/ratatui/commit/4770e715819475cdca2f2ccdbac00cba203cd6d2) *(list)* Remove deprecated `start_corner` and `Corner` by [@​Valentin271](https://togithub.com/Valentin271) in [#​759](https://togithub.com/ratatui-org/ratatui/pull/759) \[**breaking**] `List::start_corner` was deprecated in v0.25. Use `List::direction` and `ListDirection` instead. ```diff - list.start_corner(Corner::TopLeft); - list.start_corner(Corner::TopRight); // This is not an error, BottomRight rendered top to bottom previously - list.start_corner(Corner::BottomRight); // all becomes + list.direction(ListDirection::TopToBottom); ``` ```diff - list.start_corner(Corner::BottomLeft); // becomes + list.direction(ListDirection::BottomToTop); ``` `layout::Corner` is removed entirely. - [4f77910](https://togithub.com/ratatui-org/ratatui/commit/4f7791079edd16b54dc8cdfc95bb72b282a09576) *(padding)* Add Padding::ZERO as a constant by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1133](https://togithub.com/ratatui-org/ratatui/pull/1133) ```text Deprecate Padding::zero() ``` - [8061813](https://togithub.com/ratatui-org/ratatui/commit/8061813f324c08e11196e62fca22c2f6b9216b7e) *(uncategorized)* Expand glob imports by [@​joshka](https://togithub.com/joshka) in [#​1152](https://togithub.com/ratatui-org/ratatui/pull/1152) ```text Consensus is that explicit imports make it easier to understand the example code. This commit removes the prelude import from all examples and replaces it with the necessary imports, and expands other glob imports (widget::*, Constraint::*, KeyCode::*, etc.) everywhere else. Prelude glob imports not in examples are not covered by this PR. See https://github.com/ratatui-org/ratatui/issues/1150 for more details. ``` - [d929971](https://togithub.com/ratatui-org/ratatui/commit/d92997105bde15a1fd43829466ec8cc46bffe121) *(uncategorized)* Dont manually impl Default for defaults by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1142](https://togithub.com/ratatui-org/ratatui/pull/1142) ```text Replace `impl Default` by `#[derive(Default)]` when its implementation equals. ``` - [8a60a56](https://togithub.com/ratatui-org/ratatui/commit/8a60a561c95691912cbf41d55866abafcba0127d) *(uncategorized)* Needless_pass_by_ref_mut by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1137](https://togithub.com/ratatui-org/ratatui/pull/1137) - [1de9a82](https://togithub.com/ratatui-org/ratatui/commit/1de9a82b7a871a83995d224785cae139c6f4787b) *(uncategorized)* Simplify if let by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1135](https://togithub.com/ratatui-org/ratatui/pull/1135) ```text While looking through lints [`clippy::option_if_let_else`](https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else) found these. Other findings are more complex so I skipped them. ``` ##### Documentation - [1908b06](https://togithub.com/ratatui-org/ratatui/commit/1908b06b4a497ff1cfb2c8d8c165d2a241ee1864) *(borders)* Add missing closing code blocks by [@​orhun](https://togithub.com/orhun) in [#​1195](https://togithub.com/ratatui-org/ratatui/pull/1195) - [38bb196](https://togithub.com/ratatui-org/ratatui/commit/38bb19640449c7a3eee3a2fba6450071395e5e06) *(breaking-changes)* Mention `LineGauge::gauge_style` by [@​orhun](https://togithub.com/orhun) in [#​1194](https://togithub.com/ratatui-org/ratatui/pull/1194) see [#​565](https://togithub.com/ratatui-org/ratatui/issues/565) - [07efde5](https://togithub.com/ratatui-org/ratatui/commit/07efde5233752e1bcb7ae94a91b9e36b7fadb01b) *(examples)* Add hyperlink example by [@​joshka](https://togithub.com/joshka) in [#​1063](https://togithub.com/ratatui-org/ratatui/pull/1063) - [7fdccaf](https://togithub.com/ratatui-org/ratatui/commit/7fdccafd52f4ddad1a3c9dda59fada59af21ecfa) *(examples)* Add vhs tapes for constraint-explorer and minimal examples by [@​joshka](https://togithub.com/joshka) in [#​1164](https://togithub.com/ratatui-org/ratatui/pull/1164) - [4f307e6](https://togithub.com/ratatui-org/ratatui/commit/4f307e69db058891675d0f12d75ef49006c511d6) *(examples)* Simplify paragraph example by [@​joshka](https://togithub.com/joshka) in [#​1169](https://togithub.com/ratatui-org/ratatui/pull/1169) Related:[https://github.com/ratatui-org/ratatui/issues/1157](https://togithub.com/ratatui-org/ratatui/issues/1157) - [f429f68](https://togithub.com/ratatui-org/ratatui/commit/f429f688da536a52266144e63a1a7897ec6b7f26) *(examples)* Remove lifetimes from the List example by [@​matta](https://togithub.com/matta) in [#​1132](https://togithub.com/ratatui-org/ratatui/pull/1132) ```text Simplify the List example by removing lifetimes not strictly necessary to demonstrate how Ratatui lists work. Instead, the sample strings are copied into each `TodoItem`. To further simplify, I changed the code to use a new TodoItem::new function, rather than an implementation of the `From` trait. ``` - [308c1df](https://togithub.com/ratatui-org/ratatui/commit/308c1df6495ee4373f808007a1566ca7e9279933) *(readme)* Add links to forum by [@​joshka](https://togithub.com/joshka) in [#​1188](https://togithub.com/ratatui-org/ratatui/pull/1188) - [2f8a936](https://togithub.com/ratatui-org/ratatui/commit/2f8a9363fc6c54fe2b10792c9f57fbb40b06bc0f) *(uncategorized)* Fix links on docs.rs by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1144](https://togithub.com/ratatui-org/ratatui/pull/1144) ```text This also results in a more readable Cargo.toml as the locations of the things are more obvious now. Includes rewording of the underline-color feature. Logs of the errors: https://docs.rs/crate/ratatui/0.26.3/builds/1224962 Also see #​989 ``` ##### Performance - [4ce67fc](https://togithub.com/ratatui-org/ratatui/commit/4ce67fc84e3bc472e9ae97aece85f8ffae091834) *(buffer)* Filled moves the cell to be filled by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1148](https://togithub.com/ratatui-org/ratatui/pull/1148) \[**breaking**] - [8b447ec](https://togithub.com/ratatui-org/ratatui/commit/8b447ec4d6276c3110285e663417487ff18dafc1) *(rect)* `Rect::inner` takes `Margin` directly instead of reference by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1008](https://togithub.com/ratatui-org/ratatui/pull/1008) \[**breaking**] BREAKING CHANGE:Margin needs to be passed without reference now. ```diff -let area = area.inner(&Margin { +let area = area.inner(Margin { vertical: 0, horizontal: 2, }); ``` ##### Styling - [df4b706](https://togithub.com/ratatui-org/ratatui/commit/df4b706674de806bdf2a1fb8c04d0654b6b0b891) *(uncategorized)* Enable more rustfmt settings by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1125](https://togithub.com/ratatui-org/ratatui/pull/1125) ##### Testing - [d6587bc](https://togithub.com/ratatui-org/ratatui/commit/d6587bc6b0db955aeac6af167e1b8ef81a3afcc9) *(style)* Use rstest by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1136](https://togithub.com/ratatui-org/ratatui/pull/1136) ```text ``` ##### Miscellaneous Tasks - [7b45f74](https://togithub.com/ratatui-org/ratatui/commit/7b45f74b719ff18329ddbf9f05a9ac53bf06f71d) *(prelude)* Add / remove items by [@​joshka](https://togithub.com/joshka) in [#​1149](https://togithub.com/ratatui-org/ratatui/pull/1149) \[**breaking**] ```text his PR removes the items from the prelude that don't form a coherent common vocabulary and adds the missing items that do. Based on a comment at ``` BREAKING CHANGE:The following items have been removed from the prelude: - `style::Styled` - this trait is useful for widgets that want to support the Stylize trait, but it adds complexity as widgets have two `style` methods and a `set_style` method. - `symbols::Marker` - this item is used by code that needs to draw to the `Canvas` widget, but it's not a common item that would be used by most users of the library. - `terminal::{CompletedFrame, TerminalOptions, Viewport}` - these items are rarely used by code that needs to interact with the terminal, and they're generally only ever used once in any app. The following items have been added to the prelude: - `layout::{Position, Size}` - these items are used by code that needs to interact with the layout system. These are newer items that were added in the last few releases, which should be used more liberally. - [cd64367](https://togithub.com/ratatui-org/ratatui/commit/cd64367e244a1588206f653fd79678ce62a86a2f) *(symbols)* Add tests for line symbols by [@​joshka](https://togithub.com/joshka) in [#​1186](https://togithub.com/ratatui-org/ratatui/pull/1186) - [8cfc316](https://togithub.com/ratatui-org/ratatui/commit/8cfc316bccb48e88660d14cd18c0df2264c4d6ce) *(uncategorized)* Alphabetize examples in Cargo.toml by [@​joshka](https://togithub.com/joshka) in [#​1145](https://togithub.com/ratatui-org/ratatui/pull/1145) ##### Build - [70df102](https://togithub.com/ratatui-org/ratatui/commit/70df102de0154cdfbd6508659cf6ed649f820bc8) *(bench)* Improve benchmark consistency by [@​EdJoPaTo](https://togithub.com/EdJoPaTo) in [#​1126](https://togithub.com/ratatui-org/ratatui/pull/1126) ```text Codegen units are optimized on their own. Per default bench / release have 16 codegen units. What ends up in a codeget unit is rather random and can influence a benchmark result as a code change can move stuff into a different codegen unit β†’ prevent / allow LLVM optimizations unrelated to the actual change. More details: https://doc.rust-lang.org/cargo/reference/profiles.html ``` ##### New Contributors - [@​thscharler](https://togithub.com/thscharler) made their first contribution in [#​1177](https://togithub.com/ratatui-org/ratatui/pull/1177) - [@​matta](https://togithub.com/matta) made their first contribution in [#​1132](https://togithub.com/ratatui-org/ratatui/pull/1132) - [@​nowNick](https://togithub.com/nowNick) made their first contribution in [#​565](https://togithub.com/ratatui-org/ratatui/pull/565) - [@​enricozb](https://togithub.com/enricozb) made their first contribution in [#​991](https://togithub.com/ratatui-org/ratatui/pull/991) **Full Changelog**: https://github.com/ratatui-org/ratatui/compare/v0.26.3...v0.27.0
tower-rs/tower (tower) ### [`v0.5.0`](https://togithub.com/tower-rs/tower/releases/tag/tower-0.5.0): tower 0.5.0 [Compare Source](https://togithub.com/tower-rs/tower/compare/tower-0.4.13...tower-0.5.0) ##### Fixed - **util**: `BoxService` is now `Sync` ([#​702]) ##### Changed - **util**: Removed deprecated `ServiceExt::ready_and` method and `ReadyAnd` future ([#​652]) - **retry**: **Breaking Change** `retry::Policy::retry` now accepts `&mut Req` and `&mut Res` instead of the previous mutable versions. This increases the flexibility of the retry policy. To update, update your method signature to include `mut` for both parameters. ([#​584]) - **retry**: **Breaking Change** Change Policy to accept \&mut self ([#​681]) - **retry**: Add generic backoff utilities ([#​685]) - **retry**: Add Budget trait. This allows end-users to implement their own budget and bucket implementations. ([#​703]) - **reconnect**: **Breaking Change** Remove unused generic parameter from `Reconnect::new` ([#​755]) - **ready-cache**: Allow iteration over ready services ([#​700]) - **discover**: Implement `Clone` for Change ([#​701]) - **util**: Add a BoxCloneServiceLayer ([#​708]) - **rng**: use a simpler random 2-sampler ([#​716]) - **filter**: Derive `Clone` for `AsyncFilterLayer` ([#​731]) - **general**: Update IndexMap ([#​741]) - **MSRV**: Increase MSRV to 1.63.0 ([#​741]) [#​702]: https://togithub.com/tower-rs/tower/pull/702 [#​652]: https://togithub.com/tower-rs/tower/pull/652 [#​584]: https://togithub.com/tower-rs/tower/pull/584 [#​681]: https://togithub.com/tower-rs/tower/pull/681 [#​685]: https://togithub.com/tower-rs/tower/pull/685 [#​703]: https://togithub.com/tower-rs/tower/pull/703 [#​755]: https://togithub.com/tower-rs/tower/pull/755 [#​700]: https://togithub.com/tower-rs/tower/pull/700 [#​701]: https://togithub.com/tower-rs/tower/pull/701 [#​708]: https://togithu

Configuration

πŸ“… Schedule: Branch creation - "before 4am" in timezone America/Sao_Paulo, Automerge - At any time (no schedule defined).

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

β™» Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

πŸ‘» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.



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

renovate[bot] commented 1 month ago

⚠️ Artifact update problem

Renovate failed to update artifacts related to this branch. You probably do not want to merge this PR as-is.

β™» Renovate will retry this branch, including artifacts, only when one of the following happens:

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/kftui/Cargo.toml --package crossterm@0.27.0 --precise 0.28.1
    Updating crates.io index
error: failed to select a version for the requirement `crossterm = "^0.27"`
candidate versions found which didn't match: 0.28.1
location searched: crates.io index
required by package `ratatui-explorer v0.1.1`
    ... which satisfies dependency `ratatui-explorer = "^0.1.1"` (locked to 0.1.1) of package `kftui v0.13.2 (/tmp/renovate/repos/github/hcavarsan/kftray/crates/kftui)`
File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/kftray-tauri/Cargo.toml --package tower@0.4.13 --precise 0.5.0
    Updating crates.io index
error: failed to select a version for the requirement `tower = "^0.4.1"`
candidate versions found which didn't match: 0.5.0
location searched: crates.io index
required by package `hyper-util v0.1.7`
    ... which satisfies dependency `hyper-util = "^0.1.7"` (locked to 0.1.7) of package `kftray-tauri v0.13.2 (/tmp/renovate/repos/github/hcavarsan/kftray/crates/kftray-tauri)`
File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path crates/kftray-portforward/Cargo.toml --package tower@0.4.13 --precise 0.5.0
    Updating crates.io index
error: failed to select a version for the requirement `tower = "^0.4.1"`
candidate versions found which didn't match: 0.5.0
location searched: crates.io index
required by package `hyper-util v0.1.7`
    ... which satisfies dependency `hyper-util = "^0.1.7"` (locked to 0.1.7) of package `kftray-tauri v0.13.2 (/tmp/renovate/repos/github/hcavarsan/kftray/crates/kftray-tauri)`
coderabbitai[bot] commented 1 month ago

Walkthrough

The change involves updating the Dockerfile for the kftray-server project by upgrading the Rust base image from rust:1.80.0-alpine3.19 to rust:1.80.1-alpine3.19. This minor version increment likely includes various enhancements, bug fixes, or security patches relevant to the Rust environment. The remainder of the Dockerfile remains unchanged, continuing to ensure the installation of necessary development libraries.

Changes

Files Change Summary
crates/kftray-server/Dockerfile Updated base image from rust:1.80.0-alpine3.19 to rust:1.80.1-alpine3.19 for environment improvements.

Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share - [X](https://twitter.com/intent/tweet?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A&url=https%3A//coderabbit.ai) - [Mastodon](https://mastodon.social/share?text=I%20just%20used%20%40coderabbitai%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20the%20proprietary%20code.%20Check%20it%20out%3A%20https%3A%2F%2Fcoderabbit.ai) - [Reddit](https://www.reddit.com/submit?title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&text=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code.%20Check%20it%20out%3A%20https%3A//coderabbit.ai) - [LinkedIn](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fcoderabbit.ai&mini=true&title=Great%20tool%20for%20code%20review%20-%20CodeRabbit&summary=I%20just%20used%20CodeRabbit%20for%20my%20code%20review%2C%20and%20it%27s%20fantastic%21%20It%27s%20free%20for%20OSS%20and%20offers%20a%20free%20trial%20for%20proprietary%20code)
Tips ### Chat There are 3 ways to chat with [CodeRabbit](https://coderabbit.ai): - Review comments: Directly reply to a review comment made by CodeRabbit. Example: - `I pushed a fix in commit .` - `Generate unit testing code for this file.` - `Open a follow-up GitHub issue for this discussion.` - Files and specific lines of code (under the "Files changed" tab): Tag `@coderabbitai` in a new review comment at the desired location with your query. Examples: - `@coderabbitai generate unit testing code for this file.` - `@coderabbitai modularize this function.` - PR comments: Tag `@coderabbitai` in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples: - `@coderabbitai generate interesting stats about this repository and render them as a table.` - `@coderabbitai show all the console.log statements in this repository.` - `@coderabbitai read src/utils.ts and generate unit testing code.` - `@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.` - `@coderabbitai help me debug CodeRabbit configuration file.` Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. ### CodeRabbit Commands (invoked as PR comments) - `@coderabbitai pause` to pause the reviews on a PR. - `@coderabbitai resume` to resume the paused reviews. - `@coderabbitai review` to trigger an incremental review. This is useful when automatic reviews are disabled for the repository. - `@coderabbitai full review` to do a full review from scratch and review all the files again. - `@coderabbitai summary` to regenerate the summary of the PR. - `@coderabbitai resolve` resolve all the CodeRabbit review comments. - `@coderabbitai configuration` to show the current CodeRabbit configuration for the repository. - `@coderabbitai help` to get help. Additionally, you can add `@coderabbitai ignore` anywhere in the PR description to prevent this PR from being reviewed. ### CodeRabbit Configuration File (`.coderabbit.yaml`) - You can programmatically configure CodeRabbit by adding a `.coderabbit.yaml` file to the root of your repository. - Please see the [configuration documentation](https://docs.coderabbit.ai/guides/configure-coderabbit) for more information. - If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: `# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json` ### Documentation and Community - Visit our [Documentation](https://coderabbit.ai/docs) for detailed information on how to use CodeRabbit. - Join our [Discord Community](https://discord.com/invite/GsXnASn26c) to get help, request features, and share feedback. - Follow us on [X/Twitter](https://twitter.com/coderabbitai) for updates and announcements.