fix(deps): update all dependencies #98

Open
kjuulh wants to merge 1 commits from renovate/all into main
Owner

This PR contains the following updates:

Package Type Update Change
anyhow workspace.dependencies patch 1.0.97 -> 1.0.100
clap workspace.dependencies patch 4.5.31 -> 4.5.54
crossterm dependencies minor 0.28.0 -> 0.29.0
human-panic dependencies patch 2.0.2 -> 2.0.6
ratatui (source) dependencies minor 0.29.0 -> 0.30.0
serde_json dependencies patch 1.0.140 -> 1.0.149
serde_json workspace.dependencies patch 1.0.140 -> 1.0.149
sha2 workspace.dependencies patch 0.10.8 -> 0.10.9
sqlx dependencies patch 0.8.3 -> 0.8.6
tempfile (source) dev-dependencies minor 3.17.1 -> 3.24.0
tokio (source) workspace.dependencies minor 1.45.1 -> 1.49.0
toml workspace.dependencies minor 0.8.14 -> 0.9.0
tower-http dependencies patch 0.6.2 -> 0.6.8
uuid dependencies minor 1.15.1 -> 1.19.0
uuid workspace.dependencies minor 1.15.1 -> 1.19.0

Release Notes

dtolnay/anyhow (anyhow)

v1.0.100

Compare Source

  • Teach clippy to lint formatting arguments in bail!, ensure!, anyhow! (#​426)

v1.0.99

Compare Source

  • Allow build-script cleanup failure with NFSv3 output directory to be non-fatal (#​420)

v1.0.98

Compare Source

clap-rs/clap (clap)

v4.5.54

Compare Source

Fixes
  • (help) Move [default] to its own paragraph when PossibleValue::help is present in --help

v4.5.53

Compare Source

Features
  • Add default_values_if, default_values_ifs

v4.5.52

Compare Source

Fixes
  • Don't panic when args_conflicts_with_subcommands conflicts with an ArgGroup

v4.5.51

Compare Source

Fixes
  • (help) Correctly calculate padding for short flags that take a value
  • (help) Don't panic on short flags using ArgAction::Count

v4.5.50

Compare Source

Features
  • Accept Cow where String and &str are accepted

v4.5.49

Compare Source

Fixes
  • (help) Correctly wrap when ANSI escape codes are present

v4.5.48

Compare Source

Documentation
  • Add a new CLI Concepts document as another way of framing clap
  • Expand the typed_derive cookbook entry

v4.5.47

Compare Source

Features
  • Added impl FromArgMatches for ()
  • Added impl Args for ()
  • Added impl Subcommand for ()
  • Added impl FromArgMatches for Infallible
  • Added impl Subcommand for Infallible
Fixes
  • (derive) Update runtime error text to match clap

v4.5.46

Compare Source

Features
  • Expose StyledStr::push_str

v4.5.45

Compare Source

Fixes
  • (unstable-v5) ValueEnum variants now use the full doc comment, not summary, for PossibleValue::help

v4.5.44

Compare Source

Features
  • Add Command::mut_subcommands

v4.5.43

Compare Source

Fixes
  • (help) In long help, list Possible Values before defaults, rather than after, for a more consistent look

v4.5.42

Compare Source

Fixes
  • Include subcommand visible long aliases in --help

v4.5.41

Compare Source

Features
  • Add Styles::context and Styles::context_value to customize the styling of [default: value] like notes in the --help

v4.5.40

Compare Source

Features
  • Support quoted ids in arg!() macro (e.g. arg!("check-config": ...))

v4.5.39

Compare Source

Fixes
  • (help) Show short flag aliases before long
  • (help) Merge the short and long flag alias lists

v4.5.38

Compare Source

Fixes
  • (help) When showing aliases, include leading -- or -

v4.5.37

Compare Source

Features
  • Added ArgMatches::try_clear_id()

v4.5.36

Compare Source

Fixes
  • (help) Revert 4.5.35's "Don't leave space for shorts if there are none" for now

v4.5.35

Compare Source

Fixes
  • (help) Align positionals and flags when put in the same help_heading
  • (help) Don't leave space for shorts if there are none

v4.5.34

Compare Source

Fixes
  • (help) Don't add extra blank lines with flatten_help(true) and subcommands without arguments

v4.5.33

Compare Source

Fixes
  • (error) When showing the usage of a suggestion for an unknown argument, don't show the group

v4.5.32

Compare Source

Features
  • Add Error::remove
Documentation
  • (cookbook) Switch from humantime to jiff
  • (tutorial) Better cover required vs optional
Internal
  • Update pulldown-cmark
rust-cli/human-panic (human-panic)

v2.0.6

Compare Source

Features
  • Added Metadata::repository as a fallback for Metadata::homepage

v2.0.5

Compare Source

Performance
  • Improve build times on some platforms by changing from os_info to sysinfo

v2.0.4

Compare Source

v2.0.3

Compare Source

Internal
  • Update toml
ratatui/ratatui (ratatui)

v0.30.0

Compare Source

"Rats don't just survive; they discover; they create. ... I mean, just look at what they do with
the terminal!" – Remy & Orhun

We are excited to announce the biggest release of ratatui so far - a Rust library that's all about cooking up TUIs 👨‍🍳🐀

🌠 Added "no_std" support for embedded targets, modularized architecture, major widget & layout upgrades!

Release highlights: https://ratatui.rs/highlights/v030/

⚠️ List of breaking changes can be found here.

Features
  • 90a77aa (direction) Add Direction::perpendicular(self) by @​b-guild in #​2197

  • 56d5e05 (bar) Update label and text_value to accept Into<> by @​Emivvvvv in #​1471 [breaking]

    BREAKING CHANGE:label and text_value now accept Into<> types, which
    breaks type inference.

    - Bar::default().label("foo".into());
    + Bar::default().label("foo");
    
    - Bar::default().text_value("bar".into());
    + Bar::default().text_value("bar");
    
  • b76ad3b (bar) Impl Styled for Bar by @​Emivvvvv in #​1476

    Related:https://github.com/ratatui/ratatui/issues/683

  • e15fefa (barchar) Add BarChart::grouped constructor by @​joshka in #​1513

    Add a new constructor to the BarChart widget that allows creating a
    grouped barchart with multiple groups of bars.

    Also add a new constructor to the BarGroup widget that allows creating
    a group of bars with a label.

  • 369b18e (barchart) Reduce barchart creation verbosity by @​Emivvvvv in #​1453

    Adds constructor methods for BarChart, BarGroup, and Bar

  • 1dc18bf (calendar) Add width and height functions by @​joshka in #​2198

    Fixes https://github.com/ratatui/ratatui/issues/2016


  • f18bcbf (canvas) Add quadrant, sextant and octant markers by @​sbarral in #​2235 [breaking]

    The octant marker is an alternative to the Braille marker with the same
    resolution, but offering densely packed, regular pseudo-pixels, without
    visible bands between rows and columns.

    Quadrant and Sextants are also added to support 2x2 and 2x3.

    Sextant and Octant unicode characters that are less widely supported at
    the moment, which is why Braille was left as the default.

    BREAKING CHANGE:addition of new variants to Marker and removal of
    no longer used constants in ratatui::symbols::braille.

  • 26b05de (chart) Render Braille over Blocks in Charts and Canvas by @​j-g00da in #​2165

    This makes it possible to stack charts, and write text over block symbols in
    Charts and Canvas while still showing the block symbols behind the text.

  • bf84c62 (core) Add a has_modifier() method to Style by @​sxyazi in #​2267

    Resolves https://github.com/ratatui/ratatui/issues/2264

  • 2d713d7 (crossterm) Allow multiple crossterm versions by @​joshka in #​1841

    This commit introduces feature flags to make it possible for widget
    library authors to depend on a specific version of crossterm without
    causing version conflicts. This should make it easier for libraries and
    apps to update crossterm versions more easily.

    The available feature flags are crossterm_0_28 and crossterm_0_29.
    By default, the latest version is enabled. If a multiple features are
    enabled we choose the latest version. We will in general support at
    least the last two major (0.x) versions of crossterm, and will only
    remove versions in a major version bump.

  • d99984f (layout) Add Flex::SpaceEvenly by @​kdheepak in #​1952 [breaking]

    Resolves https://github.com/ratatui/ratatui/issues/1951

    BREAKING CHANGE:Old Flex::SpaceAround behavior is available by using

    Flex::SpaceEvenly and new

    Flex::SpaceAround now distributes space evenly around each element
    except the middle spacers
    are twice the size of first and last elements

    With this change, the following variants of Flex are supported:

    • Flex::Start: Aligns items to the start; excess space appears at the
      end.
    • Flex::End: Aligns items to the end; excess space appears at the
      start.
    • Flex::Center: Centers items with equal space on both sides.
    • Flex::SpaceAround (new): Distributes space around items; space
      between items is twice the edge spacing.
    • Flex::SpaceBetween: Distributes space evenly between items except
      no space at the edges.
    • Flex::SpaceEvenly (previously Flex::SpaceAround): Distributes
      space evenly between items and edges.
    • Flex::Legacy: Preserves legacy behavior, placing all excess space at
      the end.

    This aligns behavior of Flex with CSS flexbox more closely.

    The following is a screenshot in action:

    <img width="1090" alt="image"

    src="https://github.com/user-attachments/assets/2c7cd797-27bd-4242-a824-4565d369227b"
    />


  • 9275d34 (layout) Add Offset::new() constructor by @​joshka in #​1547

  • 7ad9c29 (linegauge) Customized symbols by @​sectore in #​1601

    With this PR any symbol (&str) can be used to render filled and
    unfilled parts of LineGauge now. Before that change, only
    symbols::line::Set
    was accepted.

    Note:New methods are introduced to define those symbols:
    filled_symbol and unfilled_symbol. The method
    line_set
    is still there, but marked as deprecated.

    line_gauge

  • 92a19cb (list) Highlight symbol styling by @​airblast-dev in #​1595 [breaking]

    Allow styling for List's highlight symbol

    This change makes it so anything that implements Into<Line> can be
    used as a highlight symbol.

    BREAKING CHANGE:List::highlight_symbol can no longer be used in const
    context

    BREAKING CHANGE:List::highlight_symbol accepted &str. Conversion
    methods that rely on type inference will need to be rewritten as the
    compiler cannot infer the type.

    closes:https://github.com/ratatui/ratatui/issues/1443


  • e89a526 (no_std) Portable-atomic integration for targets with no atomic types by @​j-g00da in #​2076

    Improves compatibility with no-std targets that don't support atomic
    types.

    We support three different scenarios depending on the target:

    1. Terminal applications and other std targets (e.g. espidf):
    • std enabled, portable-atomic disabled
    1. Embedded targets with atomic types, bare metal x86, etc.:
    • std disabled portable-atomic disabled
    1. Embedded targets without atomic types (e.g. single-core MCUs):
    • std disabled, portable-atomic enabled

    Turning on portable-atomic together with std will fall back to std
    atomic.

  • 1399d95 (no_std) Make palette and serde features depends on std by @​j-g00da in #​1919

  • b32f781 (no_std) Make ratatui-macros no-std by @​j-g00da in #​1865

  • 3e1c72f (no_std) Make ratatui compatible with #![no_std] by @​j-g00da in #​1794 [breaking]

    Resolves #​1781

    This PR makes it possible to compile ratatui with #![no_std].
    Also makes me answer "We Are So Embedded" to "Are We Embedded Yet?"

  • ab48c06 (no_std) Option to disable layout cache for no_std compatibility by @​j-g00da in #​1795 [breaking]

    Resolves #​1780

    BREAKING CHANGE:Disabling default-features will now disable layout
    cache, which can have a negative impact on performance.

    Layout::init_cache and Layout::DEFAULT_CACHE_SIZE are now only
    available if layout-cache feature is enabled.

  • 09173d1 (no_std) Make TestBackend::Error Infallible by @​j-g00da in #​1823 [breaking]

    BREAKING CHANGE:TestBackend now uses core::convert::Infallible for
    error handling instead of std::io::Error

  • 007713e (no_std) Replace Backend's io::Error usages with associated Error type by @​j-g00da in #​1778 [breaking]

    Resolves #​1775

    BREAKING CHANGE:Custom backends now have to implement Backend::Error
    and Backend::clear_region. Additionally some generic Backend usage
    will have to explicitly set trait bounds for Backend::Error.

  • a42a17e (no_std) Make ratatui-widgets no_std by @​j-g00da in #​1779

    Resolves #​1776

  • 5a232a3 (no_std) Remove redundant std usages in ratatui-widgets by @​j-g00da in #​1762

  • ebe10cd (no_std) Remove redundant std usages in ratatui-core by @​j-g00da in #​1753

    Resolves https://github.com/ratatui/ratatui/issues/1751

  • 08b08cc (rect) Centering by @​janTatesa in #​1814

    Resolves #​617

  • ff729b7 (scrollbar) Support retrieving the current position of state by @​orhun in #​1552

    As of now it is possible to change the position of the Scrollbar but not
    possible to retrieve the position for further use. e.g.

    let mut state = ScrollbarState::default();
    state.next();
    

    This commit adds a new method "current_position" (since position is
    already taken by the fluent setter) for that purpose:

    let index = state.get_position(); // yay
    

    See #​1545 for the concrete usage of this.

  • 4c3c054 (serde) Handle null modifiers in serde Style by @​joshka in #​2172

    Allow Style's add_modifier and sub_modifier fields to
    deserialize from null

  • b9da192 (serde) Derive Serialize/Deserialize for alignment enums by @​j-g00da in #​1957

    Resolves #​1954

  • 89b7421 (serde) Derive Serialize/Deserialize for additional structs/enums by @​aurreland in #​1883

    This PR adds #[derive(Serialize, Deserialize)] to the following
    structs:

    • Constraint
    • Direction
    • Spacing
    • Layout
    • AccentedPalette
    • NonAccentedPalette
    • Palette
    • Padding
    • Borders
    • BorderType
    • ListDirection
    • ScrollbarOrientation
    • ScrollDirection
    • RenderDirection
    • HighlightSpacing

    Fixes #​1877

  • 03f3f6d (style) Allow add/sub modifiers to be omitted in Style serialization. by @​rcorre in #​2057

    It's really useful that Style supports Deserialize, this allows TUI
    apps to have configurable theming without much extra code.

    However, deserializing a style currently fails if add_modifier and
    sub_modifier are
    not specified. That means the following TOML config:

    [theme.highlight]
    fg = "white"
    bg = "black"
    

    Will fail to deserialize with "missing field add_modifier". It should
    be possible
    to omit modifiers and have them default to "none".

  • ee67347 (symbols) Make Marker non-exhaustive by @​j-g00da in #​2236 [breaking]

    This will allow us to add new markers without causing further breaking
    changes.

    BREAKING CHANGE:Marker is now non-exhaustive

  • 985cd05 (symbols) Add dashed borders by @​theotchlx in #​1573

    Adds several new border sets:

    • ratatui::symbols::border::LIGHT_DOUBLE_DASHED
    • ratatui::symbols::border::HEAVY_DOUBLE_DASHED
    • ratatui::symbols::border::LIGHT_TRIPLE_DASHED
    • ratatui::symbols::border::HEAVY_TRIPLE_DASHED
    • ratatui::symbols::border::LIGHT_QUADRUPLE_DASHED
    • ratatui::symbols::border::HEAVY_QUADRUPLE_DASHED

    And corresponding variants to the ratatui::widgets::BorderType enum

    Fixes:https://github.com/ratatui/ratatui/issues/1355

  • 4c301e8 (text) Implement AddAssign for Text by @​acuteenvy in #​1956

    This makes it possible to add a second Text instance to a first one using the += operator.

    let mut text = Text::from("line 1");
    text += Text::from("line 2");
    

    Style and alignment applied to the second text is ignored (though styles and alignment of lines and spans are copied).

  • ce4856a (widgets) Add the missing constructor to canvas types by @​orhun in #​1538

    Allows constructing Rectangle, Points and Circle using the new
    method instead of initializing with the public fields directly.

  • 22610b0 (uncategorized) Support adding an Offset to Position by @​joshka in #​2239

    Adds Position::offset() and arithmetic ops (Position + Offset and
    Position - Offset)

    Fixes:https://github.com/ratatui/ratatui/issues/2018

  • 24e3133 (uncategorized) Add Rect::resize() method by @​joshka in #​2240

    Fixes:https://github.com/ratatui/ratatui/issues/1440

  • 96d097e (uncategorized) Implement Rect ops for moving by @​joshka in #​1596

    feat:implement Rect ops for moving

    Implemented Add, AddAssign, Sub, and SubAssign on Rect for
    Offset. This makes it possible to move rects

    let rect = Rect::new(1, 2, 3, 4);
    let moved = rect + Offset(1, 2);
    let moved = rect - Offset(1, 2);
    let moved = rect + Offset(-1, -2);
    

    Additionally Rect, Size, Offset, and Position now all have MIN and MAX
    consts.

  • e869cb9 (uncategorized) Add Size::area() by @​joshka in #​2226

    Add Size::area() returning u32 to avoid u16 overflow
    Fixes https://github.com/ratatui/ratatui/issues/2204

  • b6588fd (uncategorized) Implement From<Size> for (u16, u16) by @​0xb002f0 in #​2223

  • 75b78be (uncategorized) Add width() impl for tabs by @​joshka in #​2049

    The purpose of this is to make it easy for apps to easily calculate the
    total tab width including all dividers and padding.

  • 8188ed3 (uncategorized) Implement UnicodeWidthStr for Text/Line/Span by @​joshka in #​2030

    You can now calculate the width of any Text/Line/Span using the
    UnicodeWidthStr trait instead of the width method on the type. This also
    makes it possible to use the width_cjk() method if needed.

  • c845fec (uncategorized) Add conversion from Size to Rect by @​joshka in #​2028

    Rect::from(size) returns a new Rect at the origin (0, 0) with the
    specified Size

  • 017af11 (uncategorized) Preserve block titles when merging borders by @​j-g00da in #​1977

    Resolves #​1939

  • 6dcd53b (uncategorized) Add ergonomic methods for layouting Rects by @​joshka in #​1909

    This commit introduces new methods for the Rect struct that simplify
    the process of splitting a Rect into sub-rects according to a given
    Layout. By putting these methods on the Rect struct, we make it a
    bit more natural that a layout is applied to the Rect itself, rather
    than passing a Rect to the Layout struct to be split.

    Adds:- Rect::layout and Rect::try_layout methods that allow splitting a
    Rect into an array of sub-rects according to a given Layout.

    • Rect::layout_vec method that returns a Vec of sub-rects.
    • Layout::try_areas method that returns an array of sub-rects, with
      compile-time checks for the number of constraints. This is added
      mainly for consistency with the new Rect methods.
    use ratatui_core::layout::{Layout, Constraint, Rect};
    let area = Rect::new(0, 0, 10, 10);
    let layout = Layout::vertical([Constraint::Fill(1); 2]);
    
    // Rect::layout() infers the number of constraints at compile time:
    let [top, main] = area.layout(&layout);
    
    // Rect::try_layout() and Layout::try_areas() do the same, but return a
    // Result:
    let [top, main] = area.try_layout(&layout)?;
    let [top, main] = layout.try_areas(area)?;
    
    // Rect::layout_vec() returns a Vec of sub-rects:
    let areas_vec = area.layout_vec(&layout);
    
    // you can also explicitly specify the number of constraints:
    let areas = area.layout::<2>(&layout);
    let areas = area.try_layout::<2>(&layout)?;
    let areas = layout.try_areas::<2>(area)?;
    
  • 0c3872f (uncategorized) Add Rect::outer() by @​joshka in #​1929

    Fixes:https://github.com/ratatui/ratatui/issues/211

  • 7bc78bc (uncategorized) Add ratatui::run() method by @​joshka in #​1707

    This introduces a new ratatui::run() method which runs a closure with
    a terminal initialized with reasonable defaults for most applications.
    This calls ratatui::init() before running the closure and
    ratatui::restore() after the closure completes, and returns the result
    of the closure.

    A minimal hello world example using the new ratatui::run() method:

    fn main() -> Result<(), Box<dyn std::error::Error>> {
        ratatui::run(|terminal| {
            loop {
                terminal.draw(|frame| frame.render_widget("Hello World!", frame.area()))?;
                if crossterm::event::read()?.is_key_press() {
                    break Ok(());
                }
            }
        })
    }
    

    Of course, this also works both with apps that use free methods and
    structs:

    fn run(terminal: &mut DefaultTerminal) -> Result<(), AppError> { ... }
    
    ratatui::run(run)?;
    
    struct App { ... }
    
    impl App {
        fn new() -> Self { ... }
        fn run(mut self, terminal: &mut DefaultTerminal) -> Result<(), AppError> { ... }
    }
    
    ratatui::run(|terminal| App::new().run(terminal))?;
    
  • b6fbfcd (uncategorized) Add lifetime to symbol sets by @​joshka in #​1935

    This makes it possible to create symbol sets at runtime with non-static
    lifetimes.

    Fixes:https://github.com/ratatui/ratatui/issues/1722

  • 488e5f0 (uncategorized) Make border! work without importing Borders by @​j-g00da in #​1918

    Currently using border! macro requires explicit import of Borders
    which is unnecessary.

  • 671c2b4 (uncategorized) Support merging the borders of blocks by @​j-g00da

    When two borders overlap, they will automatically merge into a single,
    clean border instead of overlapping.

    This improves visual clarity and reduces rendering glitches around corners.

    For example:

    assert_eq!(Cell::new("┘").merge_symbol("┏", MergeStrategy::Exact).symbol(), "╆");
    
  • 702fff5 (uncategorized) Implement stylize methods directly on Style by @​joshka in #​1572 [breaking]

    This makes it possible to create constants using the shorthand methods.

    const MY_STYLE: Style = Style::new().blue().on_black();
    

    Rather than implementing Styled for Style and then adding extension
    methods that implement the Stylize shorthands, this implements the
    methods as const functions directly on Style.

    BREAKING CHANGE:Style no longer implements Styled. Any calls to
    methods implemented by the blanket implementation of Stylize are now
    defined directly on Style. Remove the Stylize import if it is no longer
    used by your code.

    The reset() method does not have a direct replacement, as it clashes
    with the existing reset() method. Use Style::reset() rather than
    some_style.reset()

    Fixes:#​1158

  • 4fcd238 (uncategorized) Support no-std for calendar widget by @​joshka in #​1852

    Removes the CalendarEventStore::today() function in no-std environments

  • 53cdbbc (uncategorized) Enable serde propagation to backend crates (crossterm, termion) by @​ArjunKrish7356 in #​1812

    This PR propagates the serde feature from the main ratatui crate to the
    ratatui-crossterm and ratatui-termion backend crates. Solves #​1805

  • 6836a69 (uncategorized) Implement styled for other primitives by @​aschey in #​1684

  • fcb47d6 (uncategorized) Rename Alignment to HorizontalAlignment and add VerticalAlignment by @​joshka in #​1735 [breaking]

    We don't anticipate removing or deprecating the type alias in the near
    future, but it is recommended to update your imports to use the new
    name.

    Added a VerticalAlignment enum to make the API more consistent. We don't
    have a specific use case for it yet, but it's better to add it now and
    be able to use it in the future.

    BREAKING-CHANGE:The Alignment enum has been renamed to
    HorizontalAlignment to better reflect its purpose. A type alias has
    been added to maintain backwards compatibility, however there are some
    cases where type aliases are not enough to maintain backwards
    compatibility. E.g. when using glob imports to import all the enum
    variants. This should not affect most users, but it is recommended to
    update your imports to use the new name.

    - use ratatui::layout::Alignment;
    + use ratatui::layout::HorizontalAlignment;
    
    - use Alignment::*;
    + use HorizontalAlignment::*;
    
  • 2714d6b (uncategorized) Add array and tuple RGB color conversion methods by @​joshka in #​1703

    Other crates (e.g. colorgrad) that deal with colors can convert colors
    to a tuple of 3 or 4 u8 values. This commit adds conversion methods from
    these types to a Color::Rgb instance. Any alpha value is ignored.

    Color::from([255, 0, 0]);
    Color::from((255, 0, 0));
    Color::from([255, 0, 0, 255]);
    Color::from((255, 0, 0, 255));
    
  • 50ba965 (uncategorized) Add a new RatatuiMascot widget by @​Its-Just-Nans in #​1584

    Move the Mascot from Demo2 into a new widget.
    Make the Rat grey and adjust the other colors.

    frame.render_widget(RatatuiMascot::default(), frame.area());
    
  • 1d28c89 (uncategorized) Add conversions for anstyle by @​joshka in #​1581

    https://crates.io/crates/anstyle makes it possible to define colors in
    an interoperable way. This makes it possible for applications to easily
    load colors from a variety of formats.

    This is gated by the anstyle feature flag which is disabled by default.


Bug Fixes
  • a89d3d6 (buffer) Clear behavior with VS16 wide emojis by @​nornagon in #​2063

    This fixes a bug where certain emojis like ⌨️ would sometimes be
    "overlaid" onto existing content from the buffer, instead of properly
    clearing.

    example demonstrating
    bug

    This PR was generated by Codex, and validated by me:

    1. Behavior of the above example code was buggy before this fix (showed
      overlaying "b" on top of the keyboard emoji), and fixed after.
    2. The U+FE0F check is not strictly required, but I did note that emoji
      without this char don't exhibit the buggy behavior, even without the
      fix.

  • ec30390 (canvas) Round coordinates to nearest grid cell by @​joshka in #​1507

    Previously the canvas coordinates were rounded towards zero, which
    causes the rendering to be off by one pixel in some cases. It also meant
    that pixels at the extreme edges of the canvas can only be drawn if the
    point was exactly on the edge of the canvas. This commit rounds the
    coordinates to the nearest integer instead. This may change the output
    for some apps using Canvas / Charts.

  • afd1ce1 (canvas) Lines that start outside the visible grid are now drawn by @​renesat in #​1501

    Previously lines with points that were outside the canvas bounds were
    not drawn at all. Now they are clipped to the bounds of the canvas so
    that the portion of the line within the canvas is draw.

    To facilitate this, a new Painter::bounds() method which returns the
    bounds of the canvas is added.

    Fixes:https://github.com/ratatui/ratatui/issues/1489

  • 2b0a044 (ci) Add contents write permission to release-plz PR by @​marcoieni in #​2119

    https://release-plz.dev/docs/github/quickstart#3-setup-the-workflow

    Fixes https://github.com/release-plz/release-plz/issues/2439

  • 18e70d3 (crossterm) Terminal should keep Bold when removing Dim by @​MarSik in #​1541

    The Dim removal should behave the same as the logic for Bold removal
    that sends NormalIntensity sequence and then restores Dim when needed.

  • 16b76e3 (demo) Update the width of demo2 tape by @​orhun in #​2164

    fixes #​1721

  • dca331c (demo) Support tab key in demo2 example by @​orhun in #​1726

    see #​1721

    Not sure what caused this - it's been there for a while probably and we
    didn't realize it since we used demo2-destroy mostly.

  • 0fd4753 (examples) Run the correct example for chart by @​orhun in #​1679

    fixes #​1678

  • 39479e2 (examples) Ensure that example projects are not published by @​orhun in #​1672

  • 9314312 (layout) Feature flag cache related types by @​joshka in #​1842

  • 2dd1977 (layout-cache) Import NonZeroUsize only when layout-cache is enabled by @​j-g00da in #​1839

    This silences unused import warning, when layout-cache is disabled.

  • 564a9d7 (line-gauge) Pad default label to display 3 numbers by @​martinetd in #​2053

    Display the default label of the LineGauge widget padded to fill 3 cells.
    This makes it so that the label doesn't shift around when going from a
    single digit to double / triple digits.

    To maintain the existing behavior, use a custom label by calling .label()
    on the LineGauge.

  • a692a6e (lint) Apply rust 1.84 clippy suggestions by @​joshka in #​1612

    The canvas map constants are now statics instead.
    Fixes
    https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays

  • 2e54d5e (macros) Use $crate re-export in text macro by @​airblast-dev in #​1832

  • 79d5165 (no_std) Propagate std feature flag to dependencies by @​j-g00da in #​1838

    Disables std feature flags in dependencies and only enables them with
    ratatui and ratatui-core's std feature flag. This partially fixes the
    issue of still depending on std, when std feature flag is disabled.

  • 00da8c6 (no_std) Provide f64 polyfills for no_std compatibility by @​j-g00da in #​1840

    Related:https://github.com/rust-lang/rust/issues/137578

  • 3b13240 (scrollbar) Check for area.is_empty() before rendering by @​farmeroy in #​1529

    This adds the area.is_empty() back into the scrollbar render method.
    Without it, the widget panics if the height is 0.

  • f57b696 (span) Dont render control characters by @​EdJoPaTo in #​1312

  • 2ce958e (table) Allow display of additional table row, if row height > 1 by @​Lunderberg in #​1452

  • 0a25bc1 (tests) Update the stderr snapshot for ratatui-macros by @​orhun in #​2161

    New 🦀 broke the CI

  • 5fa342c (widgets) Fix centered block title truncation by @​ognis1205 in #​1973

    Previously block titles that were aligned center were
    truncated poorly (aligned to the left, and the last
    non-fitting title would be truncated on the left and right.
    This now truncates the titles more obviously centered.

  • f919b25 (uncategorized) String_to_string lint is now part of implicit_clone by @​joshka in #​2173

  • 1fe64de (uncategorized) Include underline color in anstyle conversion by @​aschey in #​2004

    Underline color wasn't included in the style conversion logic.

  • c1b8528 (uncategorized) Panic when rendering widgets on too small buffer by @​j-g00da in #​1996

    Fixes panic on overflow on horizontal Barchart and RatatuiMascot and adds proper tests to all widgets.


  • 08b21fa (uncategorized) Fix panic when rendering a Paragraph out of bounds by @​jwodder in #​1670

    Fixes #​1667.

  • 80bc818 (uncategorized) Fix truncation of left aligned block titles by @​joshka in #​1931

    truncate the right side of left aligned titles rather than the left side
    of right aligned titles. This is more obvious as the left side of text
    often contains more important information. And we generally read
    left to right.

    This change makes centered titles overwrite left aligned titles and
    right aligned titles overwrite centered or left aligned titles.

    Fixes:https://github.com/ratatui/ratatui/issues/358

  • 21e3b59 (uncategorized) Fix handling of multi-byte chars in bar chart by @​joshka in #​1934

    The split_at method requires that the split point is at a valid utf8
    character boundary.

    Fixes:https://github.com/ratatui/ratatui/issues/1928

  • e1e4004 (uncategorized) Derive copy for list state by @​janTatesa in #​1921

  • 12cb5a2 (uncategorized) Allow canvas area to exceed u16::MAX by @​Daksh14 in #​1891

    This allows Canvas grids where the width * height exceeds u16::MAX by
    converting values to usize earlier in several methods.

    Fixes:https://github.com/ratatui/ratatui/issues/1449

  • 09cc9ef (uncategorized) Typo in changelog by @​joshka in #​1857

  • c238aca (uncategorized) padding_right() should set right padding instead of left by @​sxyazi in #​1837

    Fixes https://github.com/ratatui/ratatui/issues/1836

  • c90ba97 (uncategorized) Avoid unnecessary imports in minimal build by @​cgzones in #​1787

    core::ops::Range is only used with the feature scrolling-regions.
    Ensure a minimal cargo check reports no warnings.

  • 416ebdf (uncategorized) Correct clippy errors introduced by rust 1.86.0 update by @​j-g00da in #​1755

    New version of rust (1.86.0) caused CI to fail.

  • 4eac5b2 (uncategorized) Make deprecation notes more helpful by @​joshka in #​1702

    AI coding assistants use the deprecation notes to automatically suggest
    fixes. This commit updates the deprecation notes to push those tools to
    suggest the correct replacement methods and types.

    Specifically, AI tools often suggest using Buffer::get(x, y), because
    of their training data where this was prevalent. When fixing these
    deprecations, they often incorrectly suggest using Buffer::get(x, y)
    instead of Buffer[(x, y)].

  • 35a8642 (uncategorized) Rect::positions() should be empty when width is 0 and height is nonzero by @​jwodder in #​1669

    Fixes #​1666.

  • f5fc819 (uncategorized) Avoid extra line break on whitespace only lines when wrapping paragraphs by @​dotdash in #​1636

    Currently whitespace only lines produces an extra line break when
    trimming is disabled, because both the trimmed as well as the
    non-trimmed line get inserted. Fix this by only inserting the
    non-trimmed one.

  • 2892bdd (uncategorized) Rust 1.83 clippy lints by @​joshka in #​1527

    https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes

  • 36e2d1b (uncategorized) Add feature(doc_cfg) when generating docs by @​joshka in #​1506

  • 4d7704f (uncategorized) Make StatefulWidget and Ref work with unsized State by @​thscharler in #​1505

    StatefulWidget::State and StatefulWidgetRef::State are now ?Sized.

    This allows implementations of the traits to use unsized types for the
    State associated type. This is turn is useful when doing things like
    boxing different stateful widget types with State which implements
    Any, are slices or any other dynamically sized type.

  • 7b87509 (uncategorized) Typo by @​marcoieni in #​1480

Refactor
  • 8d60e96 (examples) Use crossterm event methods by @​joshka in #​1792

    Crossterm 0.29 introduced methods to easily check / extract the event
    type. E.g. as_key_press_event() and is_key_press(). This commit
    updates the examples to use these methods instead of matching on
    the event type. This makes the code cleaner and easier to read.

    Also does a general cleanup of the event handling code in the examples.

  • 07bec55 (no_std) Make usages of std explicit in ratatui-core. by @​ed-2100 in #​1782

    This commit does the following:

    • Adds #[no_std] to lib.rs.
    • Adds extern crate std; to lib.rs.
    • Updates ratatui-core to explicitly use items from std and alloc.
    • Prefers use-ing alloc over std when possible.

    Explanation:

    This allows usages of std in ratatui-core to be clearly pointed out
    and dealt with individually.

    Eventually, when std is to be feature gated, the associated commit
    will be much cleaner.

  • f132fa1 (table) Small readability improvements by @​joshka in #​1510

  • c7c3498 (uncategorized) Use saturating_add in Rect::new by @​pharrison31415 in #​2216

  • 02e53de (uncategorized) Make use of iter::repeat_n() by @​cgzones in #​1788

    Applied via clippy --fix.
    Available since 1.82.0.

  • a195d59 (uncategorized) Move xtask commands to small modules by @​joshka in #​1620

  • 904b0aa (uncategorized) Move symbols to modules by @​joshka in #​1594

  • 7c8573f (uncategorized) Rearrange selection_spacing code by @​raylu in #​1540

  • 217c57c (uncategorized) Modularize backends by @​orhun in #​1508

    Backend code is now moved to ratatui-crossterm, ratatui-termion and
    ratatui-termwiz. This should be backwards compatible with existing code.

  • e461b72 (uncategorized) Move {Stateful,}Widget{,Ref} types into individual files by @​joshka in #​1479

    This is a preparatory refactoring for modularization. No user visible
    changes.

Documentation
Performance
  • 1f41a61 (paragraph) Avoid unnecessary work when rendering by @​alexpasmantier in #​1622

    Improve render times for paragraphs that are scrolled.

    Currently all LineComposers are considered to be state machines which
    means rendering a paragraph with a given Y offset requires computing the
    entire state up to Y before being able to render from Y onwards.

    While this makes sense for Composers such as the WordWrapper (where
    one needs to consider all previous lines to determine where a given line
    will end up), it means it also penalizes Composers which can render a
    given line "statelessely" (such as the LineTruncator) which actually
    end up doing a lot of unnecessary work (and on the critical rendering
    path) when the offset gets high.

  • ba9eed7 (table) Replace while loop with simple min operation by @​EdJoPaTo in #​1747

Styling
  • 345f47e (rect) Use plus operator for offset by @​pharrison31415 in #​2251

    Summary

    Use + operator to move Rect by an Offset as added
    here.

    Includes change to use Offset::new() in place of Offset { ... }

  • ac60de3 (uncategorized) Fix wrapping in doc comment by @​joshka in #​2104

  • 2739391 (uncategorized) Use Module imports_granularity by @​joshka in #​1728

    I was swayed by the arguments about this made by the compiler team In
    rust-lang/compiler-team#750 and decided to
    look at how this organization affects ratatui. I found this reduces the
    number of lines across the codebase by about 350 and makes the imports
    more readable and definitely more greppable as you usually only have
    to read a single line. I've found in the past that maintaining imports
    regularly leads to merge conflicts which have to be resolved by hand
    and this change should reduce the likelihood of that happening.

    Main change is in rustfmt.toml, and the rest is just the result of
    running cargo xtask format.

    While implementing this, cargo machete brings up that the various
    backend crates are unused by the example crates.

    The re-export of each backend crate under ratatui is to make it possible
    for libs that rely on a specific version of ratatui to use the same
    version of the backend crate. Apps in general should use the backend
    crate directly rather than through ratatui as this is less confusing.

    • Removes all usages of `ratatui::{crossterm, termion, termwiz}`` in the
      examples.
    • Adds the backend crate to the dependencies of the examples that use
      the backend crate directly.
Testing
Miscellaneous Tasks
  • abe2f27 (backend) Change From impls to new backend specific IntoBackend and FromBackend traits by @​joshka in #​1464 [breaking]

    Adds two traits IntoCrossterm and FromCrossterm for converting
    between ratatui and crossterm types. This is necessary in order to avoid
    the orphan rule when implementing From for crossterm types once the
    crossterm types are moved to a separate crate.

    Similarly Termwiz and Termwiz gain FromTermion, IntoTermion, FromTermwiz
    and IntoTermwiz traits.

    BREAKING CHANGE:The From and Into impls for backend types are now
    replaced
    with specific backend traits.

    + use ratatui::backend::{FromCrossterm, IntoCrossterm};
    
    let crossterm_color = crossterm::style::Color::Black;
    - let ratatui_color = crossterm_color.into();
    - let ratatui_color = ratatui::style::Color::from(crossterm_color);
    + let ratatui_color = ratatui::style::Color::from_crossterm(crossterm_color);
    - let crossterm_color = ratatui_color.into();
    - let crossterm_color = crossterm::style::Color::from(ratatui_color);
    + let crossterm_color = ratatui_color.into_crossterm();
    
    let crossterm_attribute = crossterm::style::types::Attribute::Bold;
    - let ratatui_modifier = crossterm_attribute.into();
    - let ratatui_modifier = ratatui::style::Modifier::from(crossterm_attribute);
    + let ratatui_modifier = ratatui::style::Modifier::from_crossterm(crossterm_attribute);
    - let crossterm_attribute = ratatui_modifier.into();
    - let crossterm_attribute = crossterm::style::types::Attribute::from(ratatui_modifier);
    + let crossterm_attribute = ratatui_modifier.into_crossterm();
    

    Similar conversions for ContentStyle -> Style and Attributes ->
    Modifier exist for Crossterm,
    and all the Termion and Termwiz types.


  • 0a47ebd (bencher) Update bencher CLI usage by @​epompeii in #​1470

  • b46778d (breaking-changes) Add details to no_std-related breaking changes by @​j-g00da in #​1828

    Some corrections and added details to BREAKING-CHANGES.md.

    I decided to remove:

    • Backend now uses Self::Error for error handling instead of
      std::io::Error
    • Terminal<B> now uses B::Error for error handling instead of
      std::io::Error

    ...as we are still using std::io::Error in built-in backends, so this
    will only be breaking if a third-party backend decides to use a custom
    error other than std::io::Error, which would be a breaking change in
    downstream and not ratatui.

    The exception to that is TestBackend, which uses Infallible, but
    this already has its own breaking changes entry.

  • a0979d6 (build) Remove cargo lint by @​joshka in #​1549

    Duplicate crate lint is too noisy and sensitive to upstream changes

  • 3812f69 (cargo) Update the documentation metadata for crates by @​orhun in #​2170

    also follows the same format for the entries (name -> version ->
    description -> etc. in order)

  • ae43ea7 (cell) Use Option instead of space (" ") for symbol by @​joshka

    This change makes the Cell::symbol field an Option<CompactString>,
    allowing it to represent an empty cell as None instead of an empty
    string. The rationale for this is to later allow the merge symbol
    functionality to act differently based on whether a cell has previously
    held a symbol or not, rather than always merging with an empty string.
    This will help make it possible to merge borders with titles with spaces
    and other symbols, without assuming that an empty string is always
    equivalent to no symbol.

    • Default is now derived as Option::None works correctly.
    • PartialEq and Eq implementations are updated to treat None the same
      as an empty string.
    • merge_symbol against an empty cell will now just set the symbol
      rather than calling MergeStrategy::merge with an empty string.
    • PartialEq, and Hash are manually implemented instead of being
      derived, and are updated to treat None equal to an empty string.
  • 0fbefe9 (ci) Don't fail on cargo-deny advisories by @​joshka in #​2237

    Instead of failing on advisories, run the cargo-deny check, and report
    the failure.

    Uses the cargo-deny-action instead of installing this manually.

    https://github.com/EmbarkStudios/cargo-deny-action/tree/v2?tab=readme-ov-file#recommended-pipeline-if-using-advisories-to-avoid-sudden-breakages
    (bumped to use rust stable, and log level info)

  • 887a636 (ci) Override RUSTUP_TOOLCHAIN for the check step by @​ognis1205 in #​2116

    Summary
    Fixes an issue where the "check" CI jobs for MSRV and stable were
    unintentionally using the stable toolchain from rust-toolchain.toml
    instead of the matrix-specified toolchain.

    Details

    • Added RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }} to the "check" job
      in CI configuration.

    Additional Context

> https://discord.com/channels/1070692720437383208/1072879985762762812/1422345357131780177
>
> -   https://rust-lang.github.io/rustup/overrides.html#overrides
  • 34baaf1 (ci) Override the toolchain for CI runs by @​ognis1205 in #​2106

    Summary

    Fixes an issue where the beta CI jobs were unintentionally using the
    stable
    toolchain from rust-toolchain.toml instead of the matrix-specified
    toolchain.
    This caused clippy to run against the wrong version.

    Details

    • Added RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }} to the CI
      configuration

    Additional Context

> https://discord.com/channels/1070692720437383208/1072879985762762812/1421990770482745415
>
> -   https://rust-lang.github.io/rustup/overrides.html#overrides
  • e48aa9e (ci) Stop publish-alpha from running on forks by @​j-g00da in #​1916

    I can't sleep because every Saturday alpha release fails on my ratatui
    fork. This should fix my insomnia.

  • b3f3c9b (ci) Disable running release-plz on forked repositories by @​orhun in #​1730

    See https://github.com/jdssl/ratatui/pull/1#issuecomment-2739366609

  • eaa4038 (ci) Install pre-built binaries for cargo-rdme by @​orhun in #​1477

    install-action uses cargo-binstall to install the pre-built binaries
    of cargo-rdme (which was released in
    https://github.com/orium/cargo-rdme/releases/tag/v1.4.7).

    This will make the check-readme step faster in CI (now takes only 10
    seconds).

  • e5e2316 (ci) Add check for keeping README.md up-to-date by @​orhun in #​1473

  • 2ef3583 (ci) Replace cargo-make with a custom cargo-xtask by @​joshka in #​1461

    This removes the need for cargo-make and replaces it with a custom xtask
    binary. See https://github.com/matklad/cargo-xtask for info.

    Rearranges the CI workflow to use the new xtask and simplify which
    workflows that run.


  • 98df774 (core) Move core types to ratatui-core by @​joshka in #​1460

    The buffer, layout, style, symbols, text, and the top level of widgets
    modules are moved to ratatui-core. This is the first step in
    modularizing the library so that the core types can be used in other
    projects without the need for the backend / widgets types.

    This helps reduce the need for updating other crates as often due to
    semver changes outside of the core types.


  • 35eba76 (example) Move demo2 to top level folder by @​joshka in #​1524

  • 5f57d35 (examples) Add colors explorer demo app by @​orhun in #​1580

    related #​1512

    Moves the colors examples to apps

  • 5c021bf (examples) Add chart demo app by @​orhun in #​1579

    related #​1512

    Moves the chart example to apps

  • 9721300 (examples) Add canvas demo app by @​orhun in #​1578

    related #​1512

    This moves the canvas example to the apps and adds some interactivity
    via changing the marker by pressing enter.

  • a6a1368 (examples) Add calendar explorer demo app by @​orhun in #​1571

    Related to #​1512

    As discussed, this moves the calendar example from ratatui to app
    examples as an "explorer" example. It also adds interactivity where you
    can press s to toggle between different styles of calendars.


  • 819e92c (examples) Add weather demo app by @​orhun in #​1567

    related to #​1512

  • b5f7e44 (examples) Move async example to apps by @​joshka in #​1503

    Move async example to examples/apps/async as full project.
    Simplify a little by removing the need for the github api token.

  • 17316ec (github) Enable sponsorship button by @​orhun in #​1478

  • d02995f (gitignore) Add .env to .gitignore by @​j-g00da in #​1949

  • b4a71e5 (lint) Add std instead of core/alloc lints to ratatui-widgets by @​j-g00da in #​1763

    Resolves #​1761

  • cef617c (lint) Add std instead of core/alloc lints to ratatui-core by @​j-g00da in #​1759

    Resolves #​1752

  • d3f01eb (lint) Ensure lint config is correct by @​joshka in #​1528

    • Move lints to workspace manifest
    • Add lint config to backend crates
    • Fix one small lint error
  • 9fb0544 (release) Initialize release-plz by @​orhun in #​1550

    See https://github.com/ratatui/ratatui/pull/1550

  • 60a8191 (widgets) Move crossterm to dev-dependencies by @​j-g00da in #​1834

    Crossterm in widgets is used only in tests.

  • 2b7ec5c (widgets) Enable calendar widget as default by @​orhun in #​1521

    We now expect that you disable the default features if you want less
    dependencies

  • 714c658 (workspace) Use ratatui dependency from the workspace by @​orhun in #​2169

    Fix #​2166

  • d201b8e (xtask) Check lints for only library targets by @​orhun in #​1531

    Makes it possible to filter workspace packages by their targets.
    (e.g. when we want to retrieve all the binary targets / examples, etc.)

  • b7ecef0 (uncategorized) Expose crossterm 0.28/0.29 feature flags in Ratatui by @​orhun in #​2270

    In docs we currently say that individual versions of crossterm could be
    enabled like this:

    ratatui = { version = "0.30.0-beta", features = ["crossterm_0_28"] }
    

    However this wasn't actually possible:

    package `x` depends on `ratatui` with feature `crossterm_0_28` but `ratatui` does not have that feature.
    
    failed to select a version for `ratatui` which could resolve this conflict
    

    This PR fixes that by exposing respective feature flags.
    (Tested locally)


  • 297d264 (uncategorized) Update maintainers by @​orhun in #​2122

  • 91fa249 (uncategorized) Remove obsolete doc_auto_cfg feature by @​ognis1205 in #​2103

    The doc_auto_cfg feature was incorporated into the doc_cfg feature
    in https://github.com/rust-lang/rust/pull/138907

    Closes #​2102

  • 46e7c6c (uncategorized) Document rustfmt options by @​joshka in #​2055

  • 719badb (uncategorized) Skip alpha and beta tags in cliff.toml by @​j-g00da in #​2026

    https://github.com/ratatui/ratatui/pull/2025#issuecomment-3135177683

  • 0afb1a9 (uncategorized) Ignore beta and rc tags in cliff.toml by @​j-g00da in #​2025

  • 5ae224b (uncategorized) Prepare for beta release by @​j-g00da in #​2022

  • cfebd68 (uncategorized) Fix typo in CONTRIBUTING.md by @​kdheepak in #​2001

    Removes a hanging opening code block:

    ```suggestion
    
  • 572749f (uncategorized) Update contributing guidelines and add copilot-instructions by @​joshka in #​1998

    See
    https://docs.github.com/en/copilot/how-tos/agents/copilot-code-review/using-copilot-code-review

    These instructions will be used by copilot when it performs automated PR
    reviews, and helps provide guardrails for our standards. Over time we
    might grow these to capture any consistent problems that we start seeing
    when reviewing.


  • 0148b62 (uncategorized) Remove cargo_metadata dep from xtask by @​joshka in #​1993

    Removed due to hard N-2 MSRV requirement, whereas we use a soft N-2
    (only update when necessary). This makes it painful to be able to test
    our actual msrv (as the xtask has to be built with the version that its
    deps support, while still wanting to check the msrv version, so we'd end
    up with 2 versions in the one CI task and this would get annoying to
    check).

    See https://github.com/rust-lang/cargo/issues/15746 for more details.

    Partially implements #​1820 - mainly as a problem solution rather than a
    specific goal to use cargo-hack

  • 9bc5739 (uncategorized) Remove clap-cargo from xtask by @​joshka in #​1992

    Removed to avoid needing to bump our msrv. See
    https://github.com/rust-lang/cargo/issues/15746#issuecomment-3071774343
    for more details.

  • 0e10170 (uncategorized) Change Borders::NONE to a proper const by @​joshka in #​1985

    https://docs.rs/bitflags/latest/bitflags/#zero-bit-flags

    Flags with no bits set should be avoided because they interact
    strangely with

    Flags::contains
    and

    Flags::intersects.
    A zero-bit flag is always contained, but is never intersected. The names
    of zero-bit flags can be parsed, but are never formatted.

    Removing this simplifies the manual Debug impl that previously had to
    check for Borders::NONE and now does not.

  • 8e3bd11 (uncategorized) Add svg logo asset by @​LitoMore in #​1967

    Added a shields.io style svg logo and a nicer version of the original logo.
    The simplified icon will be added and available directly from shields.io via:

  • 92bb9b2 (uncategorized) Remove Title references by @​j-g00da in #​1943

  • d6647db (uncategorized) Remove some allow attributes for fixed clippy bugs by @​joshka in #​1944

  • 3f48bde (uncategorized) Remove OpenSSL license by @​joshka in #​1942

    Only keep licenses in the allow list that are actually used

  • 4c86513 (uncategorized) Remove block::Title by @​joshka in #​1926

    The title alignment is better expressed in the Line as this fits more
    coherently with the rest of the library.

    BREAKING CHANGES:

    • widgets::block is no longer exported
    • widgets::block::Title no longer exists
    • widgets::block::Position is now widgets::TitlePosition
    • Block::title() now accepts Into::<Line> instead of Into<Title>
    • BlockExt is now exported at widgets::BlockExt

    Closes:https://github.com/ratatui/ratatui/issues/738

  • 272f5c0 (uncategorized) Fix new lints by @​joshka in #​1922

  • 770cb7c (uncategorized) Add tests for combining list styles by @​joshka in #​1884

  • dbfb2c3 (uncategorized) Upgrade to Rust Edition 2024 by @​MatrixFrog in #​1863

    https://doc.rust-lang.org/edition-guide/rust-2024/index.html

    Fixes #​1727

  • 7cb35d4 (uncategorized) Update to Rust version 1.85.0 by @​MatrixFrog in #​1860

    This is a small step toward fixing #​1727

  • a07f5be (uncategorized) Move dependency management to workspace by @​joshka in #​1858

    Move all dependency management to the workspace level. This makes it
    easier to manage dependencies across multiple crates in the workspace.

    This also changes the versions of each dependency to track based on the
    semver compatible version of the dependency (e.g. 0.1 instead of 0.1.0
    or 2.9 instead of 2.9.0 to avoid having to regularly update the toml
    files and to communicate that Ratatui will still generally work with
    versions of the dependencies that are not the fully latest version. The
    exact version of the dependencies is still tracked in the Cargo.lock
    file.

    Several dependencies that are fairly stable are changed to track a less
    specific version (e.g. serde 1 instead of 1.0.x).

    The following dependencies are updated to their latest versions:

    • bitflags (2.3 -> 2.9)
    • strum (0.26 -> 0.27)
    • strum_macros (0.26 -> 0.27)
    • all other semver compatible updates
  • 1874b9d (uncategorized) Move time to dev-dependencies by @​j-g00da in #​1835

  • d88cd29 (uncategorized) Add 'const' to functions where possible. by @​MatrixFrog in #​1802

    The Clippy check for this (missing_const_for_fn) is already enabled, but
    catches more cases in upcoming toolchain versions.

    This is part of the work to unblock #​1727

  • bb06889 (uncategorized) Fix io_other_error clippy lints by @​joshka in #​1756

    Pre-emptive fix for new lint to be added in 1.87 (currently in beta).

    https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error

  • 0f80c5e (uncategorized) Use expect() instead of allow() for lint overrides by @​cgzones in #​1786 [breaking]

    BREAKING CHANGE:MSRV is now 1.81

  • fe8577c (uncategorized) Remove paste dependency by @​joshka in #​1713

    The paste crate is no longer maintained. Replaces the usages of this in
    the Stylize declarative macros with hard coded values. These macros are
    internal implementation detail to ratatui and so the changes should have
    no impact on users.

    Fixes:https://github.com/ratatui/ratatui/issues/1712

  • 255e466 (uncategorized) Cargo update - pull in fixed version of ring crate by @​joshka in #​1710

  • f05feac (uncategorized) Sort dependencies in Cargo.toml by @​canac in #​1662

  • 7eab88f (uncategorized) Remove unused deps by @​joshka in #​1661

  • 37a1c6f (uncategorized) Remove some examples by @​orhun in #​1645

  • 6f21319 (uncategorized) Rename examples with clashing names by @​joshka in #​1597

    These will eventually be moved / consolidated elsewhere, but this clears
    the warnings while building for now.

  • 11cbb2b (uncategorized) Use cargo xtask for bacon clippy command by @​joshka in #​1592

  • b544e39 (uncategorized) Use clap instead of argh for demo example by @​joshka in #​1591

  • 9a54198 (uncategorized) Make source files non-executable by @​orhun in #​1577

    find . -type f -not -path './.git/*' -not -name '*.bash' -exec chmod 644 {} +
    

    fixes #​1576

  • 357ae7e (uncategorized) Move terminal types to ratatui-core by @​joshka in #​1530 [breaking]

    • Move Terminal, TerminalOptions, ViewPort, CompletedFrame, Frame to
      ratatui-core crate
    • Move render_widget_ref() and render_stateful_widget_ref() to extension
      trait (FrameExt) due as the Ref types are unstable and kept in the
      main lib instead of -core
    • Fix rustdoc errors / feature config issues

    BREAKING CHANGE:to call Frame::render_widget_ref() or

    Frame::render_stateful_widget_ref() you now need to import the
    FrameExt trait from ratatui::widgets and enable the
    unstable-widget-ref feature.

  • 21e62d8 (uncategorized) Move the demo example to main folder by @​joshka in #​1523

    Add a top level examples folder for more app-ish examples
    Move the demo example into the top level folder.


  • fbf6050 (uncategorized) Prepare alpha modularization release by @​joshka in #​1525

    This is the first modularization -alpha release. It captures the changes
    necessary to manual publish. And ensures all the crates are properly
    setup and to set a baseline for comparison in future release checks etc.

    This does not update / check the git-cliff setup / changelog

    Part of: #​1388

  • e4e95bc (uncategorized) Remove --color always flags from bacon.toml by @​joshka in #​1502

    No longer necessary as of bacon 3.3

  • a41c97b (uncategorized) Move unstable widget refs to ratatui by @​joshka in #​1491 [breaking]

    These are less stable than the non-ref traits as we have not yet
    committed to the exact API. This change moves them to ratatui from
    ratatui-core.

    To facilitate this:

    • implementations of WidgetRef for all internal widgets are removed and
      replaced with implementations of Widget for references to those
      widgets.
    • Widget is now implemented for Option where W: Widget, allowing for
      rendering of optional widgets.
    • The blanket implementation of Widget for WidgetRef is reversed, to be
      a blanket implementation of WidgetRef for all &W where W: Widget.

    BREAKING CHANGE:implementations of WidgetRef no longer have a blanket
    implementation of Widget, so Widgets should generally implement the
    Widget trait on a reference to the widget rather than implementing
    WidgetRef directly. This has the advantage of not requiring unstable
    features to be enabled.

    Part of: https://github.com/ratatui/ratatui/issues/1388

  • e7085e3 (uncategorized) Move widgets into ratatui-widgets crate by @​joshka in #​1474

    All the widgets now live in their own ratatui-widgets crate, but are re-exported in the main ratatui crate.
    This makes it easier to use portions of the ratatui library and is part of the effort to modularize

    Part of: #​1388


  • f1d0a18 (uncategorized) Move ratatui crate into workspace folder by @​joshka in #​1459

    This is the first step towards modularization. Handling the move
    as a separate step rather than combining it should make it easier
    to rebase other PRs when necessary.


  • 55fb2d2 (uncategorized) Update repo links to ratatui instead of ratatui-org by @​joshka in #​1458

Continuous Integration
Reverted Commits
New Contributors

Full Changelog: https://github.com/ratatui/ratatui/compare/v0.29.0...v0.30.0

serde-rs/json (serde_json)

v1.0.149

Compare Source

  • Align arbitrary_precision number strings with zmij's formatting (#​1306, thanks @​b41sh)

v1.0.148

Compare Source

  • Update zmij dependency to 1.0

v1.0.147

Compare Source

  • Switch float-to-string algorithm from Ryū to Żmij for better f32 and f64 serialization performance (#​1304)

v1.0.146

Compare Source

v1.0.145

Compare Source

  • Raise serde version requirement to >=1.0.220

v1.0.144

Compare Source

  • Switch serde dependency to serde_core (#​1285)

v1.0.143

Compare Source

v1.0.142

Compare Source

v1.0.141

Compare Source

RustCrypto/hashes (sha2)

v0.10.9

Compare Source

launchbadge/sqlx (sqlx)

v0.8.6

Compare Source

9 pull requests were merged this release cycle.

Added
Changed
Fixed

v0.8.5

Hotfix release to address two new issues:

  • [#​3823]: sqlx-cli@0.8.4 broke .env default resolution mechanism
  • [#​3825]: sqlx@0.8.4 broke test fixture setup

The 0.8.4 release will be yanked as of publishing this one.

Added
  • In release PR: sqlx-cli now accepts --no-dotenv in subcommand arguments.
  • In release PR: added functionality tests for sqlx-cli to CI.
  • In release PR: test #[sqlx::test] twice in CI to cover cleanup.
Fixed
  • In release PR: sqlx-cli correctly reads .env files by default again.
  • In release PR: fix bugs in MySQL implementation of #[sqlx::test].

v0.8.4

50 pull requests were merged this release cycle.

Added
Changed
Fixed
Stebalien/tempfile (tempfile)

v3.24.0

Compare Source

  • Actually support WASIp2 without the nightly feature. This library is now feature complete on WASIp2 without any additional feature flags.
  • Exclude CI scripts from the published crate.

v3.23.0

Compare Source

  • Remove need for the "nightly" feature to compile with "wasip2".

v3.22.0

Compare Source

  • Updated windows-sys requirement to allow version 0.61.x
  • Remove unstable-windows-keep-open-tempfile feature.

v3.21.0

Compare Source

  • Updated windows-sys requirement to allow version 0.60.x

v3.20.0

Compare Source

This release mostly unifies the behavior/capabilities around "keeping" temporary files:

  • Rename Builder::keep(bool) (via deprecation) to Builder::disable_cleanup(bool) to make it clear that behaves differently from NamedTempFile::keep(). The former disables automatic cleanup while the latter consumes the NamedTempFile object entirely and unsets the "temporary file" attribute (on Windows).
  • Rename TempDir::into_path (via deprecation) to TempDir::keep to mirror NamedTempFile::keep.
  • Add TempDir::disable_cleanup, NamedTempFile::disable_cleanup, and TempPath::disable_cleanup making it possible to disable automatic cleanup in-place after creating a temporary file/directory (equivalent to calling Builder::disable_cleanup before creating the file/directory).

Additionally, it adds a few spooled temporary file features:
git lo

  • Add SpooledTempFile::into_file for turning a SpooledTempFile into a regular unnamed temporary file, writing it to the backing storage ("rolling" it) if it was still stored in-memory.
  • Add spooled_tempfile_in and SpooledTempFile::new_in methods for creating spooled temporary files in a specific directory. This makes it possible to choose the backing device for your spooled temporary file which is rather important on Linux where the default temporary directory is likely backed by memory (defeating the entire point of having a spooled temporary file).

Finally, this release improves documentation, especially the top-level documentation explaining which temporary file type to use.

BREAKING for those with deny(warnings):

  • Builder::keep deprecated in favor of Builder::disable_cleanup.
  • TempDir::into_path is deprecated in favor of TempDir::keep.

v3.19.1

Compare Source

  • Don't unlink temporary files immediately on Windows (fixes #​339). Unfortunately, this seemed to corrupt the file object (possibly a Windows kernel bug) in rare cases and isn't strictly speaking necessary.

v3.19.0

Compare Source

  • Remove direct dependency on cfg-if. It's still in the tree, but we didn't really need to use it in this crate.
  • Add an unstable feature (unstable-windows-keep-open-tempfile) to test a potential fix to #​339.

v3.18.0

Compare Source

  • Update rustix to 1.0.0.
  • Make NamedTempFile::persist_noclobber atomic on Apple operating systems. It's now atomic on MacOS, Windows, and Linux (depending on the OS version and filesystem used).
tokio-rs/tokio (tokio)

v1.49.0: Tokio v1.49.0

Compare Source

1.49.0 (January 3rd, 2026)

Added
  • net: add support for TCLASS option on IPv6 (#​7781)
  • runtime: stabilize runtime::id::Id (#​7125)
  • task: implement Extend for JoinSet (#​7195)
  • task: stabilize the LocalSet::id() (#​7776)
Changed
  • net: deprecate {TcpStream,TcpSocket}::set_linger (#​7752)
Fixed
  • macros: fix the hygiene issue of join! and try_join! (#​7766)
  • runtime: revert "replace manual vtable definitions with Wake" (#​7699)
  • sync: return TryRecvError::Disconnected from Receiver::try_recv after Receiver::close (#​7686)
  • task: remove unnecessary trait bounds on the Debug implementation (#​7720)
Unstable
  • fs: handle EINTR in fs::write for io-uring (#​7786)
  • fs: support io-uring with tokio::fs::read (#​7696)
  • runtime: disable io-uring on EPERM (#​7724)
  • time: add alternative timer for better multicore scalability (#​7467)
Documented
  • docs: fix a typos in bounded.rs and park.rs (#​7817)
  • io: add SyncIoBridge cross-references to copy and copy_buf (#​7798)
  • io: doc that AsyncWrite does not inherit from std::io::Write (#​7705)
  • metrics: clarify that num_alive_tasks is not strongly consistent (#​7614)
  • net: clarify the cancellation safety of the TcpStream::peek (#​7305)
  • net: clarify the drop behavior of unix::OwnedWriteHalf (#​7742)
  • net: clarify the platform-dependent backlog in TcpSocket docs (#​7738)
  • runtime: mention LocalRuntime in new_current_thread docs (#​7820)
  • sync: add missing period to mpsc::Sender::try_send docs (#​7721)
  • sync: clarify the cancellation safety of oneshot::Receiver (#​7780)
  • sync: improve the docs for the errors of mpsc (#​7722)
  • task: add example for spawn_local usage on local runtime (#​7689)

v1.48.0: Tokio v1.48.0

Compare Source

1.48.0 (October 14th, 2025)

The MSRV is increased to 1.71.

Added
  • fs: add File::max_buf_size (#​7594)
  • io: export Chain of AsyncReadExt::chain (#​7599)
  • net: add SocketAddr::as_abstract_name (#​7491)
  • net: add TcpStream::quickack and TcpStream::set_quickack (#​7490)
  • net: implement AsRef<Self> for TcpStream and UnixStream (#​7573)
  • task: add LocalKey::try_get (#​7666)
  • task: implement Ord for task::Id (#​7530)
Changed
  • deps: bump windows-sys to version 0.61 (#​7645)
  • fs: preserve max_buf_size when cloning a File (#​7593)
  • macros: suppress clippy::unwrap_in_result in #[tokio::main] (#​7651)
  • net: remove PollEvented noise from Debug formats (#​7675)
  • process: upgrade Command::spawn_with to use FnOnce (#​7511)
  • sync: remove inner mutex in SetOnce (#​7554)
  • sync: use UnsafeCell::get_mut in Mutex::get_mut and RwLock::get_mut (#​7569)
  • time: reduce the generated code size of Timeout<T>::poll (#​7535)
Fixed
  • macros: fix hygiene issue in join! and try_join! (#​7638)
  • net: fix copy/paste errors in udp peek methods (#​7604)
  • process: fix error when runtime is shut down on nightly-2025-10-12 (#​7672)
  • runtime: use release ordering in wake_by_ref() even if already woken (#​7622)
  • sync: close the broadcast::Sender in broadcast::Sender::new() (#​7629)
  • sync: fix implementation of unused RwLock::try_* methods (#​7587)
Unstable
  • tokio: use cargo features instead of --cfg flags for taskdump and io_uring (#​7655, #​7621)
  • fs: support io_uring in fs::write (#​7567)
  • fs: support io_uring with File::open() (#​7617)
  • fs: support io_uring with OpenOptions (#​7321)
  • macros: add local runtime flavor (#​7375, #​7597)
Documented
  • io: clarify the zero capacity case of AsyncRead::poll_read (#​7580)
  • io: fix typos in the docs of AsyncFd readiness guards (#​7583)
  • net: clarify socket gets closed on drop (#​7526)
  • net: clarify the behavior of UCred::pid() on Cygwin (#​7611)
  • net: clarify the supported platform of set_reuseport() and reuseport() (#​7628)
  • net: qualify that SO_REUSEADDR is only set on Unix (#​7533)
  • runtime: add guide for choosing between runtime types (#​7635)
  • runtime: clarify the behavior of Handle::block_on (#​7665)
  • runtime: clarify the edge case of Builder::global_queue_interval() (#​7605)
  • sync: clarify bounded channel panic behavior (#​7641)
  • sync: clarify the behavior of tokio::sync::watch::Receiver (#​7584)
  • sync: document cancel safety on SetOnce::wait (#​7506)
  • sync: fix the docs of parking_lot feature flag (#​7663)
  • sync: improve the docs of UnboundedSender::send (#​7661)
  • sync: improve the docs of sync::watch (#​7601)
  • sync: reword allocation failure paragraph in broadcast docs (#​7595)
  • task: clarify the behavior of several spawn_local methods (#​7669)
  • task: clarify the task ID reuse guarantees (#​7577)
  • task: improve the example of poll_proceed (#​7586)

v1.47.3

Compare Source

v1.47.2

Compare Source

v1.47.1: Tokio v1.47.1

Compare Source

1.47.1 (August 1st, 2025)

Fixed
  • process: fix panic from spurious pidfd wakeup (#​7494)
  • sync: fix broken link of Python asyncio.Event in SetOnce docs (#​7485)

v1.47.0: Tokio v1.47.0

Compare Source

1.47.0 (July 25th, 2025)

This release adds poll_proceed and cooperative to the coop module for
cooperative scheduling, adds SetOnce to the sync module which provides
similar functionality to [std::sync::OnceLock], and adds a new method
sync::Notify::notified_owned() which returns an OwnedNotified without
a lifetime parameter.

Added

  • coop: add cooperative and poll_proceed (#​7405)
  • sync: add SetOnce (#​7418)
  • sync: add sync::Notify::notified_owned() (#​7465)

Changed

  • deps: upgrade windows-sys 0.52 → 0.59 ([#​7117])
  • deps: update to socket2 v0.6 ([#​7443])
  • sync: improve AtomicWaker::wake performance (#​7450)

Documented

  • metrics: fix listed feature requirements for some metrics (#​7449)
  • runtime: improve safety comments of Readiness<'_> (#​7415)

v1.46.1: Tokio v1.46.1

Compare Source

1.46.1 (July 4th, 2025)

This release fixes incorrect spawn locations in runtime task hooks for tasks spawned using tokio::spawn rather than Runtime::spawn. This issue only effected the spawn location in TaskMeta::spawned_at, and did not effect task locations in Tracing events.

Unstable

  • runtime: add TaskMeta::spawn_location tracking where a task was spawned (#​7440)

v1.46.0: Tokio v1.46.0

Compare Source

1.46.0 (July 2nd, 2025)

Fixed
  • net: fixed TcpStream::shutdown incorrectly returning an error on macOS (#​7290)

Added

  • sync: mpsc::OwnedPermit::{same_channel, same_channel_as_sender} methods (#​7389)
  • macros: biased option for join! and try_join!, similar to select! (#​7307)
  • net: support for cygwin (#​7393)
  • net: support pope::OpenOptions::read_write on Android (#​7426)
  • net: add Clone implementation for net::unix::SocketAddr (#​7422)

Changed

  • runtime: eliminate unnecessary lfence while operating on queue::Local<T> (#​7340)
  • task: disallow blocking in LocalSet::{poll,drop} (#​7372)

Unstable

  • runtime: add TaskMeta::spawn_location tracking where a task was spawned (#​7417)
  • runtime: removed borrow from LocalOptions parameter to runtime::Builder::build_local (#​7346)

Documented

  • io: clarify behavior of seeking when start_seek is not used (#​7366)
  • io: document cancellation safety of AsyncWriteExt::flush (#​7364)
  • net: fix docs for recv_buffer_size method (#​7336)
  • net: fix broken link of RawFd in TcpSocket docs (#​7416)
  • net: update AsRawFd doc link to current Rust stdlib location (#​7429)
  • readme: fix double period in reactor description (#​7363)
  • runtime: add doc note that on_*_task_poll is unstable (#​7311)
  • sync: update broadcast docs on allocation failure (#​7352)
  • time: add a missing panic scenario of time::advance (#​7394)
toml-rs/toml (toml)

v0.9.11

Compare Source

v0.9.10

Compare Source

v0.9.9

Compare Source

v0.9.8

Compare Source

v0.9.7

Compare Source

v0.9.6

Compare Source

v0.9.5

Compare Source

v0.9.4

Compare Source

v0.9.3

Compare Source

v0.9.2

Compare Source

v0.9.1

Compare Source

v0.9.0

Compare Source

v0.8.23

Compare Source

v0.8.22

Compare Source

v0.8.21

Compare Source

tower-rs/tower-http (tower-http)

v0.6.8

Compare Source

Fixed

  • Disable multiple_members in Gzip decoder, since HTTP context only uses one
    member. (#​621)

What's Changed

New Contributors

Full Changelog: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.7...tower-http-0.6.8

v0.6.7

Compare Source

Added

  • TimeoutLayer::with_status_code(status) to define the status code returned
    when timeout is reached. (#​599)

Deprecated

  • auth::require_authorization is too basic for real-world. (#​591)
  • TimeoutLayer::new() should be replaced with
    TimeoutLayer::with_status_code(). (Previously was
    StatusCode::REQUEST_TIMEOUT) (#​599)

Fixed

  • on_eos is now called even for successful responses. (#​580)
  • ServeDir: call fallback when filename is invalid (#​586)
  • decompression will not fail when body is empty (#​618)

New Contributors

Full Changelog: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.6...tower-http-0.6.7

v0.6.6

Compare Source

Fixed

  • compression: fix panic when looking in vary header (#​578)

New Contributors

Full Changelog: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.5...tower-http-0.6.6

v0.6.5

Compare Source

Added

  • normalize_path: add append_trailing_slash() mode (#​547)

Fixed

  • redirect: remove payload headers if redirect changes method to GET (#​575)
  • compression: avoid setting vary: accept-encoding if already set (#​572)

New Contributors

Full Changelog: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.4...tower-http-0.6.5

v0.6.4: tower-http 0.6.4

Compare Source

Added

  • decompression: Support HTTP responses containing multiple ZSTD frames (#​548)
  • The ServiceExt trait for chaining layers onto an arbitrary http service just
    like ServiceBuilderExt allows for ServiceBuilder (#​563)

Fixed

  • Remove unnecessary trait bounds on S::Error for Service impls of
    RequestBodyTimeout<S> and ResponseBodyTimeout<S> (#​533)
  • compression: Respect is_end_stream (#​535)
  • Fix a rare panic in fs::ServeDir (#​553)
  • Fix invalid content-lenght of 1 in response to range requests to empty
    files (#​556)
  • In AsyncRequireAuthorization, use the original inner service after it is
    ready, instead of using a clone (#​561)

v0.6.3: tower-http 0.6.3

Compare Source

This release was yanked because its definition of ServiceExt was quite unhelpful, in a way that's very unlikely that anybody would start depending on within the small timeframe before this was yanked, but that was technically breaking to change.

uuid-rs/uuid (uuid)

v1.19.0

Compare Source

What's Changed

Full Changelog: https://github.com/uuid-rs/uuid/compare/v1.18.1...v1.19.0

v1.18.1

Compare Source

What's Changed

Full Changelog: https://github.com/uuid-rs/uuid/compare/v1.18.0...v1.18.1

v1.18.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/uuid-rs/uuid/compare/v1.17.0...v1.18.0

v1.17.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/uuid-rs/uuid/compare/v1.16.0...v1.17.0

v1.16.0

Compare Source

What's Changed

New Contributors

Full Changelog: https://github.com/uuid-rs/uuid/compare/v1.15.1...v1.16.0


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Enabled.

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.


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

This PR has been generated by Renovate Bot.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [anyhow](https://github.com/dtolnay/anyhow) | workspace.dependencies | patch | `1.0.97` -> `1.0.100` | | [clap](https://github.com/clap-rs/clap) | workspace.dependencies | patch | `4.5.31` -> `4.5.54` | | [crossterm](https://github.com/crossterm-rs/crossterm) | dependencies | minor | `0.28.0` -> `0.29.0` | | [human-panic](https://github.com/rust-cli/human-panic) | dependencies | patch | `2.0.2` -> `2.0.6` | | [ratatui](https://ratatui.rs) ([source](https://github.com/ratatui/ratatui)) | dependencies | minor | `0.29.0` -> `0.30.0` | | [serde_json](https://github.com/serde-rs/json) | dependencies | patch | `1.0.140` -> `1.0.149` | | [serde_json](https://github.com/serde-rs/json) | workspace.dependencies | patch | `1.0.140` -> `1.0.149` | | [sha2](https://github.com/RustCrypto/hashes) | workspace.dependencies | patch | `0.10.8` -> `0.10.9` | | [sqlx](https://github.com/launchbadge/sqlx) | dependencies | patch | `0.8.3` -> `0.8.6` | | [tempfile](https://stebalien.com/projects/tempfile-rs/) ([source](https://github.com/Stebalien/tempfile)) | dev-dependencies | minor | `3.17.1` -> `3.24.0` | | [tokio](https://tokio.rs) ([source](https://github.com/tokio-rs/tokio)) | workspace.dependencies | minor | `1.45.1` -> `1.49.0` | | [toml](https://github.com/toml-rs/toml) | workspace.dependencies | minor | `0.8.14` -> `0.9.0` | | [tower-http](https://github.com/tower-rs/tower-http) | dependencies | patch | `0.6.2` -> `0.6.8` | | [uuid](https://github.com/uuid-rs/uuid) | dependencies | minor | `1.15.1` -> `1.19.0` | | [uuid](https://github.com/uuid-rs/uuid) | workspace.dependencies | minor | `1.15.1` -> `1.19.0` | --- ### Release Notes <details> <summary>dtolnay/anyhow (anyhow)</summary> ### [`v1.0.100`](https://github.com/dtolnay/anyhow/releases/tag/1.0.100) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.99...1.0.100) - Teach clippy to lint formatting arguments in `bail!`, `ensure!`, `anyhow!` ([#&#8203;426](https://github.com/dtolnay/anyhow/issues/426)) ### [`v1.0.99`](https://github.com/dtolnay/anyhow/releases/tag/1.0.99) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.98...1.0.99) - Allow build-script cleanup failure with NFSv3 output directory to be non-fatal ([#&#8203;420](https://github.com/dtolnay/anyhow/issues/420)) ### [`v1.0.98`](https://github.com/dtolnay/anyhow/releases/tag/1.0.98) [Compare Source](https://github.com/dtolnay/anyhow/compare/1.0.97...1.0.98) - Add [`self.into_boxed_dyn_error()`](https://docs.rs/anyhow/1/anyhow/struct.Error.html#method.into_boxed_dyn_error) and [`self.reallocate_into_boxed_dyn_error_without_backtrace()`](https://docs.rs/anyhow/1/anyhow/struct.Error.html#method.reallocate_into_boxed_dyn_error_without_backtrace) methods for anyhow::Error ([#&#8203;415](https://github.com/dtolnay/anyhow/issues/415)) </details> <details> <summary>clap-rs/clap (clap)</summary> ### [`v4.5.54`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4554---2026-01-02) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.53...v4.5.54) ##### Fixes - *(help)* Move `[default]` to its own paragraph when `PossibleValue::help` is present in `--help` ### [`v4.5.53`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4553---2025-11-19) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.52...v4.5.53) ##### Features - Add `default_values_if`, `default_values_ifs` ### [`v4.5.52`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4552---2025-11-17) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.51...v4.5.52) ##### Fixes - Don't panic when `args_conflicts_with_subcommands` conflicts with an `ArgGroup` ### [`v4.5.51`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4551---2025-10-29) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.50...v4.5.51) ##### Fixes - *(help)* Correctly calculate padding for short flags that take a value - *(help)* Don't panic on short flags using `ArgAction::Count` ### [`v4.5.50`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4550---2025-10-20) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.49...v4.5.50) ##### Features - Accept `Cow` where `String` and `&str` are accepted ### [`v4.5.49`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4549---2025-10-13) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.48...v4.5.49) ##### Fixes - *(help)* Correctly wrap when ANSI escape codes are present ### [`v4.5.48`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4548---2025-09-19) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.47...v4.5.48) ##### Documentation - Add a new CLI Concepts document as another way of framing clap - Expand the `typed_derive` cookbook entry ### [`v4.5.47`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4547---2025-09-02) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.46...v4.5.47) ##### Features - Added `impl FromArgMatches for ()` - Added `impl Args for ()` - Added `impl Subcommand for ()` - Added `impl FromArgMatches for Infallible` - Added `impl Subcommand for Infallible` ##### Fixes - *(derive)* Update runtime error text to match `clap` ### [`v4.5.46`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4546---2025-08-26) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.45...v4.5.46) ##### Features - Expose `StyledStr::push_str` ### [`v4.5.45`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4545---2025-08-12) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.44...v4.5.45) ##### Fixes - *(unstable-v5)* `ValueEnum` variants now use the full doc comment, not summary, for `PossibleValue::help` ### [`v4.5.44`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4544---2025-08-11) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.43...v4.5.44) ##### Features - Add `Command::mut_subcommands` ### [`v4.5.43`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4543---2025-08-06) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.42...v4.5.43) ##### Fixes - *(help)* In long help, list Possible Values before defaults, rather than after, for a more consistent look ### [`v4.5.42`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4542---2025-07-30) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.41...v4.5.42) ##### Fixes - Include subcommand visible long aliases in `--help` ### [`v4.5.41`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4541---2025-07-09) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.40...v4.5.41) ##### Features - Add `Styles::context` and `Styles::context_value` to customize the styling of `[default: value]` like notes in the `--help` ### [`v4.5.40`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4540---2025-06-09) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.39...v4.5.40) ##### Features - Support quoted ids in `arg!()` macro (e.g. `arg!("check-config": ...)`) ### [`v4.5.39`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4539---2025-05-27) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.38...v4.5.39) ##### Fixes - *(help)* Show short flag aliases before long - *(help)* Merge the short and long flag alias lists ### [`v4.5.38`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4538---2025-05-11) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.37...v4.5.38) ##### Fixes - *(help)* When showing aliases, include leading `--` or `-` ### [`v4.5.37`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4537---2025-04-18) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.36...v4.5.37) ##### Features - Added `ArgMatches::try_clear_id()` ### [`v4.5.36`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4536---2025-04-11) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.35...v4.5.36) ##### Fixes - *(help)* Revert 4.5.35's "Don't leave space for shorts if there are none" for now ### [`v4.5.35`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4535---2025-04-01) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.34...v4.5.35) ##### Fixes - *(help)* Align positionals and flags when put in the same `help_heading` - *(help)* Don't leave space for shorts if there are none ### [`v4.5.34`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4534---2025-03-27) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.33...v4.5.34) ##### Fixes - *(help)* Don't add extra blank lines with `flatten_help(true)` and subcommands without arguments ### [`v4.5.33`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4533---2025-03-26) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.32...v4.5.33) ##### Fixes - *(error)* When showing the usage of a suggestion for an unknown argument, don't show the group ### [`v4.5.32`](https://github.com/clap-rs/clap/blob/HEAD/CHANGELOG.md#4532---2025-03-10) [Compare Source](https://github.com/clap-rs/clap/compare/v4.5.31...v4.5.32) ##### Features - Add `Error::remove` ##### Documentation - *(cookbook)* Switch from `humantime` to `jiff` - *(tutorial)* Better cover required vs optional ##### Internal - Update `pulldown-cmark` </details> <details> <summary>rust-cli/human-panic (human-panic)</summary> ### [`v2.0.6`](https://github.com/rust-cli/human-panic/blob/HEAD/CHANGELOG.md#206---2025-12-29) [Compare Source](https://github.com/rust-cli/human-panic/compare/v2.0.5...v2.0.6) ##### Features - Added `Metadata::repository` as a fallback for `Metadata::homepage` ### [`v2.0.5`](https://github.com/rust-cli/human-panic/blob/HEAD/CHANGELOG.md#205---2025-12-26) [Compare Source](https://github.com/rust-cli/human-panic/compare/v2.0.4...v2.0.5) ##### Performance - Improve build times on some platforms by changing from `os_info` to `sysinfo` ### [`v2.0.4`](https://github.com/rust-cli/human-panic/blob/HEAD/CHANGELOG.md#204---2025-10-28) [Compare Source](https://github.com/rust-cli/human-panic/compare/v2.0.3...v2.0.4) ### [`v2.0.3`](https://github.com/rust-cli/human-panic/blob/HEAD/CHANGELOG.md#203---2025-07-08) [Compare Source](https://github.com/rust-cli/human-panic/compare/v2.0.2...v2.0.3) ##### Internal - Update toml </details> <details> <summary>ratatui/ratatui (ratatui)</summary> ### [`v0.30.0`](https://github.com/ratatui/ratatui/blob/HEAD/CHANGELOG.md#v0300---2025-12-26) [Compare Source](https://github.com/ratatui/ratatui/compare/v0.29.0...ratatui-v0.30.0) > *"Rats don't just survive; they discover; they create. ... I mean, just look at what they do with > the terminal!" – Remy & Orhun* We are excited to announce the biggest release of `ratatui` so far - a Rust library that's all about cooking up TUIs 👨‍🍳🐀 🌠 Added "no_std" support for embedded targets, modularized architecture, major widget & layout upgrades! ✨ **Release highlights**: <https://ratatui.rs/highlights/v030/> ⚠️ List of breaking changes can be found [here](https://github.com/ratatui/ratatui/blob/main/BREAKING-CHANGES.md). ##### Features - [90a77aa](https://github.com/ratatui/ratatui/commit/90a77aaf8b2bcb32a32ebd2d1a0f0be0d3b14fe1) *(direction)* Add `Direction::perpendicular(self)` by [@&#8203;b-guild](https://github.com/b-guild) in [#&#8203;2197](https://github.com/ratatui/ratatui/pull/2197) - [56d5e05](https://github.com/ratatui/ratatui/commit/56d5e057625378f1bdf732dabb57208453fb84d6) *(bar)* Update label and text_value to accept Into<> by [@&#8203;Emivvvvv](https://github.com/Emivvvvv) in [#&#8203;1471](https://github.com/ratatui/ratatui/pull/1471) \[**breaking**] > BREAKING CHANGE:label and text_value now accept `Into<>` types, which > breaks type inference. > > ```diff > - Bar::default().label("foo".into()); > + Bar::default().label("foo"); > ``` > > ```diff > - Bar::default().text_value("bar".into()); > + Bar::default().text_value("bar"); > ``` - [b76ad3b](https://github.com/ratatui/ratatui/commit/b76ad3b02ea1c3381b6434c40e620f28d642948e) *(bar)* Impl Styled for Bar by [@&#8203;Emivvvvv](https://github.com/Emivvvvv) in [#&#8203;1476](https://github.com/ratatui/ratatui/pull/1476) > Related:https://github.com/ratatui/ratatui/issues/683 - [e15fefa](https://github.com/ratatui/ratatui/commit/e15fefa922f9519fa789ffecea8e55d887701acf) *(barchar)* Add BarChart::grouped constructor by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1513](https://github.com/ratatui/ratatui/pull/1513) > Add a new constructor to the `BarChart` widget that allows creating a > grouped barchart with multiple groups of bars. > > Also add a new constructor to the `BarGroup` widget that allows creating > a group of bars with a label. - [369b18e](https://github.com/ratatui/ratatui/commit/369b18eef2e4220147e7c7264ad7f8e023a1d2dd) *(barchart)* Reduce barchart creation verbosity by [@&#8203;Emivvvvv](https://github.com/Emivvvvv) in [#&#8203;1453](https://github.com/ratatui/ratatui/pull/1453) > Adds constructor methods for BarChart, BarGroup, and Bar - [1dc18bf](https://github.com/ratatui/ratatui/commit/1dc18bf3cf56a6db4c9f7211bffc0cb7f8b587d0) *(calendar)* Add width and height functions by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2198](https://github.com/ratatui/ratatui/pull/2198) > Fixes https://github.com/ratatui/ratatui/issues/2016 > > *** - [f18bcbf](https://github.com/ratatui/ratatui/commit/f18bcbf06b8da365d839e71e6543a3bea2a70fa4) *(canvas)* Add quadrant, sextant and octant markers by [@&#8203;sbarral](https://github.com/sbarral) in [#&#8203;2235](https://github.com/ratatui/ratatui/pull/2235) \[**breaking**] > The octant marker is an alternative to the Braille marker with the same > resolution, but offering densely packed, regular pseudo-pixels, without > visible bands between rows and columns. > > Quadrant and Sextants are also added to support 2x2 and 2x3. > > Sextant and Octant unicode characters that are less widely supported at > the moment, which is why `Braille` was left as the default. > > BREAKING CHANGE:addition of new variants to `Marker` and removal of > no longer used constants in `ratatui::symbols::braille`. - [26b05de](https://github.com/ratatui/ratatui/commit/26b05dee5954893cac60547b9bd8ae445d09690b) *(chart)* Render Braille over Blocks in Charts and Canvas by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;2165](https://github.com/ratatui/ratatui/pull/2165) > This makes it possible to stack charts, and write text over block symbols in > Charts and Canvas while still showing the block symbols behind the text. - [bf84c62](https://github.com/ratatui/ratatui/commit/bf84c6229bad99366c0b1305171aebaf4b957adb) *(core)* Add a `has_modifier()` method to `Style` by [@&#8203;sxyazi](https://github.com/sxyazi) in [#&#8203;2267](https://github.com/ratatui/ratatui/pull/2267) > Resolves https://github.com/ratatui/ratatui/issues/2264 - [2d713d7](https://github.com/ratatui/ratatui/commit/2d713d723d40a05fc09439f3d77fbca8cbbcc51a) *(crossterm)* Allow multiple crossterm versions by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1841](https://github.com/ratatui/ratatui/pull/1841) > This commit introduces feature flags to make it possible for widget > library authors to depend on a specific version of crossterm without > causing version conflicts. This should make it easier for libraries and > apps to update crossterm versions more easily. > > The available feature flags are `crossterm_0_28` and `crossterm_0_29`. > By default, the latest version is enabled. If a multiple features are > enabled we choose the latest version. We will in general support at > least the last two major (0.x) versions of crossterm, and will only > remove versions in a major version bump. - [d99984f](https://github.com/ratatui/ratatui/commit/d99984f1e9143243cfbdd818ac17853300de5645) *(layout)* Add `Flex::SpaceEvenly` by [@&#8203;kdheepak](https://github.com/kdheepak) in [#&#8203;1952](https://github.com/ratatui/ratatui/pull/1952) \[**breaking**] > Resolves https://github.com/ratatui/ratatui/issues/1951 > > BREAKING CHANGE:Old `Flex::SpaceAround` behavior is available by using > > `Flex::SpaceEvenly` and new > > `Flex::SpaceAround` now distributes space evenly around each element > except the middle spacers > are twice the size of first and last elements > > With this change, the following variants of `Flex` are supported: > > - `Flex::Start`: Aligns items to the start; excess space appears at the > end. > - `Flex::End`: Aligns items to the end; excess space appears at the > start. > - `Flex::Center`: Centers items with equal space on both sides. > - `Flex::SpaceAround` (**new**): Distributes space *around* items; space > between items is *twice* the edge spacing. > - `Flex::SpaceBetween`: Distributes space *evenly between* items except > no space at the edges. > - `Flex::SpaceEvenly` (**previously `Flex::SpaceAround`**): Distributes > space *evenly between* items and edges. > - `Flex::Legacy`: Preserves legacy behavior, placing all excess space at > the end. > > This aligns behavior of `Flex` with CSS flexbox more closely. > > The following is a screenshot in action: > > \<img width="1090" alt="image" > > src="https://github.com/user-attachments/assets/2c7cd797-27bd-4242-a824-4565d369227b" > /> > > *** - [9275d34](https://github.com/ratatui/ratatui/commit/9275d3421c088174bcf9de0832340bcbea76367a) *(layout)* Add Offset::new() constructor by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1547](https://github.com/ratatui/ratatui/pull/1547) - [7ad9c29](https://github.com/ratatui/ratatui/commit/7ad9c29eac6f70cab270dfbd84dc66c05f1e1307) *(linegauge)* Customized symbols by [@&#8203;sectore](https://github.com/sectore) in [#&#8203;1601](https://github.com/ratatui/ratatui/pull/1601) > With this PR any symbol (`&str`) can be used to render `filled` and > `unfilled` parts of `LineGauge` now. Before that change, only > [`symbols::line::Set`](https://docs.rs/ratatui/latest/ratatui/symbols/line/struct.Set.html) > was accepted. > > Note:New methods are introduced to define those symbols: > `filled_symbol` and `unfilled_symbol`. The method > [`line_set`](https://docs.rs/ratatui/latest/ratatui/widgets/struct.LineGauge.html#method.line_set) > is still there, but marked as `deprecated`. > > ![line_gauge](https://github.com/user-attachments/assets/cae308b8-151b-461d-8af6-9a20012adf2f) - [92a19cb](https://github.com/ratatui/ratatui/commit/92a19cb6040dfced50ba384891ab0063a22b445d) *(list)* Highlight symbol styling by [@&#8203;airblast-dev](https://github.com/airblast-dev) in [#&#8203;1595](https://github.com/ratatui/ratatui/pull/1595) \[**breaking**] > Allow styling for `List`'s highlight symbol > > This change makes it so anything that implements `Into<Line>` can be > used as a highlight symbol. > > BREAKING CHANGE:`List::highlight_symbol` can no longer be used in const > context > > BREAKING CHANGE:`List::highlight_symbol` accepted `&str`. Conversion > methods that rely on type inference will need to be rewritten as the > compiler cannot infer the type. > > closes:https://github.com/ratatui/ratatui/issues/1443 > > *** - [e89a526](https://github.com/ratatui/ratatui/commit/e89a526aabc7990ac54e90ca9f9e9a85c67a130c) *(no_std)* Portable-atomic integration for targets with no atomic types by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;2076](https://github.com/ratatui/ratatui/pull/2076) > Improves compatibility with no-std targets that don't support atomic > types. > > We support three different scenarios depending on the target: > > 1. Terminal applications and other std targets (e.g. espidf): > > - `std` enabled, `portable-atomic` disabled > > 2. Embedded targets with atomic types, bare metal x86, etc.: > > - `std` disabled `portable-atomic` disabled > > 3. Embedded targets without atomic types (e.g. single-core MCUs): > > - `std` disabled, `portable-atomic` enabled > > Turning on `portable-atomic` together with `std` will fall back to `std` > atomic. - [1399d95](https://github.com/ratatui/ratatui/commit/1399d95ae0c93b0f802e500022853e32fa604cf9) *(no_std)* Make palette and serde features depends on std by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1919](https://github.com/ratatui/ratatui/pull/1919) - [b32f781](https://github.com/ratatui/ratatui/commit/b32f78195bfa4b131e091d64f02676fa1ba0a360) *(no_std)* Make `ratatui-macros` no-std by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1865](https://github.com/ratatui/ratatui/pull/1865) - [3e1c72f](https://github.com/ratatui/ratatui/commit/3e1c72fb27cae132bc8b5f24a4ae875921dfb00d) *(no_std)* Make ratatui compatible with `#![no_std]` by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1794](https://github.com/ratatui/ratatui/pull/1794) \[**breaking**] > Resolves [#&#8203;1781](https://github.com/ratatui/ratatui/issues/1781) > > This PR makes it possible to compile ratatui with `#![no_std]`. > Also makes me answer "We Are So Embedded" to "Are We Embedded Yet?" - [ab48c06](https://github.com/ratatui/ratatui/commit/ab48c06171724ae58d98687d90e999b76890c2e7) *(no_std)* Option to disable layout cache for `no_std` compatibility by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1795](https://github.com/ratatui/ratatui/pull/1795) \[**breaking**] > Resolves [#&#8203;1780](https://github.com/ratatui/ratatui/issues/1780) > > BREAKING CHANGE:Disabling `default-features` will now disable layout > cache, which can have a negative impact on performance. > > `Layout::init_cache` and `Layout::DEFAULT_CACHE_SIZE` are now only > available if `layout-cache` feature is enabled. - [09173d1](https://github.com/ratatui/ratatui/commit/09173d182912ab92e67b8aa7a4cb51862b05cb25) *(no_std)* Make `TestBackend::Error` `Infallible` by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1823](https://github.com/ratatui/ratatui/pull/1823) \[**breaking**] > BREAKING CHANGE:`TestBackend` now uses `core::convert::Infallible` for > error handling instead of `std::io::Error` - [007713e](https://github.com/ratatui/ratatui/commit/007713e50a083d5e7a4963ca829b4622d56828b1) *(no_std)* Replace `Backend`'s `io::Error` usages with associated `Error` type by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1778](https://github.com/ratatui/ratatui/pull/1778) \[**breaking**] > Resolves [#&#8203;1775](https://github.com/ratatui/ratatui/issues/1775) > > BREAKING CHANGE:Custom backends now have to implement `Backend::Error` > and `Backend::clear_region`. Additionally some generic `Backend` usage > will have to explicitly set trait bounds for `Backend::Error`. - [a42a17e](https://github.com/ratatui/ratatui/commit/a42a17e1847c350c4909295d98f3c37af97e1e31) *(no_std)* Make `ratatui-widgets` `no_std` by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1779](https://github.com/ratatui/ratatui/pull/1779) > Resolves [#&#8203;1776](https://github.com/ratatui/ratatui/issues/1776) - [5a232a3](https://github.com/ratatui/ratatui/commit/5a232a31153b147dbde85ba13a11c11b62994a86) *(no_std)* Remove redundant `std` usages in `ratatui-widgets` by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1762](https://github.com/ratatui/ratatui/pull/1762) - [ebe10cd](https://github.com/ratatui/ratatui/commit/ebe10cd81fc7392d26e6b93ae8d512175404f7a7) *(no_std)* Remove redundant `std` usages in `ratatui-core` by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1753](https://github.com/ratatui/ratatui/pull/1753) > Resolves https://github.com/ratatui/ratatui/issues/1751 - [08b08cc](https://github.com/ratatui/ratatui/commit/08b08cc45b60274a48824d488127a014e083d95a) *(rect)* Centering by [@&#8203;janTatesa](https://github.com/janTatesa) in [#&#8203;1814](https://github.com/ratatui/ratatui/pull/1814) > Resolves [#&#8203;617](https://github.com/ratatui/ratatui/issues/617) - [ff729b7](https://github.com/ratatui/ratatui/commit/ff729b7607e0099a155f10dfe0ce42320641b74d) *(scrollbar)* Support retrieving the current position of state by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1552](https://github.com/ratatui/ratatui/pull/1552) > As of now it is possible to change the position of the Scrollbar but not > possible to retrieve the position for further use. e.g. > > ```rust > let mut state = ScrollbarState::default(); > state.next(); > ``` > > This commit adds a new method "`current_position`" (since `position` is > already taken by the fluent setter) for that purpose: > > ```rust > let index = state.get_position(); // yay > ``` > > See [#&#8203;1545](https://github.com/ratatui/ratatui/issues/1545) for the concrete usage of this. - [4c3c054](https://github.com/ratatui/ratatui/commit/4c3c0540cdffa43cff5db22ac43b54845e795318) *(serde)* Handle null modifiers in serde Style by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2172](https://github.com/ratatui/ratatui/pull/2172) > Allow `Style`'s `add_modifier` and `sub_modifier` fields to > deserialize from `null` - [b9da192](https://github.com/ratatui/ratatui/commit/b9da1926a0c102d97a552487fc9963590bea80ff) *(serde)* Derive Serialize/Deserialize for alignment enums by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1957](https://github.com/ratatui/ratatui/pull/1957) > Resolves [#&#8203;1954](https://github.com/ratatui/ratatui/issues/1954) - [89b7421](https://github.com/ratatui/ratatui/commit/89b74214d9d09343743c8601d9401c0139a887a4) *(serde)* Derive Serialize/Deserialize for additional structs/enums by [@&#8203;aurreland](https://github.com/aurreland) in [#&#8203;1883](https://github.com/ratatui/ratatui/pull/1883) > This PR adds `#[derive(Serialize, Deserialize)]` to the following > structs: > > - `Constraint` > - `Direction` > - `Spacing` > - `Layout` > - `AccentedPalette` > - `NonAccentedPalette` > - `Palette` > - `Padding` > - `Borders` > - `BorderType` > - `ListDirection` > - `ScrollbarOrientation` > - `ScrollDirection` > - `RenderDirection` > - `HighlightSpacing` > > Fixes [#&#8203;1877](https://github.com/ratatui/ratatui/issues/1877) - [03f3f6d](https://github.com/ratatui/ratatui/commit/03f3f6df350b30599d3b9765100e810dbd21c12e) *(style)* Allow add/sub modifiers to be omitted in Style serialization. by [@&#8203;rcorre](https://github.com/rcorre) in [#&#8203;2057](https://github.com/ratatui/ratatui/pull/2057) > It's really useful that Style supports Deserialize, this allows TUI > apps to have configurable theming without much extra code. > > However, deserializing a style currently fails if `add_modifier` and > `sub_modifier` are > not specified. That means the following TOML config: > > ```toml > [theme.highlight] > fg = "white" > bg = "black" > ``` > > Will fail to deserialize with "missing field `add_modifier`". It should > be possible > to omit modifiers and have them default to "none". - [ee67347](https://github.com/ratatui/ratatui/commit/ee673476d30cb7c680273336ca00daa201036c3f) *(symbols)* Make `Marker` non-exhaustive by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;2236](https://github.com/ratatui/ratatui/pull/2236) \[**breaking**] > This will allow us to add new markers without causing further breaking > changes. > > BREAKING CHANGE:`Marker` is now non-exhaustive - [985cd05](https://github.com/ratatui/ratatui/commit/985cd05573b71cf0caed0537714fb005ad219894) *(symbols)* Add dashed borders by [@&#8203;theotchlx](https://github.com/theotchlx) in [#&#8203;1573](https://github.com/ratatui/ratatui/pull/1573) > Adds several new border sets: > > - ratatui::symbols::border::LIGHT_DOUBLE_DASHED > - ratatui::symbols::border::HEAVY_DOUBLE_DASHED > - ratatui::symbols::border::LIGHT_TRIPLE_DASHED > - ratatui::symbols::border::HEAVY_TRIPLE_DASHED > - ratatui::symbols::border::LIGHT_QUADRUPLE_DASHED > - ratatui::symbols::border::HEAVY_QUADRUPLE_DASHED > > And corresponding variants to the ratatui::widgets::BorderType enum > > Fixes:https://github.com/ratatui/ratatui/issues/1355 - [4c301e8](https://github.com/ratatui/ratatui/commit/4c301e891d9704fd3578af96d63a3b068252ec6a) *(text)* Implement `AddAssign` for `Text` by [@&#8203;acuteenvy](https://github.com/acuteenvy) in [#&#8203;1956](https://github.com/ratatui/ratatui/pull/1956) > This makes it possible to add a second `Text` instance to a first one using the += operator. > > ```rust > let mut text = Text::from("line 1"); > text += Text::from("line 2"); > ``` > > Style and alignment applied to the second text is ignored (though styles and alignment of lines and spans are copied). - [ce4856a](https://github.com/ratatui/ratatui/commit/ce4856a65f3c76db714a45338ba3be9b638c6c35) *(widgets)* Add the missing constructor to canvas types by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1538](https://github.com/ratatui/ratatui/pull/1538) > Allows constructing `Rectangle`, `Points` and `Circle` using the `new` > method instead of initializing with the public fields directly. - [22610b0](https://github.com/ratatui/ratatui/commit/22610b019b9e7b451cd2ba2c44aa625fd24a8f95) *(uncategorized)* Support adding an Offset to Position by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2239](https://github.com/ratatui/ratatui/pull/2239) > Adds Position::offset() and arithmetic ops (Position + Offset and > Position - Offset) > > Fixes:https://github.com/ratatui/ratatui/issues/2018 - [24e3133](https://github.com/ratatui/ratatui/commit/24e313345664bead35eac270419023cc32bda904) *(uncategorized)* Add Rect::resize() method by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2240](https://github.com/ratatui/ratatui/pull/2240) > Fixes:https://github.com/ratatui/ratatui/issues/1440 - [96d097e](https://github.com/ratatui/ratatui/commit/96d097ef76365f9fcbe2c4e677259914c0655054) *(uncategorized)* Implement Rect ops for moving by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1596](https://github.com/ratatui/ratatui/pull/1596) > feat:implement Rect ops for moving > > Implemented `Add`, `AddAssign`, `Sub`, and `SubAssign` on `Rect` for > `Offset`. This makes it possible to move rects > > ```rust > let rect = Rect::new(1, 2, 3, 4); > let moved = rect + Offset(1, 2); > let moved = rect - Offset(1, 2); > let moved = rect + Offset(-1, -2); > ``` > > Additionally Rect, Size, Offset, and Position now all have MIN and MAX > consts. - [e869cb9](https://github.com/ratatui/ratatui/commit/e869cb975063e33689be751a090a3aa77f71825a) *(uncategorized)* Add Size::area() by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2226](https://github.com/ratatui/ratatui/pull/2226) > Add Size::area() returning u32 to avoid u16 overflow > Fixes https://github.com/ratatui/ratatui/issues/2204 - [b6588fd](https://github.com/ratatui/ratatui/commit/b6588fd1faa761dc07166b951e28551de18a1c8f) *(uncategorized)* Implement `From<Size>` for `(u16, u16)` by [@&#8203;0xb002f0](https://github.com/0xb002f0) in [#&#8203;2223](https://github.com/ratatui/ratatui/pull/2223) - [75b78be](https://github.com/ratatui/ratatui/commit/75b78be09f076d0de3223f37c3cab25a36fe2fb3) *(uncategorized)* Add width() impl for tabs by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2049](https://github.com/ratatui/ratatui/pull/2049) > The purpose of this is to make it easy for apps to easily calculate the > total tab width including all dividers and padding. - [8188ed3](https://github.com/ratatui/ratatui/commit/8188ed3950b61aa580343964ca8a2f2cbfdab62c) *(uncategorized)* Implement UnicodeWidthStr for Text/Line/Span by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2030](https://github.com/ratatui/ratatui/pull/2030) > You can now calculate the width of any Text/Line/Span using the > UnicodeWidthStr trait instead of the width method on the type. This also > makes it possible to use the width_cjk() method if needed. - [c845fec](https://github.com/ratatui/ratatui/commit/c845fec765c53648d599111f59d20e7b2ebe62dc) *(uncategorized)* Add conversion from Size to Rect by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2028](https://github.com/ratatui/ratatui/pull/2028) > `Rect::from(size)` returns a new Rect at the origin (0, 0) with the > specified `Size` - [017af11](https://github.com/ratatui/ratatui/commit/017af11b2bce9cb01d29993526dbd455668be190) *(uncategorized)* Preserve block titles when merging borders by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1977](https://github.com/ratatui/ratatui/pull/1977) > Resolves [#&#8203;1939](https://github.com/ratatui/ratatui/issues/1939) - [6dcd53b](https://github.com/ratatui/ratatui/commit/6dcd53bc6ba172d4b96d02809c6a46105e67d85a) *(uncategorized)* Add ergonomic methods for layouting Rects by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1909](https://github.com/ratatui/ratatui/pull/1909) > This commit introduces new methods for the `Rect` struct that simplify > the process of splitting a `Rect` into sub-rects according to a given > `Layout`. By putting these methods on the `Rect` struct, we make it a > bit more natural that a layout is applied to the `Rect` itself, rather > than passing a `Rect` to the `Layout` struct to be split. > > Adds:- `Rect::layout` and `Rect::try_layout` methods that allow splitting a > `Rect` into an array of sub-rects according to a given `Layout`. > > - `Rect::layout_vec` method that returns a `Vec` of sub-rects. > - `Layout::try_areas` method that returns an array of sub-rects, with > compile-time checks for the number of constraints. This is added > mainly for consistency with the new `Rect` methods. > > ```rust > use ratatui_core::layout::{Layout, Constraint, Rect}; > let area = Rect::new(0, 0, 10, 10); > let layout = Layout::vertical([Constraint::Fill(1); 2]); > > // Rect::layout() infers the number of constraints at compile time: > let [top, main] = area.layout(&layout); > > // Rect::try_layout() and Layout::try_areas() do the same, but return a > // Result: > let [top, main] = area.try_layout(&layout)?; > let [top, main] = layout.try_areas(area)?; > > // Rect::layout_vec() returns a Vec of sub-rects: > let areas_vec = area.layout_vec(&layout); > > // you can also explicitly specify the number of constraints: > let areas = area.layout::<2>(&layout); > let areas = area.try_layout::<2>(&layout)?; > let areas = layout.try_areas::<2>(area)?; > ``` - [0c3872f](https://github.com/ratatui/ratatui/commit/0c3872f1c5105153ebb0368e83e8b72cb68b8b34) *(uncategorized)* Add Rect::outer() by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1929](https://github.com/ratatui/ratatui/pull/1929) > Fixes:https://github.com/ratatui/ratatui/issues/211 - [7bc78bc](https://github.com/ratatui/ratatui/commit/7bc78bca1b8ce9aac0cab3831a0c9c864ab02b02) *(uncategorized)* Add ratatui::run() method by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1707](https://github.com/ratatui/ratatui/pull/1707) > This introduces a new `ratatui::run()` method which runs a closure with > a terminal initialized with reasonable defaults for most applications. > This calls `ratatui::init()` before running the closure and > `ratatui::restore()` after the closure completes, and returns the result > of the closure. > > A minimal hello world example using the new `ratatui::run()` method: > > ```rust > fn main() -> Result<(), Box<dyn std::error::Error>> { > ratatui::run(|terminal| { > loop { > terminal.draw(|frame| frame.render_widget("Hello World!", frame.area()))?; > if crossterm::event::read()?.is_key_press() { > break Ok(()); > } > } > }) > } > ``` > > Of course, this also works both with apps that use free methods and > structs: > > ```rust > fn run(terminal: &mut DefaultTerminal) -> Result<(), AppError> { ... } > > ratatui::run(run)?; > ``` > > ```rust > struct App { ... } > > impl App { > fn new() -> Self { ... } > fn run(mut self, terminal: &mut DefaultTerminal) -> Result<(), AppError> { ... } > } > > ratatui::run(|terminal| App::new().run(terminal))?; > ``` - [b6fbfcd](https://github.com/ratatui/ratatui/commit/b6fbfcdd1cf1813879af523a52fb8c5a496a685b) *(uncategorized)* Add lifetime to symbol sets by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1935](https://github.com/ratatui/ratatui/pull/1935) > This makes it possible to create symbol sets at runtime with non-static > lifetimes. > > Fixes:https://github.com/ratatui/ratatui/issues/1722 - [488e5f0](https://github.com/ratatui/ratatui/commit/488e5f020f7a1b4c120d8b074c62a97abac0a4b6) *(uncategorized)* Make `border!` work without importing `Borders` by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1918](https://github.com/ratatui/ratatui/pull/1918) > Currently using `border!` macro requires explicit import of `Borders` > which is unnecessary. - [671c2b4](https://github.com/ratatui/ratatui/commit/671c2b4fd4ee277ba0dc36d152d66c40cfa1f030) *(uncategorized)* Support merging the borders of blocks by [@&#8203;j-g00da](https://github.com/j-g00da) > When two borders overlap, they will automatically merge into a single, > clean border instead of overlapping. > > This improves visual clarity and reduces rendering glitches around corners. > > For example: > > assert_eq!(Cell::new("┘").merge_symbol("┏", MergeStrategy::Exact).symbol(), "╆"); - [702fff5](https://github.com/ratatui/ratatui/commit/702fff501ce093f333610b1d3c9c02f114268698) *(uncategorized)* Implement stylize methods directly on Style by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1572](https://github.com/ratatui/ratatui/pull/1572) \[**breaking**] > This makes it possible to create constants using the shorthand methods. > > ```rust > const MY_STYLE: Style = Style::new().blue().on_black(); > ``` > > Rather than implementing Styled for Style and then adding extension > methods that implement the Stylize shorthands, this implements the > methods as const functions directly on Style. > > BREAKING CHANGE:`Style` no longer implements `Styled`. Any calls to > methods implemented by the blanket implementation of Stylize are now > defined directly on Style. Remove the Stylize import if it is no longer > used by your code. > > The `reset()` method does not have a direct replacement, as it clashes > with the existing `reset()` method. Use `Style::reset()` rather than > `some_style.reset()` > > Fixes:[#&#8203;1158](https://github.com/ratatui/ratatui/issues/1158) - [4fcd238](https://github.com/ratatui/ratatui/commit/4fcd238e1e981fb48a7c4cb9845a72c8960f19d5) *(uncategorized)* Support no-std for calendar widget by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1852](https://github.com/ratatui/ratatui/pull/1852) > Removes the CalendarEventStore::today() function in no-std environments - [53cdbbc](https://github.com/ratatui/ratatui/commit/53cdbbccd5d3522c004e483433a02ef6d64fab01) *(uncategorized)* Enable serde propagation to backend crates (crossterm, termion) by [@&#8203;ArjunKrish7356](https://github.com/ArjunKrish7356) in [#&#8203;1812](https://github.com/ratatui/ratatui/pull/1812) > This PR propagates the serde feature from the main ratatui crate to the > ratatui-crossterm and ratatui-termion backend crates. Solves [#&#8203;1805](https://github.com/ratatui/ratatui/issues/1805) - [6836a69](https://github.com/ratatui/ratatui/commit/6836a6903e7832d0c9f39d57fc9c30a80fa7f4e9) *(uncategorized)* Implement styled for other primitives by [@&#8203;aschey](https://github.com/aschey) in [#&#8203;1684](https://github.com/ratatui/ratatui/pull/1684) - [fcb47d6](https://github.com/ratatui/ratatui/commit/fcb47d60f3df205c18f5fa9459e9ba2c8d0c9649) *(uncategorized)* Rename Alignment to HorizontalAlignment and add VerticalAlignment by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1735](https://github.com/ratatui/ratatui/pull/1735) \[**breaking**] > We don't anticipate removing or deprecating the type alias in the near > future, but it is recommended to update your imports to use the new > name. > > Added a VerticalAlignment enum to make the API more consistent. We don't > have a specific use case for it yet, but it's better to add it now and > be able to use it in the future. > > BREAKING-CHANGE:The `Alignment` enum has been renamed to > `HorizontalAlignment` to better reflect its purpose. A type alias has > been added to maintain backwards compatibility, however there are some > cases where type aliases are not enough to maintain backwards > compatibility. E.g. when using glob imports to import all the enum > variants. This should not affect most users, but it is recommended to > update your imports to use the new name. > > ```diff > - use ratatui::layout::Alignment; > + use ratatui::layout::HorizontalAlignment; > > - use Alignment::*; > + use HorizontalAlignment::*; > ``` - [2714d6b](https://github.com/ratatui/ratatui/commit/2714d6b9c3d2dab1537c9ced6cdb4571429bd1a5) *(uncategorized)* Add array and tuple RGB color conversion methods by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1703](https://github.com/ratatui/ratatui/pull/1703) > Other crates (e.g. colorgrad) that deal with colors can convert colors > to a tuple of 3 or 4 u8 values. This commit adds conversion methods from > these types to a `Color::Rgb` instance. Any alpha value is ignored. > > ```rust > Color::from([255, 0, 0]); > Color::from((255, 0, 0)); > Color::from([255, 0, 0, 255]); > Color::from((255, 0, 0, 255)); > ``` - [50ba965](https://github.com/ratatui/ratatui/commit/50ba96518f01454cff185784a1e9676093ce06cf) *(uncategorized)* Add a new RatatuiMascot widget by [@&#8203;Its-Just-Nans](https://github.com/Its-Just-Nans) in [#&#8203;1584](https://github.com/ratatui/ratatui/pull/1584) > Move the Mascot from Demo2 into a new widget. > Make the Rat grey and adjust the other colors. > > ```rust > frame.render_widget(RatatuiMascot::default(), frame.area()); > ``` - [1d28c89](https://github.com/ratatui/ratatui/commit/1d28c89fe50f1a11cf1719233acca1a12d5e2d7b) *(uncategorized)* Add conversions for anstyle by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1581](https://github.com/ratatui/ratatui/pull/1581) > https://crates.io/crates/anstyle makes it possible to define colors in > an interoperable way. This makes it possible for applications to easily > load colors from a variety of formats. > > This is gated by the anstyle feature flag which is disabled by default. > > *** ##### Bug Fixes - [a89d3d6](https://github.com/ratatui/ratatui/commit/a89d3d62ffc3d38e6967a3b1a7a2ac975338c48c) *(buffer)* Clear behavior with VS16 wide emojis by [@&#8203;nornagon](https://github.com/nornagon) in [#&#8203;2063](https://github.com/ratatui/ratatui/pull/2063) > This fixes a bug where certain emojis like ⌨️ would sometimes be > "overlaid" onto existing content from the buffer, instead of properly > clearing. > > [example demonstrating > bug](https://gist.github.com/nornagon/11a79d7a1f2e98aa129fedb4abccc530) > > This PR was generated by Codex, and validated by me: > > 1. Behavior of the above example code was buggy before this fix (showed > overlaying "b" on top of the keyboard emoji), and fixed after. > 2. The U+FE0F check is not strictly required, but I did note that emoji > without this char don't exhibit the buggy behavior, even without the > fix. > > *** - [ec30390](https://github.com/ratatui/ratatui/commit/ec30390446b998cba97a25db63b2e3d27db7a12d) *(canvas)* Round coordinates to nearest grid cell by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1507](https://github.com/ratatui/ratatui/pull/1507) > Previously the canvas coordinates were rounded towards zero, which > causes the rendering to be off by one pixel in some cases. It also meant > that pixels at the extreme edges of the canvas can only be drawn if the > point was exactly on the edge of the canvas. This commit rounds the > coordinates to the nearest integer instead. This may change the output > for some apps using Canvas / Charts. - [afd1ce1](https://github.com/ratatui/ratatui/commit/afd1ce179b74f10ea786ed6f9b2999288bc94e7a) *(canvas)* Lines that start outside the visible grid are now drawn by [@&#8203;renesat](https://github.com/renesat) in [#&#8203;1501](https://github.com/ratatui/ratatui/pull/1501) > Previously lines with points that were outside the canvas bounds were > not drawn at all. Now they are clipped to the bounds of the canvas so > that the portion of the line within the canvas is draw. > > To facilitate this, a new `Painter::bounds()` method which returns the > bounds of the canvas is added. > > Fixes:https://github.com/ratatui/ratatui/issues/1489 - [2b0a044](https://github.com/ratatui/ratatui/commit/2b0a044cedfc3f58c99ef8ac21f83d20432c2144) *(ci)* Add contents write permission to release-plz PR by [@&#8203;marcoieni](https://github.com/marcoieni) in [#&#8203;2119](https://github.com/ratatui/ratatui/pull/2119) > https://release-plz.dev/docs/github/quickstart#3-setup-the-workflow > > Fixes https://github.com/release-plz/release-plz/issues/2439 - [18e70d3](https://github.com/ratatui/ratatui/commit/18e70d3d51b654bb895843224edf0c21a3114dc9) *(crossterm)* Terminal should keep Bold when removing Dim by [@&#8203;MarSik](https://github.com/MarSik) in [#&#8203;1541](https://github.com/ratatui/ratatui/pull/1541) > The Dim removal should behave the same as the logic for Bold removal > that sends NormalIntensity sequence and then restores Dim when needed. - [16b76e3](https://github.com/ratatui/ratatui/commit/16b76e36eeab2ffcc0b60ef0caf40e08c4bcad02) *(demo)* Update the width of demo2 tape by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;2164](https://github.com/ratatui/ratatui/pull/2164) > ![](https://github.com/ratatui/ratatui/blob/images/examples/demo2.gif?raw=true) > > fixes [#&#8203;1721](https://github.com/ratatui/ratatui/issues/1721) - [dca331c](https://github.com/ratatui/ratatui/commit/dca331c748837e94957ada85a5bcb9080889a240) *(demo)* Support tab key in demo2 example by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1726](https://github.com/ratatui/ratatui/pull/1726) > see [#&#8203;1721](https://github.com/ratatui/ratatui/issues/1721) > > Not sure what caused this - it's been there for a while probably and we > didn't realize it since we used `demo2-destroy` mostly. - [0fd4753](https://github.com/ratatui/ratatui/commit/0fd4753e6bca72deff16bf080cfefc23b6cb85c1) *(examples)* Run the correct example for chart by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1679](https://github.com/ratatui/ratatui/pull/1679) > fixes [#&#8203;1678](https://github.com/ratatui/ratatui/issues/1678) - [39479e2](https://github.com/ratatui/ratatui/commit/39479e298c35700afc36584b3c5d522cd5b24a0b) *(examples)* Ensure that example projects are not published by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1672](https://github.com/ratatui/ratatui/pull/1672) - [9314312](https://github.com/ratatui/ratatui/commit/93143126b3dc70f437a6f05f17bba5d71e13083e) *(layout)* Feature flag cache related types by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1842](https://github.com/ratatui/ratatui/pull/1842) - [2dd1977](https://github.com/ratatui/ratatui/commit/2dd1977c594a5f276493ca63ecb82e5a4a5f0dc2) *(layout-cache)* Import `NonZeroUsize` only when `layout-cache` is enabled by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1839](https://github.com/ratatui/ratatui/pull/1839) > This silences unused import warning, when `layout-cache` is disabled. - [564a9d7](https://github.com/ratatui/ratatui/commit/564a9d76fc9d49e046915b95c518a9cfbcd5ecc2) *(line-gauge)* Pad default label to display 3 numbers by [@&#8203;martinetd](https://github.com/martinetd) in [#&#8203;2053](https://github.com/ratatui/ratatui/pull/2053) > Display the default label of the LineGauge widget padded to fill 3 cells. > This makes it so that the label doesn't shift around when going from a > single digit to double / triple digits. > > To maintain the existing behavior, use a custom label by calling `.label()` > on the LineGauge. - [a692a6e](https://github.com/ratatui/ratatui/commit/a692a6e37114f39a3eb15b0cdc486dee8a7e91ff) *(lint)* Apply rust 1.84 clippy suggestions by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1612](https://github.com/ratatui/ratatui/pull/1612) > The canvas map constants are now statics instead. > Fixes > https://rust-lang.github.io/rust-clippy/master/index.html#large_const_arrays - [2e54d5e](https://github.com/ratatui/ratatui/commit/2e54d5e22c80b7ecbe7227b1d2df232374820e38) *(macros)* Use $crate re-export in text macro by [@&#8203;airblast-dev](https://github.com/airblast-dev) in [#&#8203;1832](https://github.com/ratatui/ratatui/pull/1832) - [79d5165](https://github.com/ratatui/ratatui/commit/79d5165caed81db292073c18337fa69e83a20cf1) *(no_std)* Propagate `std` feature flag to dependencies by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1838](https://github.com/ratatui/ratatui/pull/1838) > Disables `std` feature flags in dependencies and only enables them with > `ratatui` and `ratatui-core`'s `std` feature flag. This partially fixes the > issue of still depending on `std`, when `std` feature flag is disabled. - [00da8c6](https://github.com/ratatui/ratatui/commit/00da8c620345397c6815267e6d8e19c1eacfe1c2) *(no_std)* Provide `f64` polyfills for `no_std` compatibility by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1840](https://github.com/ratatui/ratatui/pull/1840) > Related:https://github.com/rust-lang/rust/issues/137578 - [3b13240](https://github.com/ratatui/ratatui/commit/3b13240728597a8c459c4bb5f913372185e9df91) *(scrollbar)* Check for area.is_empty() before rendering by [@&#8203;farmeroy](https://github.com/farmeroy) in [#&#8203;1529](https://github.com/ratatui/ratatui/pull/1529) > This adds the `area.is_empty()` back into the scrollbar render method. > Without it, the widget panics if the height is 0. - [f57b696](https://github.com/ratatui/ratatui/commit/f57b696fdc3bac381bccda0414400453f5abecf2) *(span)* Dont render control characters by [@&#8203;EdJoPaTo](https://github.com/EdJoPaTo) in [#&#8203;1312](https://github.com/ratatui/ratatui/pull/1312) - [2ce958e](https://github.com/ratatui/ratatui/commit/2ce958e38cf1ebab49b1817b669631dc349a0ebb) *(table)* Allow display of additional table row, if row height > 1 by [@&#8203;Lunderberg](https://github.com/Lunderberg) in [#&#8203;1452](https://github.com/ratatui/ratatui/pull/1452) - [0a25bc1](https://github.com/ratatui/ratatui/commit/0a25bc166dad8cd72479183b5525e44fb14e9888) *(tests)* Update the stderr snapshot for ratatui-macros by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;2161](https://github.com/ratatui/ratatui/pull/2161) > New 🦀 broke the CI - [5fa342c](https://github.com/ratatui/ratatui/commit/5fa342cc52fc15d5d7198efaeb3e1537f7fee615) *(widgets)* Fix centered block title truncation by [@&#8203;ognis1205](https://github.com/ognis1205) in [#&#8203;1973](https://github.com/ratatui/ratatui/pull/1973) > Previously block titles that were aligned center were > truncated poorly (aligned to the left, and the last > non-fitting title would be truncated on the left and right. > This now truncates the titles more obviously centered. - [f919b25](https://github.com/ratatui/ratatui/commit/f919b25ea6b4ea6442f4a0e9984e5801c4e5bf6d) *(uncategorized)* String_to_string lint is now part of implicit_clone by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2173](https://github.com/ratatui/ratatui/pull/2173) - [1fe64de](https://github.com/ratatui/ratatui/commit/1fe64de09ab4b1572005b45beb8395fb5827e1fc) *(uncategorized)* Include underline color in anstyle conversion by [@&#8203;aschey](https://github.com/aschey) in [#&#8203;2004](https://github.com/ratatui/ratatui/pull/2004) > Underline color wasn't included in the style conversion logic. - [c1b8528](https://github.com/ratatui/ratatui/commit/c1b8528b69342060871046de9280139605749890) *(uncategorized)* Panic when rendering widgets on too small buffer by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1996](https://github.com/ratatui/ratatui/pull/1996) > Fixes panic on overflow on horizontal `Barchart` and `RatatuiMascot` and adds proper tests to all widgets. > > *** - [08b21fa](https://github.com/ratatui/ratatui/commit/08b21fa55c286ffb28b3e26340f34b644fd1ce36) *(uncategorized)* Fix panic when rendering a `Paragraph` out of bounds by [@&#8203;jwodder](https://github.com/jwodder) in [#&#8203;1670](https://github.com/ratatui/ratatui/pull/1670) > Fixes [#&#8203;1667](https://github.com/ratatui/ratatui/issues/1667). - [80bc818](https://github.com/ratatui/ratatui/commit/80bc8187233f4d98659b552d85520cd0e24ec8ad) *(uncategorized)* Fix truncation of left aligned block titles by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1931](https://github.com/ratatui/ratatui/pull/1931) > truncate the right side of left aligned titles rather than the left side > of right aligned titles. This is more obvious as the left side of text > often contains more important information. And we generally read > left to right. > > This change makes centered titles overwrite left aligned titles and > right aligned titles overwrite centered or left aligned titles. > > Fixes:https://github.com/ratatui/ratatui/issues/358 - [21e3b59](https://github.com/ratatui/ratatui/commit/21e3b598ce00300e9c7363139be73bba27f6e3c5) *(uncategorized)* Fix handling of multi-byte chars in bar chart by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1934](https://github.com/ratatui/ratatui/pull/1934) > The split_at method requires that the split point is at a valid utf8 > character boundary. > > Fixes:https://github.com/ratatui/ratatui/issues/1928 - [e1e4004](https://github.com/ratatui/ratatui/commit/e1e400406c531fe6a81e731242dffe19b1199f23) *(uncategorized)* Derive copy for list state by [@&#8203;janTatesa](https://github.com/janTatesa) in [#&#8203;1921](https://github.com/ratatui/ratatui/pull/1921) - [12cb5a2](https://github.com/ratatui/ratatui/commit/12cb5a28fe8e6c4526e70465a52c0d223140b8a1) *(uncategorized)* Allow canvas area to exceed u16::MAX by [@&#8203;Daksh14](https://github.com/Daksh14) in [#&#8203;1891](https://github.com/ratatui/ratatui/pull/1891) > This allows Canvas grids where the width \* height exceeds u16::MAX by > converting values to usize earlier in several methods. > > Fixes:https://github.com/ratatui/ratatui/issues/1449 - [09cc9ef](https://github.com/ratatui/ratatui/commit/09cc9ef57dec9b4a144cb5ea9938279997491f2e) *(uncategorized)* Typo in changelog by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1857](https://github.com/ratatui/ratatui/pull/1857) - [c238aca](https://github.com/ratatui/ratatui/commit/c238aca83a1b171d2ba7b38942fd5352f5a7e554) *(uncategorized)* `padding_right()` should set right padding instead of left by [@&#8203;sxyazi](https://github.com/sxyazi) in [#&#8203;1837](https://github.com/ratatui/ratatui/pull/1837) > Fixes https://github.com/ratatui/ratatui/issues/1836 - [c90ba97](https://github.com/ratatui/ratatui/commit/c90ba9781e5f4b6d061cafcb44ee7b4138f0b991) *(uncategorized)* Avoid unnecessary imports in minimal build by [@&#8203;cgzones](https://github.com/cgzones) in [#&#8203;1787](https://github.com/ratatui/ratatui/pull/1787) > core::ops::Range is only used with the feature `scrolling-regions`. > Ensure a minimal `cargo check` reports no warnings. - [416ebdf](https://github.com/ratatui/ratatui/commit/416ebdf8c86d1a7a98385908f7c8c560e86770ac) *(uncategorized)* Correct clippy errors introduced by rust 1.86.0 update by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1755](https://github.com/ratatui/ratatui/pull/1755) > New version of rust (1.86.0) caused CI to fail. - [4eac5b2](https://github.com/ratatui/ratatui/commit/4eac5b2849f7807c59e8164786e467137e17df86) *(uncategorized)* Make deprecation notes more helpful by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1702](https://github.com/ratatui/ratatui/pull/1702) > AI coding assistants use the deprecation notes to automatically suggest > fixes. This commit updates the deprecation notes to push those tools to > suggest the correct replacement methods and types. > > Specifically, AI tools often suggest using `Buffer::get(x, y)`, because > of their training data where this was prevalent. When fixing these > deprecations, they often incorrectly suggest using `Buffer::get(x, y)` > instead of `Buffer[(x, y)]`. - [35a8642](https://github.com/ratatui/ratatui/commit/35a86427abd30393fc4759c8b164cf422333feee) *(uncategorized)* `Rect::positions()` should be empty when width is 0 and height is nonzero by [@&#8203;jwodder](https://github.com/jwodder) in [#&#8203;1669](https://github.com/ratatui/ratatui/pull/1669) > Fixes [#&#8203;1666](https://github.com/ratatui/ratatui/issues/1666). - [f5fc819](https://github.com/ratatui/ratatui/commit/f5fc8197ffd0cdc17432e4f8c0cc9368ccef692b) *(uncategorized)* Avoid extra line break on whitespace only lines when wrapping paragraphs by [@&#8203;dotdash](https://github.com/dotdash) in [#&#8203;1636](https://github.com/ratatui/ratatui/pull/1636) > Currently whitespace only lines produces an extra line break when > trimming is disabled, because both the trimmed as well as the > non-trimmed line get inserted. Fix this by only inserting the > non-trimmed one. - [2892bdd](https://github.com/ratatui/ratatui/commit/2892bddce66daf0b285a6d9f6fb3fdb2581cda2b) *(uncategorized)* Rust 1.83 clippy lints by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1527](https://github.com/ratatui/ratatui/pull/1527) > https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes - [36e2d1b](https://github.com/ratatui/ratatui/commit/36e2d1bda1d8b4e1d0fbd09ba2894d56bd7eeeca) *(uncategorized)* Add feature(doc_cfg) when generating docs by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1506](https://github.com/ratatui/ratatui/pull/1506) - [4d7704f](https://github.com/ratatui/ratatui/commit/4d7704fba5dcebda34c8c04bf4b5ac48e3a22008) *(uncategorized)* Make StatefulWidget and Ref work with unsized State by [@&#8203;thscharler](https://github.com/thscharler) in [#&#8203;1505](https://github.com/ratatui/ratatui/pull/1505) > StatefulWidget::State and StatefulWidgetRef::State are now ?Sized. > > This allows implementations of the traits to use unsized types for the > State associated type. This is turn is useful when doing things like > boxing different stateful widget types with State which implements > `Any`, are slices or any other dynamically sized type. - [7b87509](https://github.com/ratatui/ratatui/commit/7b875091e18b894f53af6331a8ad5b7101a75d1e) *(uncategorized)* Typo by [@&#8203;marcoieni](https://github.com/marcoieni) in [#&#8203;1480](https://github.com/ratatui/ratatui/pull/1480) ##### Refactor - [8d60e96](https://github.com/ratatui/ratatui/commit/8d60e96b2bfcdc0a7f9b6d17d79dbf36f61182b6) *(examples)* Use crossterm event methods by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1792](https://github.com/ratatui/ratatui/pull/1792) > Crossterm 0.29 introduced methods to easily check / extract the event > type. E.g. as_key_press_event() and is_key_press(). This commit > updates the examples to use these methods instead of matching on > the event type. This makes the code cleaner and easier to read. > > Also does a general cleanup of the event handling code in the examples. - [07bec55](https://github.com/ratatui/ratatui/commit/07bec55b7d55fab338f9ab8571a80277d4890753) *(no_std)* Make usages of std explicit in ratatui-core. by [@&#8203;ed-2100](https://github.com/ed-2100) in [#&#8203;1782](https://github.com/ratatui/ratatui/pull/1782) > ### This commit does the following: > > - Adds `#[no_std]` to `lib.rs`. > - Adds `extern crate std;` to `lib.rs`. > - Updates `ratatui-core` to explicitly `use` items from std and alloc. > - Prefers `use`-ing alloc over std when possible. > > ### Explanation: > > This allows usages of `std` in `ratatui-core` to be clearly pointed out > and dealt with individually. > > Eventually, when `std` is to be feature gated, the associated commit > will be much cleaner. - [f132fa1](https://github.com/ratatui/ratatui/commit/f132fa1715ea0893c52e35c65d505abadb75cec6) *(table)* Small readability improvements by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1510](https://github.com/ratatui/ratatui/pull/1510) - [c7c3498](https://github.com/ratatui/ratatui/commit/c7c34980254e4ffe6416cb8e20ba2c49300948a3) *(uncategorized)* Use saturating_add in Rect::new by [@&#8203;pharrison31415](https://github.com/pharrison31415) in [#&#8203;2216](https://github.com/ratatui/ratatui/pull/2216) - [02e53de](https://github.com/ratatui/ratatui/commit/02e53de0f82bc2364f2ba4345cc5a635347e3eb4) *(uncategorized)* Make use of iter::repeat_n() by [@&#8203;cgzones](https://github.com/cgzones) in [#&#8203;1788](https://github.com/ratatui/ratatui/pull/1788) > Applied via clippy --fix. > Available since 1.82.0. - [a195d59](https://github.com/ratatui/ratatui/commit/a195d59a47663dae1722afa92d9f913317a1e2e9) *(uncategorized)* Move xtask commands to small modules by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1620](https://github.com/ratatui/ratatui/pull/1620) - [904b0aa](https://github.com/ratatui/ratatui/commit/904b0aa723e63d3fb68802b797949619506bf3a9) *(uncategorized)* Move symbols to modules by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1594](https://github.com/ratatui/ratatui/pull/1594) - [7c8573f](https://github.com/ratatui/ratatui/commit/7c8573f5750ea8cf87101f81314803c834ea4942) *(uncategorized)* Rearrange selection_spacing code by [@&#8203;raylu](https://github.com/raylu) in [#&#8203;1540](https://github.com/ratatui/ratatui/pull/1540) - [217c57c](https://github.com/ratatui/ratatui/commit/217c57cd60628abde1ca2f0c39b014e22c9edc4e) *(uncategorized)* Modularize backends by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1508](https://github.com/ratatui/ratatui/pull/1508) > Backend code is now moved to `ratatui-crossterm`, `ratatui-termion` and > `ratatui-termwiz`. This should be backwards compatible with existing code. - [e461b72](https://github.com/ratatui/ratatui/commit/e461b724a6b010fe242f9bd6d9746007cbf24219) *(uncategorized)* Move {Stateful,}Widget{,Ref} types into individual files by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1479](https://github.com/ratatui/ratatui/pull/1479) > This is a preparatory refactoring for modularization. No user visible > changes. ##### Documentation - [40e96a2](https://github.com/ratatui/ratatui/commit/40e96a2a0430d4ff5bb5d032d23b7c29969550fd) *(block)* Add collapsed border example by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1899](https://github.com/ratatui/ratatui/pull/1899) - [d291042](https://github.com/ratatui/ratatui/commit/d291042e69ad930ae0d3c5d1f991d9e68320c00e) *(block)* Revise the block example by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1520](https://github.com/ratatui/ratatui/pull/1520) > - Moves the block example from `ratatui` to `ratatui-widgets` > - Simplifies the example (bordered, styled, custom borders) > > see [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) - [0951da5](https://github.com/ratatui/ratatui/commit/0951da52f9dc1628d5dd02c4ceb792a93ce56c27) *(breaking-changes)* Improve migration guide for `Backend::Error` by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1908](https://github.com/ratatui/ratatui/pull/1908) > Related:https://github.com/fujiapple852/trippy/pull/1588 - [bbe1cf9](https://github.com/ratatui/ratatui/commit/bbe1cf9497c8efa5566cb71840b2894792772f4b) *(breaking-changes)* Change MSRV to 1.85 by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1896](https://github.com/ratatui/ratatui/pull/1896) > The minimum supported Rust version is now for `ratatui` v0.30 is 1.85 - [c7912f3](https://github.com/ratatui/ratatui/commit/c7912f3990c8827b51b0b74f506f1a232e5e7a32) *(breaking-changes)* Fix header level by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1825](https://github.com/ratatui/ratatui/pull/1825) - [fcde9cb](https://github.com/ratatui/ratatui/commit/fcde9cb9c3c5e9752fefbcc7cdeac95e2db9d684) *(changelog)* Fix typo by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1463](https://github.com/ratatui/ratatui/pull/1463) - [73488ab](https://github.com/ratatui/ratatui/commit/73488abb45dc003bc26d49188812f481244bec60) *(contributing)* Fix link to `widgets_block_renders` test by [@&#8203;ognis1205](https://github.com/ognis1205) in [#&#8203;2101](https://github.com/ratatui/ratatui/pull/2101) > The `CONTRIBUTING.md` referenced `tests/widgets_block.rs`, but the > correct path is `ratatui/tests/widgets_block.rs`. Updated the link so > that readers can navigate to the test example without 404 error. > > *** - [0b025db](https://github.com/ratatui/ratatui/commit/0b025db72b1ba4bd38d458cf15cf6cffcfbc1a32) *(contributing)* Fix grammar by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1958](https://github.com/ratatui/ratatui/pull/1958) - [1197b2a](https://github.com/ratatui/ratatui/commit/1197b2a02c8db06f0cb303d6ffb62f8999518f28) *(contributing)* Add note about using nightly for formatting by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1816](https://github.com/ratatui/ratatui/pull/1816) - [3ae6bf1](https://github.com/ratatui/ratatui/commit/3ae6bf1d6f24407de400024dcb5924d841a2e1ba) *(contributing)* Use cargo-xtask for instructions by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1509](https://github.com/ratatui/ratatui/pull/1509) > - Updates `CONTRIBUTING.md` about the usage of `xtask` > - Removes `Makefile.toml` - [22e3e84](https://github.com/ratatui/ratatui/commit/22e3e84de8d26fd938220bdf3d00f8ec3ca7e597) *(core)* Remove link to Paragraph widget by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1683](https://github.com/ratatui/ratatui/pull/1683) - [b65788c](https://github.com/ratatui/ratatui/commit/b65788ce147e8f04292bc24dc12cb8de16595588) *(examples)* Remove duplicated link by [@&#8203;matthiasbeyer](https://github.com/matthiasbeyer) in [#&#8203;2212](https://github.com/ratatui/ratatui/pull/2212) - [200b217](https://github.com/ratatui/ratatui/commit/200b21772203d79c00f41f91eb4b966c0d6950ff) *(examples)* Add VHS tapes and docs for widget examples by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;2114](https://github.com/ratatui/ratatui/pull/2114) > fixes [#&#8203;1982](https://github.com/ratatui/ratatui/issues/1982) > > Later on I'll figure out an easy way to regenerate this in the CI and > possibly do the same for the app examples' VHS tapes. That's why I > haven't added a script or mentioned anything in the docs yet (hint: > [#&#8203;1721](https://github.com/ratatui/ratatui/issues/1721)) > > *** - [861fbdf](https://github.com/ratatui/ratatui/commit/861fbdf5cf5f0ffdc943f7614e48fa3f40cdd8d6) *(examples)* Fix a typo by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1890](https://github.com/ratatui/ratatui/pull/1890) > Makes CI typos check pass again - [882cc3c](https://github.com/ratatui/ratatui/commit/882cc3c6c63e6470b634787d097f5fd99e0463bf) *(examples)* Update app examples with tapes by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1673](https://github.com/ratatui/ratatui/pull/1673) - [4393fae](https://github.com/ratatui/ratatui/commit/4393fae54c18c148e7c24206350f0b9e235e5d69) *(examples)* Move scrollbar example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1665](https://github.com/ratatui/ratatui/pull/1665) - [9ea70e2](https://github.com/ratatui/ratatui/commit/9ea70e28c639d967f361a35e851fc450d0b797d7) *(examples)* Move widget-impl example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1663](https://github.com/ratatui/ratatui/pull/1663) - [774ab78](https://github.com/ratatui/ratatui/commit/774ab788d4fcdf4862710573dd519b3999044a4b) *(examples)* Move widget-ref-container example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1664](https://github.com/ratatui/ratatui/pull/1664) > see [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) - [910d16e](https://github.com/ratatui/ratatui/commit/910d16e63af92844ad4d2bed061fb2eec5ac75e3) *(examples)* Move user-input example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1659](https://github.com/ratatui/ratatui/pull/1659) - [dbfb7da](https://github.com/ratatui/ratatui/commit/dbfb7da9e36ccf9f89da40e98519e1056f8ab882) *(examples)* Move table example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1657](https://github.com/ratatui/ratatui/pull/1657) - [cb2a58a](https://github.com/ratatui/ratatui/commit/cb2a58aaa01d6829f24f7766ad064d7f3c5242ab) *(examples)* Move tracing example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1658](https://github.com/ratatui/ratatui/pull/1658) - [7e00b64](https://github.com/ratatui/ratatui/commit/7e00b646fcca58d00ec5b142f71d2b46acb43819) *(examples)* Move panic example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1655](https://github.com/ratatui/ratatui/pull/1655) - [8127590](https://github.com/ratatui/ratatui/commit/8127590812ee46231a13ad4279af773bca4daefe) *(examples)* Move modifiers example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1654](https://github.com/ratatui/ratatui/pull/1654) - [7c40c0b](https://github.com/ratatui/ratatui/commit/7c40c0bbddca0276523ac717d9df3d2b49594bb6) *(examples)* Move popup example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1656](https://github.com/ratatui/ratatui/pull/1656) > see [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) - [d87354f](https://github.com/ratatui/ratatui/commit/d87354f4001f501ed9693073a7afcf10d8c6c7a4) *(examples)* Move list example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1653](https://github.com/ratatui/ratatui/pull/1653) > see [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) > > also renames it to todo-list - [621226f](https://github.com/ratatui/ratatui/commit/621226f2e21816263b45ca3be29804559f98b218) *(examples)* Move inline example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1651](https://github.com/ratatui/ratatui/pull/1651) - [9ba7d25](https://github.com/ratatui/ratatui/commit/9ba7d25b71f2a28e658d0f5205484f706bc296b9) *(examples)* Move hyperlink example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1650](https://github.com/ratatui/ratatui/pull/1650) - [bb94d1c](https://github.com/ratatui/ratatui/commit/bb94d1c0fad69606d3d7a8323d4a7dff76a00123) *(examples)* Move minimal example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1649](https://github.com/ratatui/ratatui/pull/1649) - [9f399ac](https://github.com/ratatui/ratatui/commit/9f399ac7a62357644c1fb79f357667b0e36dfef0) *(examples)* Move gauge example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1646](https://github.com/ratatui/ratatui/pull/1646) - [104d6a6](https://github.com/ratatui/ratatui/commit/104d6a6c2b2a06afb076dd339ee6a7900b65f365) *(examples)* Move custom-widget example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1644](https://github.com/ratatui/ratatui/pull/1644) - [fa8ca01](https://github.com/ratatui/ratatui/commit/fa8ca0121aec1a46a444dc0ab0ad0cf2f6a9f9bb) *(examples)* Move flex example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1642](https://github.com/ratatui/ratatui/pull/1642) - [f5fde0e](https://github.com/ratatui/ratatui/commit/f5fde0ef53c51d5bd5256360625c414e7f9428fd) *(examples)* Move constraints example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1641](https://github.com/ratatui/ratatui/pull/1641) - [fc70288](https://github.com/ratatui/ratatui/commit/fc702889549bcf242a2750075234e785f325a3c3) *(examples)* Move constraint-explorer example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1640](https://github.com/ratatui/ratatui/pull/1640) - [325f961](https://github.com/ratatui/ratatui/commit/325f96102a2a798353154430db4c1e9b12e254d9) *(examples)* Move hello-world example to examples folder by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1647](https://github.com/ratatui/ratatui/pull/1647) - [867c4bc](https://github.com/ratatui/ratatui/commit/867c4bc4e9201356f1394c1520e2855c23462de6) *(examples)* Move colors-rgb example to examples folder by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1582](https://github.com/ratatui/ratatui/pull/1582) > - **docs: move colors-rgb example to examples folder** > - **docs: update main examples README** > > *** - [72334ed](https://github.com/ratatui/ratatui/commit/72334ed61cc0ae2936b772b2b035ba9c34149c30) *(layout)* Update documentation to point to `kasuari` solver by [@&#8203;a-kenji](https://github.com/a-kenji) in [#&#8203;2003](https://github.com/ratatui/ratatui/pull/2003) - [2be9ccb](https://github.com/ratatui/ratatui/commit/2be9ccb120d80cf2f98e434bb7b9da5613dfe180) *(layout)* Remove unnecessary path prefix by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1766](https://github.com/ratatui/ratatui/pull/1766) - [b669ceb](https://github.com/ratatui/ratatui/commit/b669cebcaf51cdf8585c48aec0f7282bf492df6c) *(layout)* Change `cassowary` to `kasuari` crate reference by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1765](https://github.com/ratatui/ratatui/pull/1765) - [f907c74](https://github.com/ratatui/ratatui/commit/f907c74bb31e133d47e08684f9199870d1870dbd) *(license)* Update copyright years by [@&#8203;LVivona](https://github.com/LVivona) in [#&#8203;1639](https://github.com/ratatui/ratatui/pull/1639) > Update MIT Licence to copyright year 2025 - [68b9f67](https://github.com/ratatui/ratatui/commit/68b9f67f59ce7b46649fe3c96c558f4b88cd1007) *(readme)* Add `Built with Ratatui` badge for downstream projects by [@&#8203;harilvfs](https://github.com/harilvfs) in [#&#8203;1905](https://github.com/ratatui/ratatui/pull/1905) - [088aac1](https://github.com/ratatui/ratatui/commit/088aac136d8b22557081ab4c657f5c9f5cde80d8) *(readme)* Tweak links and badges by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1598](https://github.com/ratatui/ratatui/pull/1598) - [6e43672](https://github.com/ratatui/ratatui/commit/6e436725e4f8c58be527b07c464a0d8b5d306eb6) *(readme)* Reimagine README.md by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1569](https://github.com/ratatui/ratatui/pull/1569) > This is the result of the re-imagination of a more suitable README.md. It > is simpler and shorter: not giving more information to the user than > they actually need. > > Also updates the quickstart code with the up-to-date version and adds > link to templates which was missing. > > *** - [8f28247](https://github.com/ratatui/ratatui/commit/8f282473b21d7693f20b5f0cdad2f12b9ed209ff) *(readme)* Correct examples links by [@&#8203;HoKim98](https://github.com/HoKim98) in [#&#8203;1484](https://github.com/ratatui/ratatui/pull/1484) - [9f90f74](https://github.com/ratatui/ratatui/commit/9f90f7495fd46b3b7ac34160f094bc1583f82b70) *(readme)* Fix broken link by [@&#8203;nilsmartel](https://github.com/nilsmartel) in [#&#8203;1485](https://github.com/ratatui/ratatui/pull/1485) - [260af68](https://github.com/ratatui/ratatui/commit/260af68a347b527281265f7bf259eb1336aa49b2) *(readme)* Include iocraft as an alternative by [@&#8203;kdheepak](https://github.com/kdheepak) in [#&#8203;1483](https://github.com/ratatui/ratatui/pull/1483) - [8e5151f](https://github.com/ratatui/ratatui/commit/8e5151f83dbd2ec22d618adce4896a4e4466e67e) *(rect)* Fix typo in the Rect::outer function comments by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;2123](https://github.com/ratatui/ratatui/pull/2123) - [40f13c6](https://github.com/ratatui/ratatui/commit/40f13c6a6cff3dfd4f1b8a5fbfe58ca8d9bc450d) *(rect)* Update the outdated comment for Rect::area() by [@&#8203;isgin01](https://github.com/isgin01) in [#&#8203;2100](https://github.com/ratatui/ratatui/pull/2100) > The return value of Rect.area() is no longer of u16 type, and the value > is not being clumped anymore. - [ce16692](https://github.com/ratatui/ratatui/commit/ce16692b9ae6ca8e0fa0e16412cdcfbdbd6f3916) *(release)* Fix typo by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1754](https://github.com/ratatui/ratatui/pull/1754) - [9a930a6](https://github.com/ratatui/ratatui/commit/9a930a6e997e8443a9bdb856097abed6c78290e0) *(terminal)* Made usage of Terminal::get_frame() clearer by [@&#8203;Blaeriz](https://github.com/Blaeriz) in [#&#8203;2071](https://github.com/ratatui/ratatui/pull/2071) > Closes : https://github.com/ratatui/ratatui/issues/1200 > > *** - [b08b4cb](https://github.com/ratatui/ratatui/commit/b08b4cbd5e74961066e1ca7cae6e7ccb3f84fe25) *(terminal)* Add disclaimer about panics to Terminal::new by [@&#8203;lolbinarycat](https://github.com/lolbinarycat) in [#&#8203;2088](https://github.com/ratatui/ratatui/pull/2088) > part of [#&#8203;2087](https://github.com/ratatui/ratatui/issues/2087) > > cc [@&#8203;orhun](https://github.com/orhun) > > *** - [dafb716](https://github.com/ratatui/ratatui/commit/dafb716f9d8acb5dda303dc1e155dc90eb54b926) *(widgets)* Add example for grouped barchart by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1566](https://github.com/ratatui/ratatui/pull/1566) > related [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) > > *** - [ed5dd73](https://github.com/ratatui/ratatui/commit/ed5dd73084e2c8ccf3d36bc23048d67755a90e6a) *(widgets)* Add example for tabs by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1559](https://github.com/ratatui/ratatui/pull/1559) > related [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) > > Also removes the tabs example from ratatui crate since it overlaps with > this new example in terms of functionality and it was not following the > general theme of other examples. - [fab5321](https://github.com/ratatui/ratatui/commit/fab532171d1c8e9639298550565e4eefb8737275) *(widgets)* Add example for scrollbar by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1545](https://github.com/ratatui/ratatui/pull/1545) > Related to: [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) - [898aef6](https://github.com/ratatui/ratatui/commit/898aef6e2f38655e58684a2d842f03bcde0ebf0c) *(widgets)* Add example for list by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1542](https://github.com/ratatui/ratatui/pull/1542) > Related to: [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) - [452366a](https://github.com/ratatui/ratatui/commit/452366aa9e666f26946ebccf6046a0bed393f5c1) *(widgets)* Add example for sparkline by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1556](https://github.com/ratatui/ratatui/pull/1556) > related [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) > > Also removes the sparkline example from ratatui crate since this example > is a simplified and easier to understand version of that - [6ddde0e](https://github.com/ratatui/ratatui/commit/6ddde0e8a84b0909ba5631afac2dfc7878764786) *(widgets)* Add example for table by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1557](https://github.com/ratatui/ratatui/pull/1557) > related [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) - [93ad6b8](https://github.com/ratatui/ratatui/commit/93ad6b828c3a34be982447390d17b7953a9c328e) *(widgets)* Update values in chart example by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1558](https://github.com/ratatui/ratatui/pull/1558) > better stonks - [15f442a](https://github.com/ratatui/ratatui/commit/15f442a71ed4ce3faeaac3b2a3a7798940eb1846) *(widgets)* Add example for paragraph by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1544](https://github.com/ratatui/ratatui/pull/1544) > related [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) > > Also removes the paragraph example from `ratatui` since these examples > are more or less the same. - [17bba14](https://github.com/ratatui/ratatui/commit/17bba14540449ae584a9cafbe2a39cc7fa451ef4) *(widgets)* Move the logo example to widgets by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1543](https://github.com/ratatui/ratatui/pull/1543) > related [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) > > Also updates the code to make it consistent with the other examples - [f2451e7](https://github.com/ratatui/ratatui/commit/f2451e7f1ed1d5bd38e8901f139bc2916a4b005e) *(widgets)* Add example for gauge by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1539](https://github.com/ratatui/ratatui/pull/1539) > related [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) - [4f0a8b2](https://github.com/ratatui/ratatui/commit/4f0a8b21af49b825debb13695f8c1f368f4f56b5) *(widgets)* Add example for canvas by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1533](https://github.com/ratatui/ratatui/pull/1533) > related [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) - [91147c4](https://github.com/ratatui/ratatui/commit/91147c4d75bee207052b06a7dca4b610df321de1) *(widgets)* Add example for chart by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1536](https://github.com/ratatui/ratatui/pull/1536) > stonks - [6dd25a3](https://github.com/ratatui/ratatui/commit/6dd25a311152abf3e0938c9a59e54c98e2a327a6) *(widgets)* Add example for calendar by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1532](https://github.com/ratatui/ratatui/pull/1532) > related [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) - [99ac005](https://github.com/ratatui/ratatui/commit/99ac005b06f807c79060dba43b33ec9b1f7c1a3a) *(widgets)* Add simple barchart example by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1511](https://github.com/ratatui/ratatui/pull/1511) - [b1d47e7](https://github.com/ratatui/ratatui/commit/b1d47e7718b636c9fd5ff48a89da01aabf6ad9ff) *(uncategorized)* Discourage use of `Buffer`'s `pos_of`, `index_of` by [@&#8203;pharrison31415](https://github.com/pharrison31415) in [#&#8203;2225](https://github.com/ratatui/ratatui/pull/2225) > These methods assume that the backing store of any buffer / area is linearly indexable. There are other ways that we might want to experiment in the future with how to store the values (trees, 2D allocated areas that are non-contiguous etc.). The index <-> pos conversion there isn't particularly useful. This should be an internal implementation detail of the buffer, rather than something that we expose, but we're not deprecating this for now at least. - [f8b0594](https://github.com/ratatui/ratatui/commit/f8b0594363ca758e6ec00e3d4ab8aebe86e6ec56) *(uncategorized)* Fix: fix typos by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;2129](https://github.com/ratatui/ratatui/pull/2129) > This fixes the pipeline after bumping typos. - [9998000](https://github.com/ratatui/ratatui/commit/9998000e36d126b408aade980f78865da1359e61) *(uncategorized)* Use shields.io badge by [@&#8203;LitoMore](https://github.com/LitoMore) in [#&#8203;2040](https://github.com/ratatui/ratatui/pull/2040) > Related to: > > - https://github.com/simple-icons/simple-icons/pull/13593 > - https://github.com/ratatui/ratatui/pull/1967 > > The Ratatui icon is available on shields.io now :v: > > And it's customizable. There are more configurations at > https://shields.io/badges. > > Here are some examples: > > ```markdown > ![](https://img.shields.io/badge/Ratatui-000?logo=ratatui&logoColor=fff) > ![](https://img.shields.io/badge/Ratatui-fff?logo=ratatui&logoColor=000) > ![](https://img.shields.io/badge/Built_With-Ratatui-000?logo=ratatui&logoColor=fff&labelColor=000&color=fff) > ![](https://img.shields.io/badge/Ratatui-000?logo=ratatui&logoColor=fff&style=flat-square) > ![](https://img.shields.io/badge/Ratatui-000?logo=ratatui&logoColor=fff&style=for-the-badge) > ``` > > ![](https://img.shields.io/badge/Ratatui-000?logo=ratatui\&logoColor=fff) > ![](https://img.shields.io/badge/Ratatui-fff?logo=ratatui\&logoColor=000) > > ![](https://img.shields.io/badge/Built_With-Ratatui-000?logo=ratatui\&logoColor=fff\&labelColor=000\&color=fff) > > ![](https://img.shields.io/badge/Ratatui-000?logo=ratatui\&logoColor=fff\&style=flat-square) > > ![](https://img.shields.io/badge/Ratatui-000?logo=ratatui\&logoColor=fff\&style=for-the-badge) > > I also created a PR to the ratatui-website project to update the badge. > Here is the PR: > > - https://github.com/ratatui/ratatui-website/pull/924 - [71ef65b](https://github.com/ratatui/ratatui/commit/71ef65b6248bd8b22fe775125447948071868cbe) *(uncategorized)* Add section on collaborative development to contributing doc by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2029](https://github.com/ratatui/ratatui/pull/2029) - [cba5cca](https://github.com/ratatui/ratatui/commit/cba5cca2bd3fcb12d98d174cf648c87bed0f2ab7) *(uncategorized)* Update heading image for Ratatui 0.30.0 release 🎉 by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;2000](https://github.com/ratatui/ratatui/pull/2000) - [9836f07](https://github.com/ratatui/ratatui/commit/9836f0760d4a053d9d1eba78171be89cb22dc850) *(uncategorized)* Add AI contribution guidelines by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2013](https://github.com/ratatui/ratatui/pull/2013) - [98f85b8](https://github.com/ratatui/ratatui/commit/98f85b86502fca754ec25698298684e9acbda746) *(uncategorized)* Update link to scrollable widgets RFC by [@&#8203;MatrixFrog](https://github.com/MatrixFrog) in [#&#8203;1994](https://github.com/ratatui/ratatui/pull/1994) - [055522e](https://github.com/ratatui/ratatui/commit/055522ef7bafa5ed2a9370b9907f647f616cbfb0) *(uncategorized)* Add docs for authoring widget crates by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1955](https://github.com/ratatui/ratatui/pull/1955) > - added Authoring Widget Libraries sub-section > - moved built-in and third-party widgets sections higher - [617d318](https://github.com/ratatui/ratatui/commit/617d31851a30cfe751af421c8c438692c43fff4d) *(uncategorized)* Improve Block docs by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1953](https://github.com/ratatui/ratatui/pull/1953) - [8e2d568](https://github.com/ratatui/ratatui/commit/8e2d568428047994f57886d64d9925d6eace130a) *(uncategorized)* Improve layout related docs by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1948](https://github.com/ratatui/ratatui/pull/1948) > Adds module level docs and more comprehensive docs on all the types in > the layout module > > Fixes [#&#8203;1937](https://github.com/ratatui/ratatui/issues/1937) - [4c708dd](https://github.com/ratatui/ratatui/commit/4c708ddf8a4dfcc7e31435cc9269fce62ef48212) *(uncategorized)* Improve docs for run/init/restore etc. by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1947](https://github.com/ratatui/ratatui/pull/1947) > - **docs: document the init module** > - **docs: use the ratatui::run() methods in the main doc** > - **docs: add more intradoc / website links and historical perspective > on Terminal / backend** > - **docs: add notes about new run/init/restore methods and the > defaultterminal type to terminal docs** - [5620e06](https://github.com/ratatui/ratatui/commit/5620e06b1a52a08684db583c3f543594b58de7fb) *(uncategorized)* Add crate organization sections to workspace by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1946](https://github.com/ratatui/ratatui/pull/1946) > Adds summary-level crate organization documentation to all crates > explaining the modular workspace structure and when to use each crate. > Links to ARCHITECTURE.md for detailed information. - [cfb65e6](https://github.com/ratatui/ratatui/commit/cfb65e64ba9e9758e44c5bfe54adc331a9084932) *(uncategorized)* Add examples for handling state by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1849](https://github.com/ratatui/ratatui/pull/1849) > Added comprehensive state management examples covering both immutable > and mutable patterns and documentation to help developers choose the > right approach for their applications. - [3de41a8](https://github.com/ratatui/ratatui/commit/3de41a8249d221d603ce9f294cac81df62fffc3c) *(uncategorized)* Document widgets module by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1932](https://github.com/ratatui/ratatui/pull/1932) > Adds a good overview of the use and implementation of widget traits. > > Goals with the doc rewrite: > > - document the rationale for the ratatui-widgets crate with info for app > builders and widget makers. > - Show how to use the widgets for rendering as well as implement the > traits- document the differences and reasons for each trait > - document the historical perspective (to make it easy to understand > older Ratatui apps as well as migrate to newer approaches > - give recommended approaches to implementing traits > - explain the differences between Consuming and Shared / Mutable > Reference implementations of Widget > - explain the differences between using StatefulWidget and Mutable > References > - Explain the use case for WidgetRef and StatefulWidgetRef > - Link out to third part widget lists > > Fixes:https://github.com/ratatui/ratatui/issues/366 > > *** - [ca2ad4a](https://github.com/ratatui/ratatui/commit/ca2ad4a1f93432f81a87ca1e3766f510723d3652) *(uncategorized)* Simplify ratatui-macro docs by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1923](https://github.com/ratatui/ratatui/pull/1923) - [92b6a16](https://github.com/ratatui/ratatui/commit/92b6a16bdedb7fd14bafd1f4cbab6ee7b98295e8) *(uncategorized)* Fix grammar in ratatui-widgets README by [@&#8203;sevki](https://github.com/sevki) in [#&#8203;1885](https://github.com/ratatui/ratatui/pull/1885) - [da05957](https://github.com/ratatui/ratatui/commit/da05957fa01fcc420519400d82ef9df6acace0e8) *(uncategorized)* Add widget-ref-container example by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1603](https://github.com/ratatui/ratatui/pull/1603) > Implements ideas alluded to by > <https://discord.com/channels/1070692720437383208/1072907135664529508/1323061053990637640> > and followup conversations. - [1798512](https://github.com/ratatui/ratatui/commit/1798512e94b277fdfafeddb4043f7174ce2ac64a) *(uncategorized)* Fix wording in user_input example by [@&#8203;dawedawe](https://github.com/dawedawe) in [#&#8203;1611](https://github.com/ratatui/ratatui/pull/1611) > Fix wording in `user_input.rs` example. - [03066d8](https://github.com/ratatui/ratatui/commit/03066d81bfc7fb4356e8d188f3d6a15b45509c15) *(uncategorized)* Fix punctuation in canvas.rs documentation by [@&#8203;dawedawe](https://github.com/dawedawe) in [#&#8203;1583](https://github.com/ratatui/ratatui/pull/1583) > Fix end of sentence punctuation in canvas.rs docs. - [e411d9e](https://github.com/ratatui/ratatui/commit/e411d9ec3e921e812b7e8d2836c2ad0b60a0e6f8) *(uncategorized)* Add input form example by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1551](https://github.com/ratatui/ratatui/pull/1551) > Demonstrates how to manage the cursor and input focus with a simple > form. Uses an enum to track the current input field and passes the > input events to the active field. > > This is similar to the json tutorial on the website, but a bit simpler - [ed071f3](https://github.com/ratatui/ratatui/commit/ed071f37232fae47a2193235d57934cc5c678baa) *(uncategorized)* Add mouse-drawing example by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1546](https://github.com/ratatui/ratatui/pull/1546) > Demonstrates how to handle mouse events - [46902f5](https://github.com/ratatui/ratatui/commit/46902f5587efe2b27c39b5e3c39109c62a636ba3) *(uncategorized)* Improve docs for workspace crates by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1490](https://github.com/ratatui/ratatui/pull/1490) > Overall makes improvements in the documentation of the workspace crates and checking them. - [a6b5792](https://github.com/ratatui/ratatui/commit/a6b579223fd83c36e024428df49a3027cd1c21bc) *(uncategorized)* Fix example link in readme by [@&#8203;thomas-tacquet](https://github.com/thomas-tacquet) in [#&#8203;1462](https://github.com/ratatui/ratatui/pull/1462) ##### Performance - [1f41a61](https://github.com/ratatui/ratatui/commit/1f41a610083bb941024bd0116df1f0ac37e9cf33) *(paragraph)* Avoid unnecessary work when rendering by [@&#8203;alexpasmantier](https://github.com/alexpasmantier) in [#&#8203;1622](https://github.com/ratatui/ratatui/pull/1622) > Improve render times for paragraphs that are scrolled. > > Currently all `LineComposer`s are considered to be state machines which > means rendering a paragraph with a given Y offset requires computing the > entire state up to Y before being able to render from Y onwards. > > While this makes sense for Composers such as the `WordWrapper` (where > one needs to consider all previous lines to determine where a given line > will end up), it means it also penalizes Composers which can render a > given line "statelessely" (such as the `LineTruncator`) which actually > end up doing a lot of unnecessary work (and on the critical rendering > path) when the offset gets high. - [ba9eed7](https://github.com/ratatui/ratatui/commit/ba9eed774230d160016605048762cd73944c36e6) *(table)* Replace while loop with simple min operation by [@&#8203;EdJoPaTo](https://github.com/EdJoPaTo) in [#&#8203;1747](https://github.com/ratatui/ratatui/pull/1747) ##### Styling - [345f47e](https://github.com/ratatui/ratatui/commit/345f47e044c3dd2a2779523c32028fa8860d3215) *(rect)* Use plus operator for offset by [@&#8203;pharrison31415](https://github.com/pharrison31415) in [#&#8203;2251](https://github.com/ratatui/ratatui/pull/2251) > ## Summary > > Use `+` operator to move `Rect` by an `Offset` as added > [here](https://github.com/ratatui/ratatui/pull/1596). > > Includes change to use `Offset::new()` in place of `Offset { ... }` - [ac60de3](https://github.com/ratatui/ratatui/commit/ac60de3960c9d65b71224ed8a628cda171fe29f5) *(uncategorized)* Fix wrapping in doc comment by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2104](https://github.com/ratatui/ratatui/pull/2104) - [2739391](https://github.com/ratatui/ratatui/commit/2739391950eddd129c25cd4ffddb28b99eed8cf5) *(uncategorized)* Use Module imports_granularity by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1728](https://github.com/ratatui/ratatui/pull/1728) > I was swayed by the arguments about this made by the compiler team In > [rust-lang/compiler-team#750](https://github.com/rust-lang/compiler-team/issues/750) and decided to > look at how this organization affects ratatui. I found this reduces the > number of lines across the codebase by about 350 and makes the imports > more readable and definitely more greppable as you usually only have > to read a single line. I've found in the past that maintaining imports > regularly leads to merge conflicts which have to be resolved by hand > and this change should reduce the likelihood of that happening. > > Main change is in rustfmt.toml, and the rest is just the result of > running `cargo xtask format`. > > While implementing this, cargo machete brings up that the various > backend crates are unused by the example crates. > > The re-export of each backend crate under ratatui is to make it possible > for libs that rely on a specific version of ratatui to use the same > version of the backend crate. Apps in general should use the backend > crate directly rather than through ratatui as this is less confusing. > > - Removes all usages of \`ratatui::{crossterm, termion, termwiz}\`\` in the > examples. > - Adds the backend crate to the dependencies of the examples that use > the backend crate directly. ##### Testing - [db65aa0](https://github.com/ratatui/ratatui/commit/db65aa0ef707c282b3292739f3d6d7c20559c2a7) *(bench)* Add benchmark for text by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;2160](https://github.com/ratatui/ratatui/pull/2160) > [#&#8203;2138](https://github.com/ratatui/ratatui/issues/2138) > > *** - [a21501f](https://github.com/ratatui/ratatui/commit/a21501f7f4373e32cf00f76a6d3f453f110b2761) *(bench)* Added a benchmark for constraints by [@&#8203;kashregister](https://github.com/kashregister) in [#&#8203;2043](https://github.com/ratatui/ratatui/pull/2043) > I've added a new benchmark for constraints, which only takes into > account the time it takes to generate a full layout using a single type > of constraints only. Avoided rendering here as it resulted in more > inaccurate benchmarks, and i believe it should be separated nonetheless. - [94ba82e](https://github.com/ratatui/ratatui/commit/94ba82e9ca1a03c60082d469d43dab8ad392bdab) *(gauge)* Add benchmarks for gauge by [@&#8203;WaterWhisperer](https://github.com/WaterWhisperer) in [#&#8203;2221](https://github.com/ratatui/ratatui/pull/2221) - [39cd313](https://github.com/ratatui/ratatui/commit/39cd313b3b70eb2dcf4ea465079fa8a4043b8e9e) *(layout)* Add visual buffer tests for Rect methods by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;2124](https://github.com/ratatui/ratatui/pull/2124) - [8aefc06](https://github.com/ratatui/ratatui/commit/8aefc06a90be113b733a570348cb82f251cea01e) *(macros)* Regenerate trybuild stderr by [@&#8203;ognis1205](https://github.com/ognis1205) in [#&#8203;2093](https://github.com/ratatui/ratatui/pull/2093) > ### Overview > > Updated the `.stderr` file corresponding to the > `ratatui-macros/tests/ui/fails.rs` compile-fail test. > > ### Changes > > - Updated `tests/ui/fails.stderr` to match the new compiler output. > > ### Impact > > - Affects only the trybuild UI tests > - No impact on production code > > ### Notes > > - The `.stderr` was generated using `TRYBUILD=overwrite cargo test`. > > Closes https://github.com/ratatui/ratatui/issues/2094 - [55a95e6](https://github.com/ratatui/ratatui/commit/55a95e67bce3e745ac766d1d8633b42ee289d6f9) *(rect)* Mutual intersection agreement by [@&#8203;pharrison31415](https://github.com/pharrison31415) in [#&#8203;2252](https://github.com/ratatui/ratatui/pull/2252) - [deb1b8e](https://github.com/ratatui/ratatui/commit/deb1b8ec43d8c9e5b1a5469dc4fa4c7e86d86d9b) *(uncategorized)* Ensure Style::new() and Style::default() are equivalent by [@&#8203;cgzones](https://github.com/cgzones) in [#&#8203;1789](https://github.com/ratatui/ratatui/pull/1789) ##### Miscellaneous Tasks - [abe2f27](https://github.com/ratatui/ratatui/commit/abe2f273289d3798968a645a38a7a38571530065) *(backend)* Change From<T> impls to new backend specific IntoBackend and FromBackend traits by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1464](https://github.com/ratatui/ratatui/pull/1464) \[**breaking**] > Adds two traits `IntoCrossterm` and `FromCrossterm` for converting > between ratatui and crossterm types. This is necessary in order to avoid > the orphan rule when implementing `From` for crossterm types once the > crossterm types are moved to a separate crate. > > Similarly Termwiz and Termwiz gain FromTermion, IntoTermion, FromTermwiz > and IntoTermwiz traits. > > BREAKING CHANGE:The `From` and `Into` impls for backend types are now > replaced > with specific backend traits. > > ```diff > + use ratatui::backend::{FromCrossterm, IntoCrossterm}; > > let crossterm_color = crossterm::style::Color::Black; > - let ratatui_color = crossterm_color.into(); > - let ratatui_color = ratatui::style::Color::from(crossterm_color); > + let ratatui_color = ratatui::style::Color::from_crossterm(crossterm_color); > - let crossterm_color = ratatui_color.into(); > - let crossterm_color = crossterm::style::Color::from(ratatui_color); > + let crossterm_color = ratatui_color.into_crossterm(); > > let crossterm_attribute = crossterm::style::types::Attribute::Bold; > - let ratatui_modifier = crossterm_attribute.into(); > - let ratatui_modifier = ratatui::style::Modifier::from(crossterm_attribute); > + let ratatui_modifier = ratatui::style::Modifier::from_crossterm(crossterm_attribute); > - let crossterm_attribute = ratatui_modifier.into(); > - let crossterm_attribute = crossterm::style::types::Attribute::from(ratatui_modifier); > + let crossterm_attribute = ratatui_modifier.into_crossterm(); > ``` > > Similar conversions for `ContentStyle` -> `Style` and `Attributes` -> > `Modifier` exist for Crossterm, > and all the Termion and Termwiz types. > > *** - [0a47ebd](https://github.com/ratatui/ratatui/commit/0a47ebd94bbc7a89c9e2aa893cf13a988756ec19) *(bencher)* Update bencher CLI usage by [@&#8203;epompeii](https://github.com/epompeii) in [#&#8203;1470](https://github.com/ratatui/ratatui/pull/1470) - [b46778d](https://github.com/ratatui/ratatui/commit/b46778dd1dbb3de344a491d4cff629b1339eeaa4) *(breaking-changes)* Add details to `no_std`-related breaking changes by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1828](https://github.com/ratatui/ratatui/pull/1828) > Some corrections and added details to BREAKING-CHANGES.md. > > I decided to remove: > > - `Backend` now uses `Self::Error` for error handling instead of > `std::io::Error` > - `Terminal<B>` now uses `B::Error` for error handling instead of > `std::io::Error` > > ...as we are still using `std::io::Error` in built-in backends, so this > will only be breaking if a third-party backend decides to use a custom > error other than `std::io::Error`, which would be a breaking change in > downstream and not `ratatui`. > > The exception to that is `TestBackend`, which uses `Infallible`, but > this already has its own breaking changes entry. - [a0979d6](https://github.com/ratatui/ratatui/commit/a0979d68715b2c67b32b8909189bc103f0e81f6e) *(build)* Remove cargo lint by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1549](https://github.com/ratatui/ratatui/pull/1549) > Duplicate crate lint is too noisy and sensitive to upstream changes - [3812f69](https://github.com/ratatui/ratatui/commit/3812f699976ca73c39cf838e4a8737e96169e8d0) *(cargo)* Update the documentation metadata for crates by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;2170](https://github.com/ratatui/ratatui/pull/2170) > also follows the same format for the entries (`name` -> `version` -> > `description` -> etc. in order) - [ae43ea7](https://github.com/ratatui/ratatui/commit/ae43ea796a770330d82a3e0687c0a0057b6b07ca) *(cell)* Use Option instead of space (" ") for symbol by [@&#8203;joshka](https://github.com/joshka) > This change makes the `Cell::symbol` field an `Option<CompactString>`, > allowing it to represent an empty cell as `None` instead of an empty > string. The rationale for this is to later allow the merge symbol > functionality to act differently based on whether a cell has previously > held a symbol or not, rather than always merging with an empty string. > This will help make it possible to merge borders with titles with spaces > and other symbols, without assuming that an empty string is always > equivalent to no symbol. > > - Default is now derived as `Option::None` works correctly. > - PartialEq and Eq implementations are updated to treat `None` the same > as an empty string. > - merge_symbol against an empty cell will now just set the symbol > rather than calling MergeStrategy::merge with an empty string. > - PartialEq, and Hash are manually implemented instead of being > derived, and are updated to treat `None` equal to an empty string. - [0fbefe9](https://github.com/ratatui/ratatui/commit/0fbefe9389708e2f76003c16ee02dcab6c83017f) *(ci)* Don't fail on cargo-deny advisories by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2237](https://github.com/ratatui/ratatui/pull/2237) > Instead of failing on advisories, run the cargo-deny check, and report > the failure. > > Uses the cargo-deny-action instead of installing this manually. > > https://github.com/EmbarkStudios/cargo-deny-action/tree/v2?tab=readme-ov-file#recommended-pipeline-if-using-advisories-to-avoid-sudden-breakages > (bumped to use rust stable, and log level info) - [887a636](https://github.com/ratatui/ratatui/commit/887a6366e5deee79597f674a25bd45f21357a3c6) *(ci)* Override RUSTUP_TOOLCHAIN for the check step by [@&#8203;ognis1205](https://github.com/ognis1205) in [#&#8203;2116](https://github.com/ratatui/ratatui/pull/2116) > Summary > Fixes an issue where the "check" CI jobs for MSRV and stable were > unintentionally using the stable toolchain from `rust-toolchain.toml` > instead of the matrix-specified toolchain. > > Details > > - Added `RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }}` to the "check" job > in CI configuration. > > Additional Context > > - https://github.com/ratatui/ratatui/pull/2106 > - > > https://discord.com/channels/1070692720437383208/1072879985762762812/1422345357131780177 > > - https://rust-lang.github.io/rustup/overrides.html#overrides - [34baaf1](https://github.com/ratatui/ratatui/commit/34baaf11376ececf8b8e0370d25a017f3e86f862) *(ci)* Override the toolchain for CI runs by [@&#8203;ognis1205](https://github.com/ognis1205) in [#&#8203;2106](https://github.com/ratatui/ratatui/pull/2106) > ### Summary > > Fixes an issue where the beta CI jobs were unintentionally using the > stable > toolchain from `rust-toolchain.toml` instead of the matrix-specified > toolchain. > This caused clippy to run against the wrong version. > > ### Details > > - Added `RUSTUP_TOOLCHAIN: ${{ matrix.toolchain }}` to the CI > configuration > > ### Additional Context > > - > > https://discord.com/channels/1070692720437383208/1072879985762762812/1421990770482745415 > > - https://rust-lang.github.io/rustup/overrides.html#overrides - [e48aa9e](https://github.com/ratatui/ratatui/commit/e48aa9ec0983d3578d97b58d6c262ed508d8627e) *(ci)* Stop publish-alpha from running on forks by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1916](https://github.com/ratatui/ratatui/pull/1916) > I can't sleep because every Saturday alpha release fails on my ratatui > fork. This should fix my insomnia. - [b3f3c9b](https://github.com/ratatui/ratatui/commit/b3f3c9bfd5c0169bf854b422cea7091a9ebcfa39) *(ci)* Disable running release-plz on forked repositories by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1730](https://github.com/ratatui/ratatui/pull/1730) > See https://github.com/jdssl/ratatui/pull/1#issuecomment-2739366609 - [eaa4038](https://github.com/ratatui/ratatui/commit/eaa403856ecb60338619e2e727a0388187ae017c) *(ci)* Install pre-built binaries for cargo-rdme by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1477](https://github.com/ratatui/ratatui/pull/1477) > `install-action` uses `cargo-binstall` to install the pre-built binaries > of `cargo-rdme` (which was released in > https://github.com/orium/cargo-rdme/releases/tag/v1.4.7). > > This will make the `check-readme` step faster in CI (now takes only 10 > seconds). - [e5e2316](https://github.com/ratatui/ratatui/commit/e5e2316451fb4c085f205b4884cc82ba8a4930e6) *(ci)* Add check for keeping README.md up-to-date by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1473](https://github.com/ratatui/ratatui/pull/1473) - [2ef3583](https://github.com/ratatui/ratatui/commit/2ef3583effdeb6492d76d977177b4363129a8c8c) *(ci)* Replace cargo-make with a custom cargo-xtask by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1461](https://github.com/ratatui/ratatui/pull/1461) > This removes the need for cargo-make and replaces it with a custom xtask > binary. See <https://github.com/matklad/cargo-xtask> for info. > > Rearranges the CI workflow to use the new xtask and simplify which > workflows that run. > > *** - [98df774](https://github.com/ratatui/ratatui/commit/98df774d7f9b69a2a474d25adf38e38a428f1b77) *(core)* Move core types to ratatui-core by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1460](https://github.com/ratatui/ratatui/pull/1460) > The buffer, layout, style, symbols, text, and the top level of widgets > modules are moved to ratatui-core. This is the first step in > modularizing the library so that the core types can be used in other > projects without the need for the backend / widgets types. > > This helps reduce the need for updating other crates as often due to > semver changes outside of the core types. > > *** - [35eba76](https://github.com/ratatui/ratatui/commit/35eba76b4dff047dde2d1e01bc427eb1b992b490) *(example)* Move demo2 to top level folder by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1524](https://github.com/ratatui/ratatui/pull/1524) - [5f57d35](https://github.com/ratatui/ratatui/commit/5f57d3523436e944b60ccc7a937d69336c9f82b8) *(examples)* Add colors explorer demo app by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1580](https://github.com/ratatui/ratatui/pull/1580) > related [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) > > Moves the colors examples to apps - [5c021bf](https://github.com/ratatui/ratatui/commit/5c021bf344b17fc4075e9663dfb270bead180e25) *(examples)* Add chart demo app by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1579](https://github.com/ratatui/ratatui/pull/1579) > related [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) > > Moves the chart example to apps - [9721300](https://github.com/ratatui/ratatui/commit/9721300a473096daf6b34f6cc7c13643d61a4e00) *(examples)* Add canvas demo app by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1578](https://github.com/ratatui/ratatui/pull/1578) > related [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) > > This moves the canvas example to the apps and adds some interactivity > via changing the marker by pressing enter. - [a6a1368](https://github.com/ratatui/ratatui/commit/a6a13682507846320a79538ffad673a58c1143f0) *(examples)* Add calendar explorer demo app by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1571](https://github.com/ratatui/ratatui/pull/1571) > Related to [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) > > As discussed, this moves the calendar example from ratatui to app > examples as an "explorer" example. It also adds interactivity where you > can press s to toggle between different styles of calendars. > > *** - [819e92c](https://github.com/ratatui/ratatui/commit/819e92cd44b6bee7d21115ff465c2f3f8c82ed9b) *(examples)* Add weather demo app by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1567](https://github.com/ratatui/ratatui/pull/1567) > related to [#&#8203;1512](https://github.com/ratatui/ratatui/issues/1512) - [b5f7e44](https://github.com/ratatui/ratatui/commit/b5f7e4418364c9710d14567c73122af67e0a63ae) *(examples)* Move async example to apps by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1503](https://github.com/ratatui/ratatui/pull/1503) > Move async example to examples/apps/async as full project. > Simplify a little by removing the need for the github api token. - [17316ec](https://github.com/ratatui/ratatui/commit/17316ec5d0a4807600dd116736d66938b985e718) *(github)* Enable sponsorship button by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1478](https://github.com/ratatui/ratatui/pull/1478) - [d02995f](https://github.com/ratatui/ratatui/commit/d02995fda106fa6c88bb086c5def995a584b4496) *(gitignore)* Add `.env` to `.gitignore` by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1949](https://github.com/ratatui/ratatui/pull/1949) - [b4a71e5](https://github.com/ratatui/ratatui/commit/b4a71e5fd5c5a77efff4a48920e29171face1e79) *(lint)* Add `std` instead of `core`/`alloc` lints to `ratatui-widgets` by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1763](https://github.com/ratatui/ratatui/pull/1763) > Resolves [#&#8203;1761](https://github.com/ratatui/ratatui/issues/1761) - [cef617c](https://github.com/ratatui/ratatui/commit/cef617cc35b9ddba97bb435a8f70f6b8d71ab810) *(lint)* Add `std` instead of `core`/`alloc` lints to `ratatui-core` by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1759](https://github.com/ratatui/ratatui/pull/1759) > Resolves [#&#8203;1752](https://github.com/ratatui/ratatui/issues/1752) - [d3f01eb](https://github.com/ratatui/ratatui/commit/d3f01ebf6ea97e71bcda8c84b054943e1f24cd4e) *(lint)* Ensure lint config is correct by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1528](https://github.com/ratatui/ratatui/pull/1528) > - Move lints to workspace manifest > - Add lint config to backend crates > - Fix one small lint error - [9fb0544](https://github.com/ratatui/ratatui/commit/9fb054453dba7af8f99c1c3dc658120f64fbd796) *(release)* Initialize release-plz by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1550](https://github.com/ratatui/ratatui/pull/1550) > See https://github.com/ratatui/ratatui/pull/1550 - [60a8191](https://github.com/ratatui/ratatui/commit/60a81913ede6ebc23b53b3e4e3a54ee0171d9447) *(widgets)* Move crossterm to dev-dependencies by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1834](https://github.com/ratatui/ratatui/pull/1834) > Crossterm in widgets is used only in tests. - [2b7ec5c](https://github.com/ratatui/ratatui/commit/2b7ec5cb7f34edb65fc81d362d3b512b98d246ac) *(widgets)* Enable calendar widget as default by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1521](https://github.com/ratatui/ratatui/pull/1521) > We now expect that you disable the default features if you want less > dependencies - [714c658](https://github.com/ratatui/ratatui/commit/714c6584c3f2a66721ab394e9ea18e3db57f9934) *(workspace)* Use ratatui dependency from the workspace by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;2169](https://github.com/ratatui/ratatui/pull/2169) > Fix [#&#8203;2166](https://github.com/ratatui/ratatui/issues/2166) - [d201b8e](https://github.com/ratatui/ratatui/commit/d201b8e5ddd98a1887252179dec8f09e1f342b0c) *(xtask)* Check lints for only library targets by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1531](https://github.com/ratatui/ratatui/pull/1531) > Makes it possible to filter workspace packages by their targets. > (e.g. when we want to retrieve all the binary targets / examples, etc.) - [b7ecef0](https://github.com/ratatui/ratatui/commit/b7ecef086d9fce4b51adee88974887d2264c303b) *(uncategorized)* Expose crossterm 0.28/0.29 feature flags in Ratatui by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;2270](https://github.com/ratatui/ratatui/pull/2270) > In docs we currently say that individual versions of crossterm could be > enabled like this: > > ```toml > ratatui = { version = "0.30.0-beta", features = ["crossterm_0_28"] } > ``` > > However this wasn't actually possible: > > package `x` depends on `ratatui` with feature `crossterm_0_28` but `ratatui` does not have that feature. > > failed to select a version for `ratatui` which could resolve this conflict > > This PR fixes that by exposing respective feature flags. > (Tested locally) > > *** - [297d264](https://github.com/ratatui/ratatui/commit/297d264c6be3ed8fd701c33daf263e32df127177) *(uncategorized)* Update maintainers by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;2122](https://github.com/ratatui/ratatui/pull/2122) - [91fa249](https://github.com/ratatui/ratatui/commit/91fa249cd49aa3ad29ff4ee70b8fc6fe8bdad382) *(uncategorized)* Remove obsolete doc_auto_cfg feature by [@&#8203;ognis1205](https://github.com/ognis1205) in [#&#8203;2103](https://github.com/ratatui/ratatui/pull/2103) > The doc_auto_cfg feature was incorporated into the doc_cfg feature > in https://github.com/rust-lang/rust/pull/138907 > > Closes [#&#8203;2102](https://github.com/ratatui/ratatui/issues/2102) - [46e7c6c](https://github.com/ratatui/ratatui/commit/46e7c6cbbfbe697c224005822191e95ff5b3da3d) *(uncategorized)* Document rustfmt options by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2055](https://github.com/ratatui/ratatui/pull/2055) - [719badb](https://github.com/ratatui/ratatui/commit/719badb5b8e9ae1b7350a7bf59e5b4be513097c5) *(uncategorized)* Skip `alpha` and `beta` tags in `cliff.toml` by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;2026](https://github.com/ratatui/ratatui/pull/2026) > https://github.com/ratatui/ratatui/pull/2025#issuecomment-3135177683 - [0afb1a9](https://github.com/ratatui/ratatui/commit/0afb1a99af8310c29c738bd092e4d08c668955bf) *(uncategorized)* Ignore `beta` and `rc` tags in `cliff.toml` by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;2025](https://github.com/ratatui/ratatui/pull/2025) - [5ae224b](https://github.com/ratatui/ratatui/commit/5ae224b244a61d9d1460d7e1b0c448dd7cf72933) *(uncategorized)* Prepare for beta release by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;2022](https://github.com/ratatui/ratatui/pull/2022) - [cfebd68](https://github.com/ratatui/ratatui/commit/cfebd68e18847f55f54f3610c863c8cfa4b4e49c) *(uncategorized)* Fix typo in CONTRIBUTING.md by [@&#8203;kdheepak](https://github.com/kdheepak) in [#&#8203;2001](https://github.com/ratatui/ratatui/pull/2001) > Removes a hanging opening code block: > > ```suggestion - [572749f](https://github.com/ratatui/ratatui/commit/572749f3884fb07d91fa89a74a56b7d1937c8024) *(uncategorized)* Update contributing guidelines and add copilot-instructions by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1998](https://github.com/ratatui/ratatui/pull/1998) > See > https://docs.github.com/en/copilot/how-tos/agents/copilot-code-review/using-copilot-code-review > > These instructions will be used by copilot when it performs automated PR > reviews, and helps provide guardrails for our standards. Over time we > might grow these to capture any consistent problems that we start seeing > when reviewing. > > *** - [0148b62](https://github.com/ratatui/ratatui/commit/0148b62f0c7e3929804ba16160bd28411e1cad87) *(uncategorized)* Remove cargo_metadata dep from xtask by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1993](https://github.com/ratatui/ratatui/pull/1993) > Removed due to hard N-2 MSRV requirement, whereas we use a soft N-2 > (only update when necessary). This makes it painful to be able to test > our actual msrv (as the xtask has to be built with the version that its > deps support, while still wanting to check the msrv version, so we'd end > up with 2 versions in the one CI task and this would get annoying to > check). > > See https://github.com/rust-lang/cargo/issues/15746 for more details. > > Partially implements [#&#8203;1820](https://github.com/ratatui/ratatui/issues/1820) - mainly as a problem solution rather than a > specific goal to use cargo-hack - [9bc5739](https://github.com/ratatui/ratatui/commit/9bc573931c187dbfae04d8c9d8ca2aee4d1991f0) *(uncategorized)* Remove clap-cargo from xtask by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1992](https://github.com/ratatui/ratatui/pull/1992) > Removed to avoid needing to bump our msrv. See > https://github.com/rust-lang/cargo/issues/15746#issuecomment-3071774343 > for more details. - [0e10170](https://github.com/ratatui/ratatui/commit/0e10170e197b152bfe250a81804d8a782c7b492f) *(uncategorized)* Change Borders::NONE to a proper const by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1985](https://github.com/ratatui/ratatui/pull/1985) > https://docs.rs/bitflags/latest/bitflags/#zero-bit-flags > > > Flags with no bits set should be avoided because they interact > > strangely with > > [Flags::contains](https://docs.rs/bitflags/latest/bitflags/trait.Flags.html#method.contains) > and > > [Flags::intersects](https://docs.rs/bitflags/latest/bitflags/trait.Flags.html#method.intersects). > A zero-bit flag is always contained, but is never intersected. The names > of zero-bit flags can be parsed, but are never formatted. > > Removing this simplifies the manual Debug impl that previously had to > check for Borders::NONE and now does not. - [8e3bd11](https://github.com/ratatui/ratatui/commit/8e3bd11d60472734cfe0b5221cd3472acb435317) *(uncategorized)* Add svg logo asset by [@&#8203;LitoMore](https://github.com/LitoMore) in [#&#8203;1967](https://github.com/ratatui/ratatui/pull/1967) > Added a shields.io style svg logo and a nicer version of the original logo. > The simplified icon will be added and available directly from shields.io via: > > - https://github.com/simple-icons/simple-icons/pull/13593 - [92bb9b2](https://github.com/ratatui/ratatui/commit/92bb9b22198ac06439d14b4c6d4d0c4882e55eb1) *(uncategorized)* Remove `Title` references by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1943](https://github.com/ratatui/ratatui/pull/1943) - [d6647db](https://github.com/ratatui/ratatui/commit/d6647db74486117affb20104c25b0645f32ce684) *(uncategorized)* Remove some allow attributes for fixed clippy bugs by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1944](https://github.com/ratatui/ratatui/pull/1944) - [3f48bde](https://github.com/ratatui/ratatui/commit/3f48bde3c6a39dd309bc101a830aaecc553b8f93) *(uncategorized)* Remove OpenSSL license by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1942](https://github.com/ratatui/ratatui/pull/1942) > Only keep licenses in the allow list that are actually used - [4c86513](https://github.com/ratatui/ratatui/commit/4c86513790a12d7a4d9e38959430395a3a7dc868) *(uncategorized)* Remove block::Title by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1926](https://github.com/ratatui/ratatui/pull/1926) > The title alignment is better expressed in the `Line` as this fits more > coherently with the rest of the library. > > BREAKING CHANGES: > > - `widgets::block` is no longer exported > - `widgets::block::Title` no longer exists > - `widgets::block::Position` is now `widgets::TitlePosition` > - `Block::title()` now accepts `Into::<Line>` instead of `Into<Title>` > - `BlockExt` is now exported at widgets::`BlockExt` > > Closes:https://github.com/ratatui/ratatui/issues/738 - [272f5c0](https://github.com/ratatui/ratatui/commit/272f5c05dc4399389c011d8693bae073523aebfb) *(uncategorized)* Fix new lints by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1922](https://github.com/ratatui/ratatui/pull/1922) - [770cb7c](https://github.com/ratatui/ratatui/commit/770cb7c3c31fd23b3ecc48c1f267e40f9f98b583) *(uncategorized)* Add tests for combining list styles by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1884](https://github.com/ratatui/ratatui/pull/1884) - [dbfb2c3](https://github.com/ratatui/ratatui/commit/dbfb2c3399a4dee59d4e3154798df792b551a344) *(uncategorized)* Upgrade to Rust Edition 2024 by [@&#8203;MatrixFrog](https://github.com/MatrixFrog) in [#&#8203;1863](https://github.com/ratatui/ratatui/pull/1863) > https://doc.rust-lang.org/edition-guide/rust-2024/index.html > > Fixes [#&#8203;1727](https://github.com/ratatui/ratatui/issues/1727) - [7cb35d4](https://github.com/ratatui/ratatui/commit/7cb35d4be14c1bbb4e5cb9aa51d9120517fa3a3e) *(uncategorized)* Update to Rust version 1.85.0 by [@&#8203;MatrixFrog](https://github.com/MatrixFrog) in [#&#8203;1860](https://github.com/ratatui/ratatui/pull/1860) > This is a small step toward fixing [#&#8203;1727](https://github.com/ratatui/ratatui/issues/1727) - [a07f5be](https://github.com/ratatui/ratatui/commit/a07f5bec2058872218c973f56e7f7a05ffa565a0) *(uncategorized)* Move dependency management to workspace by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1858](https://github.com/ratatui/ratatui/pull/1858) > Move all dependency management to the workspace level. This makes it > easier to manage dependencies across multiple crates in the workspace. > > This also changes the versions of each dependency to track based on the > semver compatible version of the dependency (e.g. 0.1 instead of 0.1.0 > or 2.9 instead of 2.9.0 to avoid having to regularly update the toml > files and to communicate that Ratatui will still generally work with > versions of the dependencies that are not the fully latest version. The > exact version of the dependencies is still tracked in the Cargo.lock > file. > > Several dependencies that are fairly stable are changed to track a less > specific version (e.g. serde 1 instead of 1.0.x). > > The following dependencies are updated to their latest versions: > > - bitflags (2.3 -> 2.9) > - strum (0.26 -> 0.27) > - strum_macros (0.26 -> 0.27) > - all other semver compatible updates - [1874b9d](https://github.com/ratatui/ratatui/commit/1874b9dd55284952931d58646904f0437e48ce76) *(uncategorized)* Move time to dev-dependencies by [@&#8203;j-g00da](https://github.com/j-g00da) in [#&#8203;1835](https://github.com/ratatui/ratatui/pull/1835) - [d88cd29](https://github.com/ratatui/ratatui/commit/d88cd2907906e38d73ac4359ece36527436d686a) *(uncategorized)* Add 'const' to functions where possible. by [@&#8203;MatrixFrog](https://github.com/MatrixFrog) in [#&#8203;1802](https://github.com/ratatui/ratatui/pull/1802) > The Clippy check for this (missing_const_for_fn) is already enabled, but > catches more cases in upcoming toolchain versions. > > This is part of the work to unblock [#&#8203;1727](https://github.com/ratatui/ratatui/issues/1727) - [bb06889](https://github.com/ratatui/ratatui/commit/bb068892c93713befbc8dab04577cbc2a59cedec) *(uncategorized)* Fix io_other_error clippy lints by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1756](https://github.com/ratatui/ratatui/pull/1756) > Pre-emptive fix for new lint to be added in 1.87 (currently in beta). > > https://rust-lang.github.io/rust-clippy/master/index.html#io_other_error - [0f80c5e](https://github.com/ratatui/ratatui/commit/0f80c5e87eb4e47c818a6bd8b0002971920c65a0) *(uncategorized)* Use expect() instead of allow() for lint overrides by [@&#8203;cgzones](https://github.com/cgzones) in [#&#8203;1786](https://github.com/ratatui/ratatui/pull/1786) \[**breaking**] > BREAKING CHANGE:MSRV is now 1.81 - [fe8577c](https://github.com/ratatui/ratatui/commit/fe8577c0704495c0a98705bc1b036b1a60123f02) *(uncategorized)* Remove paste dependency by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1713](https://github.com/ratatui/ratatui/pull/1713) > The paste crate is no longer maintained. Replaces the usages of this in > the Stylize declarative macros with hard coded values. These macros are > internal implementation detail to ratatui and so the changes should have > no impact on users. > > Fixes:https://github.com/ratatui/ratatui/issues/1712 - [255e466](https://github.com/ratatui/ratatui/commit/255e4661a8432993a40e20382c290d37aabc5ad3) *(uncategorized)* Cargo update - pull in fixed version of ring crate by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1710](https://github.com/ratatui/ratatui/pull/1710) - [f05feac](https://github.com/ratatui/ratatui/commit/f05feac337d459e6e1fbebef519d4f1845de5d8d) *(uncategorized)* Sort dependencies in Cargo.toml by [@&#8203;canac](https://github.com/canac) in [#&#8203;1662](https://github.com/ratatui/ratatui/pull/1662) - [7eab88f](https://github.com/ratatui/ratatui/commit/7eab88fe9ab207f6df02581a873b6cb2c2b0a9d5) *(uncategorized)* Remove unused deps by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1661](https://github.com/ratatui/ratatui/pull/1661) - [37a1c6f](https://github.com/ratatui/ratatui/commit/37a1c6f89b284254460702a87118ec9358987980) *(uncategorized)* Remove some examples by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1645](https://github.com/ratatui/ratatui/pull/1645) - [6f21319](https://github.com/ratatui/ratatui/commit/6f213191efd528fd7e0d5c99fda3e6d028ee0f98) *(uncategorized)* Rename examples with clashing names by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1597](https://github.com/ratatui/ratatui/pull/1597) > These will eventually be moved / consolidated elsewhere, but this clears > the warnings while building for now. - [11cbb2b](https://github.com/ratatui/ratatui/commit/11cbb2ba87e557a04674973a39d59124d8683ed1) *(uncategorized)* Use cargo xtask for bacon clippy command by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1592](https://github.com/ratatui/ratatui/pull/1592) - [b544e39](https://github.com/ratatui/ratatui/commit/b544e394c97fffdeddaccd44bea2214ebffa1616) *(uncategorized)* Use clap instead of argh for demo example by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1591](https://github.com/ratatui/ratatui/pull/1591) - [9a54198](https://github.com/ratatui/ratatui/commit/9a541981b8accd9efe17c0893d18b520bc569b15) *(uncategorized)* Make source files non-executable by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;1577](https://github.com/ratatui/ratatui/pull/1577) > ```bash > find . -type f -not -path './.git/*' -not -name '*.bash' -exec chmod 644 {} + > ``` > > fixes [#&#8203;1576](https://github.com/ratatui/ratatui/issues/1576) - [357ae7e](https://github.com/ratatui/ratatui/commit/357ae7e251721f2e7fcb539de5e6fc60eaa30e29) *(uncategorized)* Move terminal types to ratatui-core by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1530](https://github.com/ratatui/ratatui/pull/1530) \[**breaking**] > - Move Terminal, TerminalOptions, ViewPort, CompletedFrame, Frame to > ratatui-core crate > - Move render_widget_ref() and render_stateful_widget_ref() to extension > trait (FrameExt) due as the Ref types are unstable and kept in the > main lib instead of -core > - Fix rustdoc errors / feature config issues > > BREAKING CHANGE:to call `Frame::render_widget_ref()` or > > `Frame::render_stateful_widget_ref()` you now need to import the > FrameExt trait from `ratatui::widgets` and enable the > `unstable-widget-ref` feature. - [21e62d8](https://github.com/ratatui/ratatui/commit/21e62d84c2d2fa2d5563caf0c0974c2514e56ee5) *(uncategorized)* Move the demo example to main folder by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1523](https://github.com/ratatui/ratatui/pull/1523) > Add a top level examples folder for more app-ish examples > Move the demo example into the top level folder. > > *** - [fbf6050](https://github.com/ratatui/ratatui/commit/fbf6050c867b63276ae3d6f5bca4d741c2ce355c) *(uncategorized)* Prepare alpha modularization release by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1525](https://github.com/ratatui/ratatui/pull/1525) > This is the first modularization -alpha release. It captures the changes > necessary to manual publish. And ensures all the crates are properly > setup and to set a baseline for comparison in future release checks etc. > > This does not update / check the git-cliff setup / changelog > > Part of: [#&#8203;1388](https://github.com/ratatui/ratatui/issues/1388) - [e4e95bc](https://github.com/ratatui/ratatui/commit/e4e95bcecf15deb09416a0e53193d261f012222a) *(uncategorized)* Remove --color always flags from bacon.toml by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1502](https://github.com/ratatui/ratatui/pull/1502) > No longer necessary as of bacon 3.3 - [a41c97b](https://github.com/ratatui/ratatui/commit/a41c97b413b28d0db6d1ea09dcc1d5b8556148b1) *(uncategorized)* Move unstable widget refs to ratatui by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1491](https://github.com/ratatui/ratatui/pull/1491) \[**breaking**] > These are less stable than the non-ref traits as we have not yet > committed to the exact API. This change moves them to ratatui from > ratatui-core. > > To facilitate this: > > - implementations of WidgetRef for all internal widgets are removed and > replaced with implementations of Widget for references to those > widgets. > - Widget is now implemented for Option<W> where W: Widget, allowing for > rendering of optional widgets. > - The blanket implementation of Widget for WidgetRef is reversed, to be > a blanket implementation of WidgetRef for all \&W where W: Widget. > > BREAKING CHANGE:implementations of WidgetRef no longer have a blanket > implementation of Widget, so Widgets should generally implement the > Widget trait on a reference to the widget rather than implementing > WidgetRef directly. This has the advantage of not requiring unstable > features to be enabled. > > Part of: https://github.com/ratatui/ratatui/issues/1388 - [e7085e3](https://github.com/ratatui/ratatui/commit/e7085e3a3ec4b3b90a4e69d49add96e7ba65616c) *(uncategorized)* Move widgets into ratatui-widgets crate by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1474](https://github.com/ratatui/ratatui/pull/1474) > All the widgets now live in their own ratatui-widgets crate, but are re-exported in the main ratatui crate. > This makes it easier to use portions of the ratatui library and is part of the effort to modularize > > Part of: [#&#8203;1388](https://github.com/ratatui/ratatui/issues/1388) > > *** - [f1d0a18](https://github.com/ratatui/ratatui/commit/f1d0a1837564d69f00e4b5d9eb94cc001cd3a3a7) *(uncategorized)* Move ratatui crate into workspace folder by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1459](https://github.com/ratatui/ratatui/pull/1459) > This is the first step towards modularization. Handling the move > as a separate step rather than combining it should make it easier > to rebase other PRs when necessary. > > *** - [55fb2d2](https://github.com/ratatui/ratatui/commit/55fb2d2e56b492f0f4131fde9d44951b504cf50c) *(uncategorized)* Update repo links to ratatui instead of ratatui-org by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1458](https://github.com/ratatui/ratatui/pull/1458) ##### Continuous Integration - [c01b7d4](https://github.com/ratatui/ratatui/commit/c01b7d43eaf0bd6bed8e1dc64043aa76cbd8026a) *(uncategorized)* Remove old release workflows by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;2015](https://github.com/ratatui/ratatui/pull/2015) - [02ca587](https://github.com/ratatui/ratatui/commit/02ca5870c58de3dfa192609837a3dbbbdc15c177) *(uncategorized)* Add environment to release workflow by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1983](https://github.com/ratatui/ratatui/pull/1983) > https://github.com/rust-lang/crates.io/issues/11564#issuecomment-3066696820 - [821611f](https://github.com/ratatui/ratatui/commit/821611f76f4c54efd77bf40bf3c23d1e370d8287) *(uncategorized)* Use trusted publishing by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1981](https://github.com/ratatui/ratatui/pull/1981) > https://blog.rust-lang.org/2025/07/11/crates-io-development-update-2025-07/ > > https://crates.io/docs/trusted-publishing - [1f0c2ee](https://github.com/ratatui/ratatui/commit/1f0c2ee18e3b73e5ba672a197e6ed15a0a2dd220) *(uncategorized)* Audit github workflows with zizmor by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1961](https://github.com/ratatui/ratatui/pull/1961) > Fixes https://github.com/ratatui/ratatui/issues/1950 - [a0746ba](https://github.com/ratatui/ratatui/commit/a0746bad7ebf13fd0c34b37ca3013b9ca6f1ce3a) *(uncategorized)* Add job to check no-std build by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1851](https://github.com/ratatui/ratatui/pull/1851) > Uses x86\_64-unknown-none as an arbitrary target that does not support > the std library > > Resolves:https://github.com/ratatui/ratatui/issues/1843 - [5a3be12](https://github.com/ratatui/ratatui/commit/5a3be12ebd4e49ccea809bc65a16f05a168f4242) *(uncategorized)* Run clippy using rust stable and beta by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1757](https://github.com/ratatui/ratatui/pull/1757) > This makes it possible to pre-emptively catch upcoming clippy issues. We > should not block PRs on these generally (unless the PR introduces a > valid clippy warning), so the workflow is set up to not fail on beta. - [e7defb3](https://github.com/ratatui/ratatui/commit/e7defb36decf925dab49dd046959a4b6a2b10d5e) *(uncategorized)* Remove bencher workflows by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1719](https://github.com/ratatui/ratatui/pull/1719) > These actions are currently unused as we haven't > invested the time necessary to understand how best > to use them. We can always re-add them later if we > find them useful. - [9398a25](https://github.com/ratatui/ratatui/commit/9398a2550ada1cc8a7a26ee97381e760fe91aaeb) *(uncategorized)* Add workflow_dispatch trigger for release-plz by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1693](https://github.com/ratatui/ratatui/pull/1693) - [57c2326](https://github.com/ratatui/ratatui/commit/57c2326574d939c7b8a1aab2e7c35bbba480e771) *(uncategorized)* Run cargo-deny directly rather than via action by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1621](https://github.com/ratatui/ratatui/pull/1621) > Improves CI time - [4a871f9](https://github.com/ratatui/ratatui/commit/4a871f993ea38069da513660707a072be299b791) *(uncategorized)* Refactor xtask / toml formatting by [@&#8203;joshka](https://github.com/joshka) in [#&#8203;1602](https://github.com/ratatui/ratatui/pull/1602) > - format toml files using taplo > - add toml formatting check to CI > - use xtask consistently from bacon > - refactor xtask commands to take params instead of multiple commands ##### Reverted Commits - [cace1e0](https://github.com/ratatui/ratatui/commit/cace1e099c338a30535e66e6e6e3696dd0ec98b2) *(release)* Prepare for beta release by [@&#8203;orhun](https://github.com/orhun) in [#&#8203;2117](https://github.com/ratatui/ratatui/pull/2117) > This reverts commit [`5ae224b`](https://github.com/ratatui/ratatui/commit/5ae224b244a61d9d1460d7e1b0c448dd7cf72933) so that > `release-plz` is being triggered again. > > See https://github.com/ratatui/ratatui/pull/2022#issuecomment-3349094310 > for rationale. ##### New Contributors - [@&#8203;sxyazi](https://github.com/sxyazi) made their first contribution in [#&#8203;2267](https://github.com/ratatui/ratatui/pull/2267) - [@&#8203;pharrison31415](https://github.com/pharrison31415) made their first contribution in [#&#8203;2252](https://github.com/ratatui/ratatui/pull/2252) - [@&#8203;sbarral](https://github.com/sbarral) made their first contribution in [#&#8203;2235](https://github.com/ratatui/ratatui/pull/2235) - [@&#8203;j-g00da](https://github.com/j-g00da) made their first contribution in [#&#8203;2236](https://github.com/ratatui/ratatui/pull/2236) - [@&#8203;WaterWhisperer](https://github.com/WaterWhisperer) made their first contribution in [#&#8203;2221](https://github.com/ratatui/ratatui/pull/2221) - [@&#8203;0xb002f0](https://github.com/0xb002f0) made their first contribution in [#&#8203;2223](https://github.com/ratatui/ratatui/pull/2223) - [@&#8203;matthiasbeyer](https://github.com/matthiasbeyer) made their first contribution in [#&#8203;2212](https://github.com/ratatui/ratatui/pull/2212) - [@&#8203;b-guild](https://github.com/b-guild) made their first contribution in [#&#8203;2197](https://github.com/ratatui/ratatui/pull/2197) - [@&#8203;github-actions](https://github.com/github-actions)\[bot] made their first contribution in [#&#8203;2162](https://github.com/ratatui/ratatui/pull/2162) - [@&#8203;marcoieni](https://github.com/marcoieni) made their first contribution in [#&#8203;2119](https://github.com/ratatui/ratatui/pull/2119) - [@&#8203;Blaeriz](https://github.com/Blaeriz) made their first contribution in [#&#8203;2071](https://github.com/ratatui/ratatui/pull/2071) - [@&#8203;ognis1205](https://github.com/ognis1205) made their first contribution in [#&#8203;2116](https://github.com/ratatui/ratatui/pull/2116) - [@&#8203;isgin01](https://github.com/isgin01) made their first contribution in [#&#8203;2100](https://github.com/ratatui/ratatui/pull/2100) - [@&#8203;nornagon](https://github.com/nornagon) made their first contribution in [#&#8203;2063](https://github.com/ratatui/ratatui/pull/2063) - [@&#8203;lolbinarycat](https://github.com/lolbinarycat) made their first contribution in [#&#8203;2088](https://github.com/ratatui/ratatui/pull/2088) - [@&#8203;rcorre](https://github.com/rcorre) made their first contribution in [#&#8203;2057](https://github.com/ratatui/ratatui/pull/2057) - [@&#8203;martinetd](https://github.com/martinetd) made their first contribution in [#&#8203;2053](https://github.com/ratatui/ratatui/pull/2053) - [@&#8203;kashregister](https://github.com/kashregister) made their first contribution in [#&#8203;2043](https://github.com/ratatui/ratatui/pull/2043) - [@&#8203;LitoMore](https://github.com/LitoMore) made their first contribution in [#&#8203;2040](https://github.com/ratatui/ratatui/pull/2040) - [@&#8203;aschey](https://github.com/aschey) made their first contribution in [#&#8203;2004](https://github.com/ratatui/ratatui/pull/2004) - [@&#8203;dtolnay](https://github.com/dtolnay) made their first contribution in [#&#8203;1999](https://github.com/ratatui/ratatui/pull/1999) - [@&#8203;MatrixFrog](https://github.com/MatrixFrog) made their first contribution in [#&#8203;1994](https://github.com/ratatui/ratatui/pull/1994) - [@&#8203;jwodder](https://github.com/jwodder) made their first contribution in [#&#8203;1670](https://github.com/ratatui/ratatui/pull/1670) - [@&#8203;acuteenvy](https://github.com/acuteenvy) made their first contribution in [#&#8203;1956](https://github.com/ratatui/ratatui/pull/1956) - [@&#8203;harilvfs](https://github.com/harilvfs) made their first contribution in [#&#8203;1905](https://github.com/ratatui/ratatui/pull/1905) - [@&#8203;Daksh14](https://github.com/Daksh14) made their first contribution in [#&#8203;1891](https://github.com/ratatui/ratatui/pull/1891) - [@&#8203;sevki](https://github.com/sevki) made their first contribution in [#&#8203;1885](https://github.com/ratatui/ratatui/pull/1885) - [@&#8203;aurreland](https://github.com/aurreland) made their first contribution in [#&#8203;1883](https://github.com/ratatui/ratatui/pull/1883) - [@&#8203;ArjunKrish7356](https://github.com/ArjunKrish7356) made their first contribution in [#&#8203;1812](https://github.com/ratatui/ratatui/pull/1812) - [@&#8203;cgzones](https://github.com/cgzones) made their first contribution in [#&#8203;1789](https://github.com/ratatui/ratatui/pull/1789) - [@&#8203;ed-2100](https://github.com/ed-2100) made their first contribution in [#&#8203;1782](https://github.com/ratatui/ratatui/pull/1782) - [@&#8203;musicinmybrain](https://github.com/musicinmybrain) made their first contribution in [#&#8203;1783](https://github.com/ratatui/ratatui/pull/1783) - [@&#8203;LecrisUT](https://github.com/LecrisUT) made their first contribution in [#&#8203;1777](https://github.com/ratatui/ratatui/pull/1777) - [@&#8203;canac](https://github.com/canac) made their first contribution in [#&#8203;1662](https://github.com/ratatui/ratatui/pull/1662) - [@&#8203;LVivona](https://github.com/LVivona) made their first contribution in [#&#8203;1639](https://github.com/ratatui/ratatui/pull/1639) - [@&#8203;alexpasmantier](https://github.com/alexpasmantier) made their first contribution in [#&#8203;1622](https://github.com/ratatui/ratatui/pull/1622) - [@&#8203;theotchlx](https://github.com/theotchlx) made their first contribution in [#&#8203;1573](https://github.com/ratatui/ratatui/pull/1573) - [@&#8203;dawedawe](https://github.com/dawedawe) made their first contribution in [#&#8203;1611](https://github.com/ratatui/ratatui/pull/1611) - [@&#8203;Its-Just-Nans](https://github.com/Its-Just-Nans) made their first contribution in [#&#8203;1584](https://github.com/ratatui/ratatui/pull/1584) - [@&#8203;MarSik](https://github.com/MarSik) made their first contribution in [#&#8203;1541](https://github.com/ratatui/ratatui/pull/1541) - [@&#8203;raylu](https://github.com/raylu) made their first contribution in [#&#8203;1540](https://github.com/ratatui/ratatui/pull/1540) - [@&#8203;renesat](https://github.com/renesat) made their first contribution in [#&#8203;1501](https://github.com/ratatui/ratatui/pull/1501) - [@&#8203;HoKim98](https://github.com/HoKim98) made their first contribution in [#&#8203;1484](https://github.com/ratatui/ratatui/pull/1484) - [@&#8203;nilsmartel](https://github.com/nilsmartel) made their first contribution in [#&#8203;1485](https://github.com/ratatui/ratatui/pull/1485) - [@&#8203;epompeii](https://github.com/epompeii) made their first contribution in [#&#8203;1470](https://github.com/ratatui/ratatui/pull/1470) - [@&#8203;thomas-tacquet](https://github.com/thomas-tacquet) made their first contribution in [#&#8203;1462](https://github.com/ratatui/ratatui/pull/1462) **Full Changelog**: https://github.com/ratatui/ratatui/compare/v0.29.0...v0.30.0 </details> <details> <summary>serde-rs/json (serde_json)</summary> ### [`v1.0.149`](https://github.com/serde-rs/json/releases/tag/v1.0.149) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.148...v1.0.149) - Align arbitrary_precision number strings with zmij's formatting ([#&#8203;1306](https://github.com/serde-rs/json/issues/1306), thanks [@&#8203;b41sh](https://github.com/b41sh)) ### [`v1.0.148`](https://github.com/serde-rs/json/releases/tag/v1.0.148) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.147...v1.0.148) - Update `zmij` dependency to 1.0 ### [`v1.0.147`](https://github.com/serde-rs/json/releases/tag/v1.0.147) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.146...v1.0.147) - Switch float-to-string algorithm from Ryū to Żmij for better f32 and f64 serialization performance ([#&#8203;1304](https://github.com/serde-rs/json/issues/1304)) ### [`v1.0.146`](https://github.com/serde-rs/json/releases/tag/v1.0.146) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.145...v1.0.146) - Set fast_arithmetic=64 for riscv64 ([#&#8203;1305](https://github.com/serde-rs/json/issues/1305), thanks [@&#8203;Xeonacid](https://github.com/Xeonacid)) ### [`v1.0.145`](https://github.com/serde-rs/json/releases/tag/v1.0.145) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.144...v1.0.145) - Raise serde version requirement to >=1.0.220 ### [`v1.0.144`](https://github.com/serde-rs/json/releases/tag/v1.0.144) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.143...v1.0.144) - Switch serde dependency to serde_core ([#&#8203;1285](https://github.com/serde-rs/json/issues/1285)) ### [`v1.0.143`](https://github.com/serde-rs/json/releases/tag/v1.0.143) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.142...v1.0.143) - Implement Clone and Debug for serde_json::Map iterators ([#&#8203;1264](https://github.com/serde-rs/json/issues/1264), thanks [@&#8203;xlambein](https://github.com/xlambein)) - Implement Default for CompactFormatter ([#&#8203;1268](https://github.com/serde-rs/json/issues/1268), thanks [@&#8203;SOF3](https://github.com/SOF3)) - Implement FromStr for serde_json::Map ([#&#8203;1271](https://github.com/serde-rs/json/issues/1271), thanks [@&#8203;mickvangelderen](https://github.com/mickvangelderen)) ### [`v1.0.142`](https://github.com/serde-rs/json/releases/tag/v1.0.142) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.141...v1.0.142) - impl Default for \&Value ([#&#8203;1265](https://github.com/serde-rs/json/issues/1265), thanks [@&#8203;aatifsyed](https://github.com/aatifsyed)) ### [`v1.0.141`](https://github.com/serde-rs/json/releases/tag/v1.0.141) [Compare Source](https://github.com/serde-rs/json/compare/v1.0.140...v1.0.141) - Optimize string escaping during serialization ([#&#8203;1273](https://github.com/serde-rs/json/issues/1273), thanks [@&#8203;conradludgate](https://github.com/conradludgate)) </details> <details> <summary>RustCrypto/hashes (sha2)</summary> ### [`v0.10.9`](https://github.com/RustCrypto/hashes/compare/sha2-v0.10.8...sha2-v0.10.9) [Compare Source](https://github.com/RustCrypto/hashes/compare/sha2-v0.10.8...sha2-v0.10.9) </details> <details> <summary>launchbadge/sqlx (sqlx)</summary> ### [`v0.8.6`](https://github.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#086---2025-05-19) [Compare Source](https://github.com/launchbadge/sqlx/compare/v0.8.5...v0.8.6) 9 pull requests were merged this release cycle. ##### Added - \[[#&#8203;3849]]: Add color and wrapping to cli help text \[\[[@&#8203;joshka](https://github.com/joshka)]] ##### Changed - \[[#&#8203;3830]]: build: drop unused `tempfile` dependency \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]] - \[[#&#8203;3845]]: chore: clean up no longer used imports \[\[[@&#8203;tisonkun](https://github.com/tisonkun)]] - \[[#&#8203;3863]]: Use unnamed statement in pg when not persistent \[\[[@&#8203;ThomWright](https://github.com/ThomWright)]] - \[[#&#8203;3866]]: chore(doc): clarify compile-time verification and case conversion behavior \[\[[@&#8203;duhby](https://github.com/duhby)]] ##### Fixed - \[[#&#8203;3840]]: Fix docs.rs build of sqlx-sqlite \[\[[@&#8203;gferon](https://github.com/gferon)]] - \[[#&#8203;3848]]: fix(macros): don't mutate environment variables \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - \[[#&#8203;3855]]: fix `attrubute` typo in doc \[\[[@&#8203;kujeger](https://github.com/kujeger)]] - \[[#&#8203;3856]]: fix(macros): slightly improve unsupported type error message \[\[[@&#8203;dyc3](https://github.com/dyc3)]] [#&#8203;3830]: https://github.com/launchbadge/sqlx/pull/3830 [#&#8203;3840]: https://github.com/launchbadge/sqlx/pull/3840 [#&#8203;3845]: https://github.com/launchbadge/sqlx/pull/3845 [#&#8203;3848]: https://github.com/launchbadge/sqlx/pull/3848 [#&#8203;3849]: https://github.com/launchbadge/sqlx/pull/3849 [#&#8203;3855]: https://github.com/launchbadge/sqlx/pull/3855 [#&#8203;3856]: https://github.com/launchbadge/sqlx/pull/3856 [#&#8203;3863]: https://github.com/launchbadge/sqlx/pull/3863 [#&#8203;3866]: https://github.com/launchbadge/sqlx/pull/3866 ### [`v0.8.5`](https://github.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#085---2025-04-14) Hotfix release to address two new issues: - \[[#&#8203;3823]]: `sqlx-cli@0.8.4` broke `.env` default resolution mechanism - \[[#&#8203;3825]]: `sqlx@0.8.4` broke test fixture setup The `0.8.4` release will be yanked as of publishing this one. ##### Added - In release PR: `sqlx-cli` now accepts `--no-dotenv` in subcommand arguments. - In release PR: added functionality tests for `sqlx-cli` to CI. - In release PR: test `#[sqlx::test]` twice in CI to cover cleanup. ##### Fixed - In release PR: `sqlx-cli` correctly reads `.env` files by default again. - Addresses \[[#&#8203;3823]]. - In release PR: fix bugs in MySQL implementation of `#[sqlx::test]`. - Addresses \[[#&#8203;3825]]. [#&#8203;3823]: https://github.com/launchbadge/sqlx/issues/3823 [#&#8203;3825]: https://github.com/launchbadge/sqlx/issues/3825 ### [`v0.8.4`](https://github.com/launchbadge/sqlx/blob/HEAD/CHANGELOG.md#084---2025-04-13) 50 pull requests were merged this release cycle. ##### Added - \[[#&#8203;3603]]: Added missing special casing for encoding embedded arrays of custom types \[\[[@&#8203;nico-incubiq](https://github.com/nico-incubiq)]] - \[[#&#8203;3625]]: feat(sqlite): add preupdate hook \[\[[@&#8203;aschey](https://github.com/aschey)]] - \[[#&#8203;3655]]: docs: add example for postgres enums with type TEXT \[\[[@&#8203;tisonkun](https://github.com/tisonkun)]] - \[[#&#8203;3677]]: Add json(nullable) macro attribute \[\[[@&#8203;seanaye](https://github.com/seanaye)]] - \[[#&#8203;3687]]: Derive clone and debug for postgresql arguments \[\[[@&#8203;remysaissy](https://github.com/remysaissy)]] - \[[#&#8203;3690]]: feat: add postres geometry line segment \[\[[@&#8203;jayy-lmao](https://github.com/jayy-lmao)]] - \[[#&#8203;3707]]: feat(Sqlite): add LockedSqliteHandle::last_error \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - \[[#&#8203;3710]]: feat: add ipnet support \[\[[@&#8203;BeauGieskens](https://github.com/BeauGieskens)]] - \[[#&#8203;3711]]: feat(postgres): add geometry box \[\[[@&#8203;jayy-lmao](https://github.com/jayy-lmao)]] - \[[#&#8203;3714]]: chore: expose bstr feature \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - \[[#&#8203;3716]]: feat(postgres): add geometry path \[\[[@&#8203;jayy-lmao](https://github.com/jayy-lmao)]] - \[[#&#8203;3724]]: feat(sqlx-cli): Add flag to disable automatic loading of .env files \[\[[@&#8203;benwilber](https://github.com/benwilber)]] - \[[#&#8203;3734]]: QueryBuilder: add debug_assert when `push_values` is passed an empty set of tuples \[\[[@&#8203;chanmaoganda](https://github.com/chanmaoganda)]] - \[[#&#8203;3745]]: feat: sqlx sqlite expose de/serialize \[\[[@&#8203;mattrighetti](https://github.com/mattrighetti)]] - \[[#&#8203;3765]]: Merge of [#&#8203;3427](https://github.com/launchbadge/sqlx/issues/3427) (by [@&#8203;mpyw](https://github.com/mpyw)) and [#&#8203;3614](https://github.com/launchbadge/sqlx/issues/3614) (by [@&#8203;bonsairobo](https://github.com/bonsairobo)) \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;3427]] Expose `transaction_depth` through `get_transaction_depth()` method \[\[[@&#8203;mpyw](https://github.com/mpyw)]] - Changed to `Connection::is_in_transaction` in \[[#&#8203;3765]] - \[[#&#8203;3614]] Add `begin_with` methods to support database-specific transaction options \[\[[@&#8203;bonsairobo](https://github.com/bonsairobo)]] - \[[#&#8203;3769]]: feat(postgres): add geometry polygon \[\[[@&#8203;jayy-lmao](https://github.com/jayy-lmao)]] - \[[#&#8203;3773]]: feat(postgres): add geometry circle \[\[[@&#8203;jayy-lmao](https://github.com/jayy-lmao)]] ##### Changed - \[[#&#8203;3665]]: build(deps): bump semver compatible dependencies \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]] - \[[#&#8203;3669]]: refactor(cli): replace promptly with dialoguer \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]] - \[[#&#8203;3672]]: add `#[track_caller]` to `Row::get()` \[\[[@&#8203;karambarakat](https://github.com/karambarakat)]] - \[[#&#8203;3708]]: chore(MySql): Remove unnecessary box \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - \[[#&#8203;3715]]: chore: add pg_copy regression tests \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - \[[#&#8203;3721]]: Replace some `futures-core` / `futures-util` APIs with `std` variants \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]] - \[[#&#8203;3725]]: chore: replace rustls-pemfile with rustls-pki-types \[\[[@&#8203;tottoto](https://github.com/tottoto)]] - \[[#&#8203;3754]]: chore(cli): remove unused async-trait crate from dependencies \[\[[@&#8203;tottoto](https://github.com/tottoto)]] - \[[#&#8203;3762]]: docs(pool): recommend actix-web ThinData over Data to avoid two Arcs \[\[[@&#8203;jonasmalacofilho](https://github.com/jonasmalacofilho)]] ##### Fixed - \[[#&#8203;3289]]: Always set `SQLITE_OPEN_URI` on in-memory sqlite \[\[[@&#8203;LecrisUT](https://github.com/LecrisUT)]] - \[[#&#8203;3334]]: Fix: nextest cleanup race condition \[\[[@&#8203;bonega](https://github.com/bonega)]] - \[[#&#8203;3666]]: fix(cli): running tests on 32bit platforms \[\[[@&#8203;paolobarbolini](https://github.com/paolobarbolini)]] - \[[#&#8203;3686]]: fix: handle nullable values by printing NULL instead of panicking \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - \[[#&#8203;3700]]: fix(Sqlite): stop sending rows after first error \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - \[[#&#8203;3701]]: fix(postgres) use signed int for length prefix in `PgCopyIn` \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - \[[#&#8203;3703]]: fix(Postgres) chunk pg_copy data \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - \[[#&#8203;3712]]: FromRow: Fix documentation order \[\[[@&#8203;Turbo87](https://github.com/Turbo87)]] - \[[#&#8203;3720]]: Fix readme: uuid feature is gating for all repos \[\[[@&#8203;jthacker](https://github.com/jthacker)]] - \[[#&#8203;3728]]: postgres: Fix tracing span when dropping PgListener \[\[[@&#8203;chitoku-k](https://github.com/chitoku-k)]] - \[[#&#8203;3741]]: Fix example calculation in docs \[\[[@&#8203;dns2utf8](https://github.com/dns2utf8)]] - \[[#&#8203;3749]]: docs: add some missing backticks \[\[[@&#8203;soulwa](https://github.com/soulwa)]] - \[[#&#8203;3753]]: Avoid privilege requirements by using an advisory lock in test setup (postgres). \[\[[@&#8203;kildrens](https://github.com/kildrens)]] - \[[#&#8203;3755]]: Fix FromRow docs for tuples \[\[[@&#8203;xvapx](https://github.com/xvapx)]] - \[[#&#8203;3768]]: chore(Sqlite): remove ci.db from repo \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - \[[#&#8203;3771]]: fix(ci): breakage from Rustup 1.28 \[\[[@&#8203;abonander](https://github.com/abonander)]] - \[[#&#8203;3786]]: Fix a copy-paste error on get_username docs \[\[[@&#8203;sulami](https://github.com/sulami)]] - \[[#&#8203;3801]]: Fix: Enable Json type when db feature isn't enabled \[\[[@&#8203;thriller08](https://github.com/thriller08)]] - \[[#&#8203;3809]]: fix: PgConnectOptions docs \[\[[@&#8203;mbj](https://github.com/mbj)]] - \[[#&#8203;3811]]: Fix error message typo in PgPoint::from_str \[\[[@&#8203;TeCHiScy](https://github.com/TeCHiScy)]] - \[[#&#8203;3812]]: mysql: Fix panic on invalid text row length field \[\[[@&#8203;0xdeafbeef](https://github.com/0xdeafbeef)]] - \[[#&#8203;3815]]: fix(macros): cache macro metadata based on `CARGO_MANIFEST_DIR` \[\[[@&#8203;joeydewaal](https://github.com/joeydewaal)]] - Fixes in release PR \[[#&#8203;3819]] \[\[[@&#8203;abonander](https://github.com/abonander)]]: - fix(postgres): send `limit: 0` for all `Execute` messages - Addresses \[[#&#8203;3673]]: Parallel workers not used on Postgres - fix: let `CertificateInput::from` infer any PEM-encoded document - Fixes `PGSSLKEY` not being parsed correctly when containing a PEM-encoded private key. - doc: improve documentation of `PgConnectOptions` - `PGHOSTADDR` now can be used to override `PGHOST`. - Addresses \[[#&#8203;3740]]: Document the URL syntax for Unix-domain sockets when connecting to postgres [#&#8203;3819]: https://github.com/launchbadge/sqlx/pull/3819 [#&#8203;3673]: https://github.com/launchbadge/sqlx/issues/3673 [#&#8203;3740]: https://github.com/launchbadge/sqlx/issues/3740 [#&#8203;3289]: https://github.com/launchbadge/sqlx/pull/3289 [#&#8203;3334]: https://github.com/launchbadge/sqlx/pull/3334 [#&#8203;3427]: https://github.com/launchbadge/sqlx/pull/3427 [#&#8203;3603]: https://github.com/launchbadge/sqlx/pull/3603 [#&#8203;3614]: https://github.com/launchbadge/sqlx/pull/3614 [#&#8203;3625]: https://github.com/launchbadge/sqlx/pull/3625 [#&#8203;3655]: https://github.com/launchbadge/sqlx/pull/3655 [#&#8203;3665]: https://github.com/launchbadge/sqlx/pull/3665 [#&#8203;3666]: https://github.com/launchbadge/sqlx/pull/3666 [#&#8203;3669]: https://github.com/launchbadge/sqlx/pull/3669 [#&#8203;3672]: https://github.com/launchbadge/sqlx/pull/3672 [#&#8203;3677]: https://github.com/launchbadge/sqlx/pull/3677 [#&#8203;3686]: https://github.com/launchbadge/sqlx/pull/3686 [#&#8203;3687]: https://github.com/launchbadge/sqlx/pull/3687 [#&#8203;3690]: https://github.com/launchbadge/sqlx/pull/3690 [#&#8203;3700]: https://github.com/launchbadge/sqlx/pull/3700 [#&#8203;3701]: https://github.com/launchbadge/sqlx/pull/3701 [#&#8203;3703]: https://github.com/launchbadge/sqlx/pull/3703 [#&#8203;3707]: https://github.com/launchbadge/sqlx/pull/3707 [#&#8203;3708]: https://github.com/launchbadge/sqlx/pull/3708 [#&#8203;3710]: https://github.com/launchbadge/sqlx/pull/3710 [#&#8203;3711]: https://github.com/launchbadge/sqlx/pull/3711 [#&#8203;3712]: https://github.com/launchbadge/sqlx/pull/3712 [#&#8203;3714]: https://github.com/launchbadge/sqlx/pull/3714 [#&#8203;3715]: https://github.com/launchbadge/sqlx/pull/3715 [#&#8203;3716]: https://github.com/launchbadge/sqlx/pull/3716 [#&#8203;3720]: https://github.com/launchbadge/sqlx/pull/3720 [#&#8203;3721]: https://github.com/launchbadge/sqlx/pull/3721 [#&#8203;3724]: https://github.com/launchbadge/sqlx/pull/3724 [#&#8203;3725]: https://github.com/launchbadge/sqlx/pull/3725 [#&#8203;3728]: https://github.com/launchbadge/sqlx/pull/3728 [#&#8203;3734]: https://github.com/launchbadge/sqlx/pull/3734 [#&#8203;3741]: https://github.com/launchbadge/sqlx/pull/3741 [#&#8203;3745]: https://github.com/launchbadge/sqlx/pull/3745 [#&#8203;3749]: https://github.com/launchbadge/sqlx/pull/3749 [#&#8203;3753]: https://github.com/launchbadge/sqlx/pull/3753 [#&#8203;3754]: https://github.com/launchbadge/sqlx/pull/3754 [#&#8203;3755]: https://github.com/launchbadge/sqlx/pull/3755 [#&#8203;3762]: https://github.com/launchbadge/sqlx/pull/3762 [#&#8203;3765]: https://github.com/launchbadge/sqlx/pull/3765 [#&#8203;3768]: https://github.com/launchbadge/sqlx/pull/3768 [#&#8203;3769]: https://github.com/launchbadge/sqlx/pull/3769 [#&#8203;3771]: https://github.com/launchbadge/sqlx/pull/3771 [#&#8203;3773]: https://github.com/launchbadge/sqlx/pull/3773 [#&#8203;3786]: https://github.com/launchbadge/sqlx/pull/3786 [#&#8203;3801]: https://github.com/launchbadge/sqlx/pull/3801 [#&#8203;3809]: https://github.com/launchbadge/sqlx/pull/3809 [#&#8203;3811]: https://github.com/launchbadge/sqlx/pull/3811 [#&#8203;3812]: https://github.com/launchbadge/sqlx/pull/3812 [#&#8203;3815]: https://github.com/launchbadge/sqlx/pull/3815 </details> <details> <summary>Stebalien/tempfile (tempfile)</summary> ### [`v3.24.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3240) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.23.0...v3.24.0) - Actually support WASIp2 without the nightly feature. This library is now feature complete on WASIp2 without any additional feature flags. - Exclude CI scripts from the published crate. ### [`v3.23.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3230) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.22.0...v3.23.0) - Remove need for the "nightly" feature to compile with "wasip2". ### [`v3.22.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3220) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.21.0...v3.22.0) - Updated `windows-sys` requirement to allow version 0.61.x - Remove `unstable-windows-keep-open-tempfile` feature. ### [`v3.21.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3210) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.20.0...v3.21.0) - Updated `windows-sys` requirement to allow version 0.60.x ### [`v3.20.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3200) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.19.1...v3.20.0) This release mostly unifies the behavior/capabilities around "keeping" temporary files: - Rename `Builder::keep(bool)` (via deprecation) to `Builder::disable_cleanup(bool)` to make it clear that behaves differently from `NamedTempFile::keep()`. The former disables automatic cleanup while the latter *consumes* the `NamedTempFile` object entirely and unsets the "temporary file" attribute (on Windows). - Rename `TempDir::into_path` (via deprecation) to `TempDir::keep` to mirror `NamedTempFile::keep`. - Add `TempDir::disable_cleanup`, `NamedTempFile::disable_cleanup`, and `TempPath::disable_cleanup` making it possible to disable automatic cleanup in-place *after* creating a temporary file/directory (equivalent to calling `Builder::disable_cleanup` before creating the file/directory). Additionally, it adds a few spooled temporary file features: git lo - Add `SpooledTempFile::into_file` for turning a `SpooledTempFile` into a regular unnamed temporary file, writing it to the backing storage ("rolling" it) if it was still stored in-memory. - Add `spooled_tempfile_in` and `SpooledTempFile::new_in` methods for creating spooled temporary files in a specific directory. This makes it possible to choose the backing device for your spooled temporary file which is rather important on Linux where the default temporary directory is likely backed by memory (defeating the entire point of having a spooled temporary file). Finally, this release improves documentation, especially the top-level documentation explaining which temporary file type to use. **BREAKING** for those with `deny(warnings)`: - `Builder::keep` deprecated in favor of `Builder::disable_cleanup`. - `TempDir::into_path` is deprecated in favor of `TempDir::keep`. ### [`v3.19.1`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3191) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.19.0...v3.19.1) - Don't unlink temporary files immediately on Windows (fixes [#&#8203;339](https://github.com/Stebalien/tempfile/issues/339)). Unfortunately, this seemed to corrupt the file object (possibly a Windows kernel bug) in rare cases and isn't strictly speaking necessary. ### [`v3.19.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3190) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.18.0...v3.19.0) - Remove direct dependency on `cfg-if`. It's still in the tree, but we didn't really need to use it in this crate. - Add an unstable feature (`unstable-windows-keep-open-tempfile`) to test a potential fix to [#&#8203;339](https://github.com/Stebalien/tempfile/issues/339). ### [`v3.18.0`](https://github.com/Stebalien/tempfile/blob/HEAD/CHANGELOG.md#3180) [Compare Source](https://github.com/Stebalien/tempfile/compare/v3.17.1...v3.18.0) - Update `rustix` to 1.0.0. - Make `NamedTempFile::persist_noclobber` atomic on Apple operating systems. It's now atomic on MacOS, Windows, and Linux (depending on the OS version and filesystem used). </details> <details> <summary>tokio-rs/tokio (tokio)</summary> ### [`v1.49.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.49.0): Tokio v1.49.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.48.0...tokio-1.49.0) ### 1.49.0 (January 3rd, 2026) ##### Added - net: add support for `TCLASS` option on IPv6 ([#&#8203;7781]) - runtime: stabilize `runtime::id::Id` ([#&#8203;7125]) - task: implement `Extend` for `JoinSet` ([#&#8203;7195]) - task: stabilize the `LocalSet::id()` ([#&#8203;7776]) ##### Changed - net: deprecate `{TcpStream,TcpSocket}::set_linger` ([#&#8203;7752]) ##### Fixed - macros: fix the hygiene issue of `join!` and `try_join!` ([#&#8203;7766]) - runtime: revert "replace manual vtable definitions with Wake" ([#&#8203;7699]) - sync: return `TryRecvError::Disconnected` from `Receiver::try_recv` after `Receiver::close` ([#&#8203;7686]) - task: remove unnecessary trait bounds on the `Debug` implementation ([#&#8203;7720]) ##### Unstable - fs: handle `EINTR` in `fs::write` for io-uring ([#&#8203;7786]) - fs: support io-uring with `tokio::fs::read` ([#&#8203;7696]) - runtime: disable io-uring on `EPERM` ([#&#8203;7724]) - time: add alternative timer for better multicore scalability ([#&#8203;7467]) ##### Documented - docs: fix a typos in `bounded.rs` and `park.rs` ([#&#8203;7817]) - io: add `SyncIoBridge` cross-references to `copy` and `copy_buf` ([#&#8203;7798]) - io: doc that `AsyncWrite` does not inherit from `std::io::Write` ([#&#8203;7705]) - metrics: clarify that `num_alive_tasks` is not strongly consistent ([#&#8203;7614]) - net: clarify the cancellation safety of the `TcpStream::peek` ([#&#8203;7305]) - net: clarify the drop behavior of `unix::OwnedWriteHalf` ([#&#8203;7742]) - net: clarify the platform-dependent backlog in `TcpSocket` docs ([#&#8203;7738]) - runtime: mention `LocalRuntime` in `new_current_thread` docs ([#&#8203;7820]) - sync: add missing period to `mpsc::Sender::try_send` docs ([#&#8203;7721]) - sync: clarify the cancellation safety of `oneshot::Receiver` ([#&#8203;7780]) - sync: improve the docs for the `errors` of mpsc ([#&#8203;7722]) - task: add example for `spawn_local` usage on local runtime ([#&#8203;7689]) [#&#8203;7125]: https://github.com/tokio-rs/tokio/pull/7125 [#&#8203;7195]: https://github.com/tokio-rs/tokio/pull/7195 [#&#8203;7305]: https://github.com/tokio-rs/tokio/pull/7305 [#&#8203;7467]: https://github.com/tokio-rs/tokio/pull/7467 [#&#8203;7614]: https://github.com/tokio-rs/tokio/pull/7614 [#&#8203;7686]: https://github.com/tokio-rs/tokio/pull/7686 [#&#8203;7689]: https://github.com/tokio-rs/tokio/pull/7689 [#&#8203;7696]: https://github.com/tokio-rs/tokio/pull/7696 [#&#8203;7699]: https://github.com/tokio-rs/tokio/pull/7699 [#&#8203;7705]: https://github.com/tokio-rs/tokio/pull/7705 [#&#8203;7720]: https://github.com/tokio-rs/tokio/pull/7720 [#&#8203;7721]: https://github.com/tokio-rs/tokio/pull/7721 [#&#8203;7722]: https://github.com/tokio-rs/tokio/pull/7722 [#&#8203;7724]: https://github.com/tokio-rs/tokio/pull/7724 [#&#8203;7738]: https://github.com/tokio-rs/tokio/pull/7738 [#&#8203;7742]: https://github.com/tokio-rs/tokio/pull/7742 [#&#8203;7752]: https://github.com/tokio-rs/tokio/pull/7752 [#&#8203;7766]: https://github.com/tokio-rs/tokio/pull/7766 [#&#8203;7776]: https://github.com/tokio-rs/tokio/pull/7776 [#&#8203;7780]: https://github.com/tokio-rs/tokio/pull/7780 [#&#8203;7781]: https://github.com/tokio-rs/tokio/pull/7781 [#&#8203;7786]: https://github.com/tokio-rs/tokio/pull/7786 [#&#8203;7798]: https://github.com/tokio-rs/tokio/pull/7798 [#&#8203;7817]: https://github.com/tokio-rs/tokio/pull/7817 [#&#8203;7820]: https://github.com/tokio-rs/tokio/pull/7820 ### [`v1.48.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.48.0): Tokio v1.48.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.47.3...tokio-1.48.0) ### 1.48.0 (October 14th, 2025) The MSRV is increased to 1.71. ##### Added - fs: add `File::max_buf_size` ([#&#8203;7594]) - io: export `Chain` of `AsyncReadExt::chain` ([#&#8203;7599]) - net: add `SocketAddr::as_abstract_name` ([#&#8203;7491]) - net: add `TcpStream::quickack` and `TcpStream::set_quickack` ([#&#8203;7490]) - net: implement `AsRef<Self>` for `TcpStream` and `UnixStream` ([#&#8203;7573]) - task: add `LocalKey::try_get` ([#&#8203;7666]) - task: implement `Ord` for `task::Id` ([#&#8203;7530]) ##### Changed - deps: bump windows-sys to version 0.61 ([#&#8203;7645]) - fs: preserve `max_buf_size` when cloning a `File` ([#&#8203;7593]) - macros: suppress `clippy::unwrap_in_result` in `#[tokio::main]` ([#&#8203;7651]) - net: remove `PollEvented` noise from Debug formats ([#&#8203;7675]) - process: upgrade `Command::spawn_with` to use `FnOnce` ([#&#8203;7511]) - sync: remove inner mutex in `SetOnce` ([#&#8203;7554]) - sync: use `UnsafeCell::get_mut` in `Mutex::get_mut` and `RwLock::get_mut` ([#&#8203;7569]) - time: reduce the generated code size of `Timeout<T>::poll` ([#&#8203;7535]) ##### Fixed - macros: fix hygiene issue in `join!` and `try_join!` ([#&#8203;7638]) - net: fix copy/paste errors in udp peek methods ([#&#8203;7604]) - process: fix error when runtime is shut down on nightly-2025-10-12 ([#&#8203;7672]) - runtime: use release ordering in `wake_by_ref()` even if already woken ([#&#8203;7622]) - sync: close the `broadcast::Sender` in `broadcast::Sender::new()` ([#&#8203;7629]) - sync: fix implementation of unused `RwLock::try_*` methods ([#&#8203;7587]) ##### Unstable - tokio: use cargo features instead of `--cfg` flags for `taskdump` and `io_uring` ([#&#8203;7655], [#&#8203;7621]) - fs: support `io_uring` in `fs::write` ([#&#8203;7567]) - fs: support `io_uring` with `File::open()` ([#&#8203;7617]) - fs: support `io_uring` with `OpenOptions` ([#&#8203;7321]) - macros: add `local` runtime flavor ([#&#8203;7375], [#&#8203;7597]) ##### Documented - io: clarify the zero capacity case of `AsyncRead::poll_read` ([#&#8203;7580]) - io: fix typos in the docs of `AsyncFd` readiness guards ([#&#8203;7583]) - net: clarify socket gets closed on drop ([#&#8203;7526]) - net: clarify the behavior of `UCred::pid()` on Cygwin ([#&#8203;7611]) - net: clarify the supported platform of `set_reuseport()` and `reuseport()` ([#&#8203;7628]) - net: qualify that `SO_REUSEADDR` is only set on Unix ([#&#8203;7533]) - runtime: add guide for choosing between runtime types ([#&#8203;7635]) - runtime: clarify the behavior of `Handle::block_on` ([#&#8203;7665]) - runtime: clarify the edge case of `Builder::global_queue_interval()` ([#&#8203;7605]) - sync: clarify bounded channel panic behavior ([#&#8203;7641]) - sync: clarify the behavior of `tokio::sync::watch::Receiver` ([#&#8203;7584]) - sync: document cancel safety on `SetOnce::wait` ([#&#8203;7506]) - sync: fix the docs of `parking_lot` feature flag ([#&#8203;7663]) - sync: improve the docs of `UnboundedSender::send` ([#&#8203;7661]) - sync: improve the docs of `sync::watch` ([#&#8203;7601]) - sync: reword allocation failure paragraph in broadcast docs ([#&#8203;7595]) - task: clarify the behavior of several `spawn_local` methods ([#&#8203;7669]) - task: clarify the task ID reuse guarantees ([#&#8203;7577]) - task: improve the example of `poll_proceed` ([#&#8203;7586]) [#&#8203;7321]: https://github.com/tokio-rs/tokio/pull/7321 [#&#8203;7375]: https://github.com/tokio-rs/tokio/pull/7375 [#&#8203;7490]: https://github.com/tokio-rs/tokio/pull/7490 [#&#8203;7491]: https://github.com/tokio-rs/tokio/pull/7491 [#&#8203;7494]: https://github.com/tokio-rs/tokio/pull/7494 [#&#8203;7506]: https://github.com/tokio-rs/tokio/pull/7506 [#&#8203;7511]: https://github.com/tokio-rs/tokio/pull/7511 [#&#8203;7526]: https://github.com/tokio-rs/tokio/pull/7526 [#&#8203;7530]: https://github.com/tokio-rs/tokio/pull/7530 [#&#8203;7533]: https://github.com/tokio-rs/tokio/pull/7533 [#&#8203;7535]: https://github.com/tokio-rs/tokio/pull/7535 [#&#8203;7554]: https://github.com/tokio-rs/tokio/pull/7554 [#&#8203;7567]: https://github.com/tokio-rs/tokio/pull/7567 [#&#8203;7569]: https://github.com/tokio-rs/tokio/pull/7569 [#&#8203;7573]: https://github.com/tokio-rs/tokio/pull/7573 [#&#8203;7577]: https://github.com/tokio-rs/tokio/pull/7577 [#&#8203;7580]: https://github.com/tokio-rs/tokio/pull/7580 [#&#8203;7583]: https://github.com/tokio-rs/tokio/pull/7583 [#&#8203;7584]: https://github.com/tokio-rs/tokio/pull/7584 [#&#8203;7586]: https://github.com/tokio-rs/tokio/pull/7586 [#&#8203;7587]: https://github.com/tokio-rs/tokio/pull/7587 [#&#8203;7593]: https://github.com/tokio-rs/tokio/pull/7593 [#&#8203;7594]: https://github.com/tokio-rs/tokio/pull/7594 [#&#8203;7595]: https://github.com/tokio-rs/tokio/pull/7595 [#&#8203;7597]: https://github.com/tokio-rs/tokio/pull/7597 [#&#8203;7599]: https://github.com/tokio-rs/tokio/pull/7599 [#&#8203;7601]: https://github.com/tokio-rs/tokio/pull/7601 [#&#8203;7604]: https://github.com/tokio-rs/tokio/pull/7604 [#&#8203;7605]: https://github.com/tokio-rs/tokio/pull/7605 [#&#8203;7611]: https://github.com/tokio-rs/tokio/pull/7611 [#&#8203;7617]: https://github.com/tokio-rs/tokio/pull/7617 [#&#8203;7621]: https://github.com/tokio-rs/tokio/pull/7621 [#&#8203;7622]: https://github.com/tokio-rs/tokio/pull/7622 [#&#8203;7628]: https://github.com/tokio-rs/tokio/pull/7628 [#&#8203;7629]: https://github.com/tokio-rs/tokio/pull/7629 [#&#8203;7635]: https://github.com/tokio-rs/tokio/pull/7635 [#&#8203;7638]: https://github.com/tokio-rs/tokio/pull/7638 [#&#8203;7641]: https://github.com/tokio-rs/tokio/pull/7641 [#&#8203;7645]: https://github.com/tokio-rs/tokio/pull/7645 [#&#8203;7651]: https://github.com/tokio-rs/tokio/pull/7651 [#&#8203;7655]: https://github.com/tokio-rs/tokio/pull/7655 [#&#8203;7661]: https://github.com/tokio-rs/tokio/pull/7661 [#&#8203;7663]: https://github.com/tokio-rs/tokio/pull/7663 [#&#8203;7665]: https://github.com/tokio-rs/tokio/pull/7665 [#&#8203;7666]: https://github.com/tokio-rs/tokio/pull/7666 [#&#8203;7669]: https://github.com/tokio-rs/tokio/pull/7669 [#&#8203;7672]: https://github.com/tokio-rs/tokio/pull/7672 [#&#8203;7675]: https://github.com/tokio-rs/tokio/pull/7675 ### [`v1.47.3`](https://github.com/tokio-rs/tokio/compare/tokio-1.47.2...tokio-1.47.3) [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.47.2...tokio-1.47.3) ### [`v1.47.2`](https://github.com/tokio-rs/tokio/compare/tokio-1.47.1...tokio-1.47.2) [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.47.1...tokio-1.47.2) ### [`v1.47.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.47.1): Tokio v1.47.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.47.0...tokio-1.47.1) ### 1.47.1 (August 1st, 2025) ##### Fixed - process: fix panic from spurious pidfd wakeup ([#&#8203;7494]) - sync: fix broken link of Python `asyncio.Event` in `SetOnce` docs ([#&#8203;7485]) [#&#8203;7485]: https://github.com/tokio-rs/tokio/pull/7485 [#&#8203;7494]: https://github.com/tokio-rs/tokio/pull/7494 ### [`v1.47.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.47.0): Tokio v1.47.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.46.1...tokio-1.47.0) ### 1.47.0 (July 25th, 2025) This release adds `poll_proceed` and `cooperative` to the `coop` module for cooperative scheduling, adds `SetOnce` to the `sync` module which provides similar functionality to \[`std::sync::OnceLock`], and adds a new method `sync::Notify::notified_owned()` which returns an `OwnedNotified` without a lifetime parameter. #### Added - coop: add `cooperative` and `poll_proceed` ([#&#8203;7405]) - sync: add `SetOnce` ([#&#8203;7418]) - sync: add `sync::Notify::notified_owned()` ([#&#8203;7465]) #### Changed - deps: upgrade windows-sys 0.52 → 0.59 (\[[#&#8203;7117](https://github.com/tokio-rs/tokio/issues/7117)]) - deps: update to socket2 v0.6 (\[[#&#8203;7443](https://github.com/tokio-rs/tokio/issues/7443)]) - sync: improve `AtomicWaker::wake` performance ([#&#8203;7450]) #### Documented - metrics: fix listed feature requirements for some metrics ([#&#8203;7449]) - runtime: improve safety comments of `Readiness<'_>` ([#&#8203;7415]) [#&#8203;7405]: https://github.com/tokio-rs/tokio/pull/7405 [#&#8203;7415]: https://github.com/tokio-rs/tokio/pull/7415 [#&#8203;7418]: https://github.com/tokio-rs/tokio/pull/7418 [#&#8203;7449]: https://github.com/tokio-rs/tokio/pull/7449 [#&#8203;7450]: https://github.com/tokio-rs/tokio/pull/7450 [#&#8203;7465]: https://github.com/tokio-rs/tokio/pull/7465 ### [`v1.46.1`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.46.1): Tokio v1.46.1 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.46.0...tokio-1.46.1) ### 1.46.1 (July 4th, 2025) This release fixes incorrect spawn locations in runtime task hooks for tasks spawned using `tokio::spawn` rather than `Runtime::spawn`. This issue only effected the spawn location in `TaskMeta::spawned_at`, and did not effect task locations in Tracing events. #### Unstable - runtime: add `TaskMeta::spawn_location` tracking where a task was spawned ([#&#8203;7440]) [#&#8203;7440]: https://github.com/tokio-rs/tokio/pull/7440 ### [`v1.46.0`](https://github.com/tokio-rs/tokio/releases/tag/tokio-1.46.0): Tokio v1.46.0 [Compare Source](https://github.com/tokio-rs/tokio/compare/tokio-1.45.1...tokio-1.46.0) ### 1.46.0 (July 2nd, 2025) ##### Fixed - net: fixed `TcpStream::shutdown` incorrectly returning an error on macOS ([#&#8203;7290]) #### Added - sync: `mpsc::OwnedPermit::{same_channel, same_channel_as_sender}` methods ([#&#8203;7389]) - macros: `biased` option for `join!` and `try_join!`, similar to `select!` ([#&#8203;7307]) - net: support for cygwin ([#&#8203;7393]) - net: support `pope::OpenOptions::read_write` on Android ([#&#8203;7426]) - net: add `Clone` implementation for `net::unix::SocketAddr` ([#&#8203;7422]) #### Changed - runtime: eliminate unnecessary lfence while operating on `queue::Local<T>` ([#&#8203;7340]) - task: disallow blocking in `LocalSet::{poll,drop}` ([#&#8203;7372]) #### Unstable - runtime: add `TaskMeta::spawn_location` tracking where a task was spawned ([#&#8203;7417]) - runtime: removed borrow from `LocalOptions` parameter to `runtime::Builder::build_local` ([#&#8203;7346]) #### Documented - io: clarify behavior of seeking when `start_seek` is not used ([#&#8203;7366]) - io: document cancellation safety of `AsyncWriteExt::flush` ([#&#8203;7364]) - net: fix docs for `recv_buffer_size` method ([#&#8203;7336]) - net: fix broken link of `RawFd` in `TcpSocket` docs ([#&#8203;7416]) - net: update `AsRawFd` doc link to current Rust stdlib location ([#&#8203;7429]) - readme: fix double period in reactor description ([#&#8203;7363]) - runtime: add doc note that `on_*_task_poll` is unstable ([#&#8203;7311]) - sync: update broadcast docs on allocation failure ([#&#8203;7352]) - time: add a missing panic scenario of `time::advance` ([#&#8203;7394]) [#&#8203;7290]: https://github.com/tokio-rs/tokio/pull/7290 [#&#8203;7307]: https://github.com/tokio-rs/tokio/pull/7307 [#&#8203;7311]: https://github.com/tokio-rs/tokio/pull/7311 [#&#8203;7336]: https://github.com/tokio-rs/tokio/pull/7336 [#&#8203;7340]: https://github.com/tokio-rs/tokio/pull/7340 [#&#8203;7346]: https://github.com/tokio-rs/tokio/pull/7346 [#&#8203;7352]: https://github.com/tokio-rs/tokio/pull/7352 [#&#8203;7363]: https://github.com/tokio-rs/tokio/pull/7363 [#&#8203;7364]: https://github.com/tokio-rs/tokio/pull/7364 [#&#8203;7366]: https://github.com/tokio-rs/tokio/pull/7366 [#&#8203;7372]: https://github.com/tokio-rs/tokio/pull/7372 [#&#8203;7389]: https://github.com/tokio-rs/tokio/pull/7389 [#&#8203;7393]: https://github.com/tokio-rs/tokio/pull/7393 [#&#8203;7394]: https://github.com/tokio-rs/tokio/pull/7394 [#&#8203;7416]: https://github.com/tokio-rs/tokio/pull/7416 [#&#8203;7422]: https://github.com/tokio-rs/tokio/pull/7422 [#&#8203;7426]: https://github.com/tokio-rs/tokio/pull/7426 [#&#8203;7429]: https://github.com/tokio-rs/tokio/pull/7429 [#&#8203;7417]: https://github.com/tokio-rs/tokio/pull/7417 </details> <details> <summary>toml-rs/toml (toml)</summary> ### [`v0.9.11`](https://github.com/toml-rs/toml/compare/toml-v0.9.10...toml-v0.9.11) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.9.10...toml-v0.9.11) ### [`v0.9.10`](https://github.com/toml-rs/toml/compare/toml-v0.9.9...toml-v0.9.10) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.9.9...toml-v0.9.10) ### [`v0.9.9`](https://github.com/toml-rs/toml/compare/toml-v0.9.8...toml-v0.9.9) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.9.8...toml-v0.9.9) ### [`v0.9.8`](https://github.com/toml-rs/toml/compare/toml-v0.9.7...toml-v0.9.8) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.9.7...toml-v0.9.8) ### [`v0.9.7`](https://github.com/toml-rs/toml/compare/toml-v0.9.6...toml-v0.9.7) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.9.6...toml-v0.9.7) ### [`v0.9.6`](https://github.com/toml-rs/toml/compare/toml-v0.9.5...toml-v0.9.6) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.9.5...toml-v0.9.6) ### [`v0.9.5`](https://github.com/toml-rs/toml/compare/toml-v0.9.4...toml-v0.9.5) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.9.4...toml-v0.9.5) ### [`v0.9.4`](https://github.com/toml-rs/toml/compare/toml-v0.9.3...toml-v0.9.4) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.9.3...toml-v0.9.4) ### [`v0.9.3`](https://github.com/toml-rs/toml/compare/toml-v0.9.2...toml-v0.9.3) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.9.2...toml-v0.9.3) ### [`v0.9.2`](https://github.com/toml-rs/toml/compare/toml-v0.9.1...toml-v0.9.2) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.9.1...toml-v0.9.2) ### [`v0.9.1`](https://github.com/toml-rs/toml/compare/toml-v0.9.0...toml-v0.9.1) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.9.0...toml-v0.9.1) ### [`v0.9.0`](https://github.com/toml-rs/toml/compare/toml-v0.8.23...toml-v0.9.0) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.8.23...toml-v0.9.0) ### [`v0.8.23`](https://github.com/toml-rs/toml/compare/toml-v0.8.22...toml-v0.8.23) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.8.22...toml-v0.8.23) ### [`v0.8.22`](https://github.com/toml-rs/toml/compare/toml-v0.8.21...toml-v0.8.22) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.8.21...toml-v0.8.22) ### [`v0.8.21`](https://github.com/toml-rs/toml/compare/toml-v0.8.20...toml-v0.8.21) [Compare Source](https://github.com/toml-rs/toml/compare/toml-v0.8.20...toml-v0.8.21) </details> <details> <summary>tower-rs/tower-http (tower-http)</summary> ### [`v0.6.8`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.6.8) [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.6.7...tower-http-0.6.8) #### Fixed - Disable `multiple_members` in Gzip decoder, since HTTP context only uses one member. ([#&#8203;621]) [#&#8203;621]: https://github.com/tower-rs/tower-http/pull/621 #### What's Changed - Disable `multiple_members` option for gzip decoder by [@&#8203;ducaale](https://github.com/ducaale) in https://github.com/tower-rs/tower-http/pull/621 - ci: Pin tracing in MSRV job by [@&#8203;ducaale](https://github.com/ducaale) in https://github.com/tower-rs/tower-http/pull/622 - ci: Switch cargo-public-api-crates to cargo-check-external-types by [@&#8203;tottoto](https://github.com/tottoto) in https://github.com/tower-rs/tower-http/pull/613 - Remove deprecated annotations and Refactor From implementations by [@&#8203;sinder38](https://github.com/sinder38) in https://github.com/tower-rs/tower-http/pull/608 - v0.6.8 by [@&#8203;seanmonstar](https://github.com/seanmonstar) in https://github.com/tower-rs/tower-http/pull/624 #### New Contributors - [@&#8203;sinder38](https://github.com/sinder38) made their first contribution in https://github.com/tower-rs/tower-http/pull/608 **Full Changelog**: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.7...tower-http-0.6.8 ### [`v0.6.7`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.6.7) [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.6.6...tower-http-0.6.7) #### Added - `TimeoutLayer::with_status_code(status)` to define the status code returned when timeout is reached. ([#&#8203;599]) #### Deprecated - `auth::require_authorization` is too basic for real-world. ([#&#8203;591]) - `TimeoutLayer::new()` should be replaced with `TimeoutLayer::with_status_code()`. (Previously was `StatusCode::REQUEST_TIMEOUT`) ([#&#8203;599]) #### Fixed - `on_eos` is now called even for successful responses. ([#&#8203;580]) - `ServeDir`: call fallback when filename is invalid ([#&#8203;586]) - `decompression` will not fail when body is empty ([#&#8203;618]) [#&#8203;580]: https://github.com/tower-rs/tower-http/pull/580 [#&#8203;586]: https://github.com/tower-rs/tower-http/pull/586 [#&#8203;591]: https://github.com/tower-rs/tower-http/pull/591 [#&#8203;599]: https://github.com/tower-rs/tower-http/pull/599 [#&#8203;618]: https://github.com/tower-rs/tower-http/pull/618 #### New Contributors - [@&#8203;mladedav](https://github.com/mladedav) made their first contribution in https://github.com/tower-rs/tower-http/pull/580 - [@&#8203;aryaveersr](https://github.com/aryaveersr) made their first contribution in https://github.com/tower-rs/tower-http/pull/586 - [@&#8203;soerenmeier](https://github.com/soerenmeier) made their first contribution in https://github.com/tower-rs/tower-http/pull/588 - [@&#8203;gjabell](https://github.com/gjabell) made their first contribution in https://github.com/tower-rs/tower-http/pull/591 - [@&#8203;FalkWoldmann](https://github.com/FalkWoldmann) made their first contribution in https://github.com/tower-rs/tower-http/pull/599 - [@&#8203;ducaale](https://github.com/ducaale) made their first contribution in https://github.com/tower-rs/tower-http/pull/618 **Full Changelog**: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.6...tower-http-0.6.7 ### [`v0.6.6`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.6.6) [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.6.5...tower-http-0.6.6) #### Fixed - compression: fix panic when looking in vary header ([#&#8203;578]) [#&#8203;578]: https://github.com/tower-rs/tower-http/pull/578 #### New Contributors - [@&#8203;sulami](https://github.com/sulami) made their first contribution in https://github.com/tower-rs/tower-http/pull/578 **Full Changelog**: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.5...tower-http-0.6.6 ### [`v0.6.5`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.6.5) [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.6.4...tower-http-0.6.5) #### Added - normalize_path: add `append_trailing_slash()` mode ([#&#8203;547]) #### Fixed - redirect: remove payload headers if redirect changes method to GET ([#&#8203;575]) - compression: avoid setting `vary: accept-encoding` if already set ([#&#8203;572]) [#&#8203;547]: https://github.com/tower-rs/tower-http/pull/547 [#&#8203;572]: https://github.com/tower-rs/tower-http/pull/572 [#&#8203;575]: https://github.com/tower-rs/tower-http/pull/575 #### New Contributors - [@&#8203;daalfox](https://github.com/daalfox) made their first contribution in https://github.com/tower-rs/tower-http/pull/547 - [@&#8203;mherrerarendon](https://github.com/mherrerarendon) made their first contribution in https://github.com/tower-rs/tower-http/pull/574 - [@&#8203;linyihai](https://github.com/linyihai) made their first contribution in https://github.com/tower-rs/tower-http/pull/575 **Full Changelog**: https://github.com/tower-rs/tower-http/compare/tower-http-0.6.4...tower-http-0.6.5 ### [`v0.6.4`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.6.4): tower-http 0.6.4 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.6.3...tower-http-0.6.4) #### Added - decompression: Support HTTP responses containing multiple ZSTD frames ([#&#8203;548]) - The `ServiceExt` trait for chaining layers onto an arbitrary http service just like `ServiceBuilderExt` allows for `ServiceBuilder` ([#&#8203;563]) #### Fixed - Remove unnecessary trait bounds on `S::Error` for `Service` impls of `RequestBodyTimeout<S>` and `ResponseBodyTimeout<S>` ([#&#8203;533]) - compression: Respect `is_end_stream` ([#&#8203;535]) - Fix a rare panic in `fs::ServeDir` ([#&#8203;553]) - Fix invalid `content-lenght` of 1 in response to range requests to empty files ([#&#8203;556]) - In `AsyncRequireAuthorization`, use the original inner service after it is ready, instead of using a clone ([#&#8203;561]) [#&#8203;533]: https://github.com/tower-rs/tower-http/pull/533 [#&#8203;535]: https://github.com/tower-rs/tower-http/pull/535 [#&#8203;548]: https://github.com/tower-rs/tower-http/pull/548 [#&#8203;553]: https://github.com/tower-rs/tower-http/pull/556 [#&#8203;556]: https://github.com/tower-rs/tower-http/pull/556 [#&#8203;561]: https://github.com/tower-rs/tower-http/pull/561 [#&#8203;563]: https://github.com/tower-rs/tower-http/pull/563 ### [`v0.6.3`](https://github.com/tower-rs/tower-http/releases/tag/tower-http-0.6.3): tower-http 0.6.3 [Compare Source](https://github.com/tower-rs/tower-http/compare/tower-http-0.6.2...tower-http-0.6.3) *This release was yanked because its definition of `ServiceExt` was quite unhelpful, in a way that's very unlikely that anybody would start depending on within the small timeframe before this was yanked, but that was technically breaking to change.* </details> <details> <summary>uuid-rs/uuid (uuid)</summary> ### [`v1.19.0`](https://github.com/uuid-rs/uuid/releases/tag/v1.19.0) [Compare Source](https://github.com/uuid-rs/uuid/compare/v1.18.1...v1.19.0) #### What's Changed - Switch serde dependency to serde_core by [@&#8203;paolobarbolini](https://github.com/paolobarbolini) in https://github.com/uuid-rs/uuid/pull/843 - Upgrade to 2021 edition and fix most clippy warnings by [@&#8203;paolobarbolini](https://github.com/paolobarbolini) in https://github.com/uuid-rs/uuid/pull/848 - Prepare for 1.19.0 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/849 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/v1.18.1...v1.19.0 ### [`v1.18.1`](https://github.com/uuid-rs/uuid/releases/tag/v1.18.1) [Compare Source](https://github.com/uuid-rs/uuid/compare/v1.18.0...v1.18.1) #### What's Changed - Unsafe cleanup by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/841 - Prepare for 1.18.1 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/842 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/v1.18.0...v1.18.1 ### [`v1.18.0`](https://github.com/uuid-rs/uuid/releases/tag/v1.18.0) [Compare Source](https://github.com/uuid-rs/uuid/compare/v1.17.0...v1.18.0) #### What's Changed - Fix up mismatched_lifetime_syntaxes lint by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/837 - Conversions between `Timestamp` and `std::time::SystemTime` by [@&#8203;dcormier](https://github.com/dcormier) in https://github.com/uuid-rs/uuid/pull/835 - Wrap the error type used in time conversions by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/838 - Prepare for 1.18.0 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/839 #### New Contributors - [@&#8203;dcormier](https://github.com/dcormier) made their first contribution in https://github.com/uuid-rs/uuid/pull/835 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/v1.17.0...v1.18.0 ### [`v1.17.0`](https://github.com/uuid-rs/uuid/releases/tag/v1.17.0) [Compare Source](https://github.com/uuid-rs/uuid/compare/v1.16.0...v1.17.0) #### What's Changed - Added convenience implementation TryFrom<String> for std by [@&#8203;Nahuel-M](https://github.com/Nahuel-M) in https://github.com/uuid-rs/uuid/pull/819 - Update OSX builds to arm by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/825 - Replace derive(Hash) with manual impl in Uuid by [@&#8203;diopoex](https://github.com/diopoex) in https://github.com/uuid-rs/uuid/pull/824 - Add `wasm32v1-none` Support by [@&#8203;bushrat011899](https://github.com/bushrat011899) in https://github.com/uuid-rs/uuid/pull/828 - Prepare for 1.17.0 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/829 #### New Contributors - [@&#8203;Nahuel-M](https://github.com/Nahuel-M) made their first contribution in https://github.com/uuid-rs/uuid/pull/819 - [@&#8203;diopoex](https://github.com/diopoex) made their first contribution in https://github.com/uuid-rs/uuid/pull/824 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/v1.16.0...v1.17.0 ### [`v1.16.0`](https://github.com/uuid-rs/uuid/releases/tag/v1.16.0) [Compare Source](https://github.com/uuid-rs/uuid/compare/v1.15.1...v1.16.0) #### What's Changed - Mark `Uuid::new_v8` const by [@&#8203;tguichaoua](https://github.com/tguichaoua) in https://github.com/uuid-rs/uuid/pull/815 - Prepare for 1.16.0 release by [@&#8203;KodrAus](https://github.com/KodrAus) in https://github.com/uuid-rs/uuid/pull/817 #### New Contributors - [@&#8203;tguichaoua](https://github.com/tguichaoua) made their first contribution in https://github.com/uuid-rs/uuid/pull/815 **Full Changelog**: https://github.com/uuid-rs/uuid/compare/v1.15.1...v1.16.0 </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **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](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMTUuMiIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
kjuulh added 1 commit 2025-03-25 23:58:05 +01:00
kjuulh force-pushed renovate/all from 8b1599309f to e5e772bb06 2025-03-26 21:05:59 +01:00 Compare
kjuulh force-pushed renovate/all from e5e772bb06 to 143c0e54d2 2025-03-26 21:39:09 +01:00 Compare
kjuulh force-pushed renovate/all from 143c0e54d2 to 90461827b4 2025-03-26 22:09:29 +01:00 Compare
kjuulh force-pushed renovate/all from 90461827b4 to 64b3463539 2025-03-26 22:38:40 +01:00 Compare
kjuulh force-pushed renovate/all from 64b3463539 to ade121ca64 2025-03-26 23:09:03 +01:00 Compare
kjuulh force-pushed renovate/all from ade121ca64 to 5cd2562d37 2025-03-26 23:39:42 +01:00 Compare
kjuulh force-pushed renovate/all from 5cd2562d37 to 9ce098643b 2025-03-27 00:10:46 +01:00 Compare
kjuulh force-pushed renovate/all from 9ce098643b to f6e00a8636 2025-03-27 00:41:02 +01:00 Compare
kjuulh force-pushed renovate/all from f6e00a8636 to 8249399c48 2025-03-27 01:09:43 +01:00 Compare
kjuulh force-pushed renovate/all from 8249399c48 to 9b25f75ed4 2025-03-27 01:37:38 +01:00 Compare
kjuulh force-pushed renovate/all from 9b25f75ed4 to 31dde18381 2025-03-27 02:06:23 +01:00 Compare
kjuulh force-pushed renovate/all from 31dde18381 to c6da4adfd0 2025-03-27 02:34:52 +01:00 Compare
kjuulh force-pushed renovate/all from c6da4adfd0 to 6a7e4a5566 2025-03-27 03:06:09 +01:00 Compare
kjuulh force-pushed renovate/all from 6a7e4a5566 to 62d747463f 2025-03-27 03:38:52 +01:00 Compare
kjuulh force-pushed renovate/all from 62d747463f to 4b606f49f5 2025-03-27 04:10:17 +01:00 Compare
kjuulh force-pushed renovate/all from 4b606f49f5 to 4cb39f0c6e 2025-03-27 04:39:55 +01:00 Compare
kjuulh force-pushed renovate/all from 4cb39f0c6e to f347ddd2c2 2025-03-27 05:12:56 +01:00 Compare
kjuulh force-pushed renovate/all from f347ddd2c2 to 3cae5471d4 2025-03-27 05:44:01 +01:00 Compare
kjuulh force-pushed renovate/all from 3cae5471d4 to 329807886e 2025-03-27 06:14:06 +01:00 Compare
kjuulh force-pushed renovate/all from 329807886e to 97aefb051e 2025-03-27 06:42:22 +01:00 Compare
kjuulh force-pushed renovate/all from 97aefb051e to 32891fbeea 2025-03-27 07:11:54 +01:00 Compare
kjuulh force-pushed renovate/all from 32891fbeea to fdf84351f9 2025-03-27 07:40:31 +01:00 Compare
kjuulh force-pushed renovate/all from fdf84351f9 to d488abdfca 2025-03-27 08:09:32 +01:00 Compare
kjuulh force-pushed renovate/all from d488abdfca to c4d502d7b8 2025-03-27 08:38:07 +01:00 Compare
kjuulh force-pushed renovate/all from c4d502d7b8 to 4f990c8e06 2025-03-27 09:06:58 +01:00 Compare
kjuulh force-pushed renovate/all from 4f990c8e06 to 3712845744 2025-03-27 09:35:20 +01:00 Compare
kjuulh force-pushed renovate/all from 3712845744 to 407b029e2d 2025-03-27 10:04:40 +01:00 Compare
kjuulh force-pushed renovate/all from 407b029e2d to a32dcd5bd3 2025-03-27 10:29:28 +01:00 Compare
kjuulh force-pushed renovate/all from a32dcd5bd3 to 88faae82bc 2025-03-27 11:04:26 +01:00 Compare
kjuulh force-pushed renovate/all from 88faae82bc to bde968f1dd 2025-03-27 11:33:07 +01:00 Compare
kjuulh force-pushed renovate/all from bde968f1dd to 8fda109337 2025-03-27 12:02:19 +01:00 Compare
kjuulh force-pushed renovate/all from 8fda109337 to fb9f548173 2025-03-27 12:31:21 +01:00 Compare
kjuulh force-pushed renovate/all from fb9f548173 to ede93c76ba 2025-03-27 13:01:19 +01:00 Compare
kjuulh force-pushed renovate/all from ede93c76ba to 8603ca0a99 2025-03-27 13:50:11 +01:00 Compare
kjuulh force-pushed renovate/all from 8603ca0a99 to c039261beb 2025-03-27 14:26:23 +01:00 Compare
kjuulh force-pushed renovate/all from c039261beb to 5dd23f9428 2025-03-27 14:56:49 +01:00 Compare
kjuulh force-pushed renovate/all from 5dd23f9428 to 253ccfe730 2025-03-27 15:30:01 +01:00 Compare
kjuulh force-pushed renovate/all from 253ccfe730 to c896900d78 2025-03-27 16:05:12 +01:00 Compare
kjuulh force-pushed renovate/all from c896900d78 to b7136e07cc 2025-03-27 16:34:13 +01:00 Compare
kjuulh force-pushed renovate/all from b7136e07cc to bb185b833d 2025-03-27 17:04:12 +01:00 Compare
kjuulh force-pushed renovate/all from bb185b833d to 40404d3fbc 2025-03-27 17:34:52 +01:00 Compare
kjuulh force-pushed renovate/all from 40404d3fbc to 9df247026f 2025-03-27 18:06:03 +01:00 Compare
kjuulh force-pushed renovate/all from 9df247026f to 3d8f40d1f5 2025-03-27 18:36:55 +01:00 Compare
kjuulh force-pushed renovate/all from 3d8f40d1f5 to 19afa0a30c 2025-03-27 19:06:41 +01:00 Compare
kjuulh force-pushed renovate/all from 19afa0a30c to 14b5b7d87d 2025-03-27 19:35:09 +01:00 Compare
kjuulh force-pushed renovate/all from 14b5b7d87d to 1fa6a1f4ba 2025-03-27 20:04:17 +01:00 Compare
kjuulh force-pushed renovate/all from 1fa6a1f4ba to 64b0e44fec 2025-03-27 20:32:51 +01:00 Compare
kjuulh force-pushed renovate/all from 64b0e44fec to 45310283ab 2025-03-27 21:02:40 +01:00 Compare
kjuulh force-pushed renovate/all from 45310283ab to 8af43982dc 2025-03-27 21:31:20 +01:00 Compare
kjuulh force-pushed renovate/all from 8af43982dc to cad7380ab3 2025-03-28 23:30:59 +01:00 Compare
kjuulh force-pushed renovate/all from cad7380ab3 to 7b47aae649 2025-03-29 02:25:23 +01:00 Compare
kjuulh force-pushed renovate/all from 7b47aae649 to b5bf80c1dc 2025-03-29 05:26:05 +01:00 Compare
kjuulh force-pushed renovate/all from b5bf80c1dc to ddd1f6d560 2025-03-30 05:27:15 +02:00 Compare
kjuulh force-pushed renovate/all from ddd1f6d560 to ee0efb017f 2025-03-31 02:24:53 +02:00 Compare
kjuulh force-pushed renovate/all from ee0efb017f to 905acd9c54 2025-03-31 05:25:20 +02:00 Compare
kjuulh force-pushed renovate/all from 905acd9c54 to 6590e5421c 2025-04-01 02:26:44 +02:00 Compare
kjuulh force-pushed renovate/all from 6590e5421c to 7f3efe4b79 2025-04-01 05:25:56 +02:00 Compare
kjuulh force-pushed renovate/all from 7f3efe4b79 to 5d5e4ef2f3 2025-04-02 02:30:21 +02:00 Compare
kjuulh force-pushed renovate/all from 5d5e4ef2f3 to e4115e149a 2025-04-06 02:27:58 +02:00 Compare
kjuulh force-pushed renovate/all from e4115e149a to 1d1cc539a0 2025-04-12 02:30:39 +02:00 Compare
kjuulh force-pushed renovate/all from 1d1cc539a0 to 48de20fa61 2025-04-12 05:27:51 +02:00 Compare
kjuulh force-pushed renovate/all from 48de20fa61 to 80e83a55f6 2025-04-14 05:28:21 +02:00 Compare
kjuulh force-pushed renovate/all from 80e83a55f6 to 1493acae83 2025-04-15 02:30:55 +02:00 Compare
kjuulh force-pushed renovate/all from 1493acae83 to 32fbd00968 2025-04-16 02:27:47 +02:00 Compare
kjuulh force-pushed renovate/all from 32fbd00968 to d80d467bde 2025-04-16 05:26:26 +02:00 Compare
kjuulh force-pushed renovate/all from d80d467bde to 02ace1c921 2025-04-19 02:28:21 +02:00 Compare
kjuulh force-pushed renovate/all from 02ace1c921 to 3cf107f36e 2025-04-19 05:27:50 +02:00 Compare
kjuulh force-pushed renovate/all from 3cf107f36e to 3598a937c4 2025-04-26 02:28:55 +02:00 Compare
kjuulh force-pushed renovate/all from 3598a937c4 to 562d05e88b 2025-04-26 05:27:15 +02:00 Compare
kjuulh force-pushed renovate/all from 562d05e88b to 8d95752b53 2025-04-29 02:30:01 +02:00 Compare
kjuulh force-pushed renovate/all from 8d95752b53 to 61f39c0c03 2025-04-29 05:29:02 +02:00 Compare
kjuulh force-pushed renovate/all from 61f39c0c03 to 3d727a8d95 2025-05-01 02:27:15 +02:00 Compare
kjuulh force-pushed renovate/all from 3d727a8d95 to db1398a4d9 2025-05-01 05:26:18 +02:00 Compare
kjuulh force-pushed renovate/all from db1398a4d9 to 2b8e34b76e 2025-05-07 02:29:25 +02:00 Compare
kjuulh force-pushed renovate/all from 2b8e34b76e to 245fc52b01 2025-05-07 05:28:07 +02:00 Compare
kjuulh force-pushed renovate/all from 245fc52b01 to b351fd8cf5 2025-05-08 02:27:15 +02:00 Compare
kjuulh force-pushed renovate/all from b351fd8cf5 to 4ea16626bf 2025-05-08 05:26:07 +02:00 Compare
kjuulh force-pushed renovate/all from 4ea16626bf to 8e495eec29 2025-05-11 02:27:24 +02:00 Compare
kjuulh force-pushed renovate/all from 8e495eec29 to fd5e717809 2025-05-11 05:28:13 +02:00 Compare
kjuulh force-pushed renovate/all from fd5e717809 to 1e5130d9a4 2025-05-12 02:29:03 +02:00 Compare
kjuulh force-pushed renovate/all from 1e5130d9a4 to 0ddbf3f8c4 2025-05-12 05:26:17 +02:00 Compare
kjuulh force-pushed renovate/all from 0ddbf3f8c4 to 07be893941 2025-05-13 02:28:08 +02:00 Compare
kjuulh force-pushed renovate/all from 07be893941 to 4bdf831292 2025-05-20 02:26:33 +02:00 Compare
kjuulh force-pushed renovate/all from 4bdf831292 to da441694db 2025-05-20 05:26:36 +02:00 Compare
kjuulh force-pushed renovate/all from da441694db to 4fd1148939 2025-05-23 05:27:40 +02:00 Compare
kjuulh force-pushed renovate/all from 4fd1148939 to 975237877e 2025-05-24 02:29:11 +02:00 Compare
kjuulh force-pushed renovate/all from 975237877e to 168d0cd5b1 2025-05-25 02:28:34 +02:00 Compare
kjuulh force-pushed renovate/all from 168d0cd5b1 to ff5a33a835 2025-05-25 05:28:22 +02:00 Compare
kjuulh force-pushed renovate/all from ff5a33a835 to 7b63eacc04 2025-05-28 02:31:01 +02:00 Compare
kjuulh force-pushed renovate/all from 7b63eacc04 to 482c66ee2a 2025-05-28 05:27:00 +02:00 Compare
kjuulh force-pushed renovate/all from 482c66ee2a to ff89418105 2025-06-02 05:26:53 +02:00 Compare
kjuulh force-pushed renovate/all from ff89418105 to 5e29326e86 2025-06-03 02:28:05 +02:00 Compare
kjuulh force-pushed renovate/all from 5e29326e86 to 23f80c368a 2025-06-03 05:27:07 +02:00 Compare
kjuulh force-pushed renovate/all from 23f80c368a to 26eb4c45f6 2025-06-04 02:28:52 +02:00 Compare
kjuulh force-pushed renovate/all from 26eb4c45f6 to 46def470b0 2025-06-04 02:29:08 +02:00 Compare
kjuulh force-pushed renovate/all from 46def470b0 to 9e51a060bf 2025-06-07 02:29:02 +02:00 Compare
kjuulh force-pushed renovate/all from 9e51a060bf to 80ec419f0e 2025-06-07 05:27:54 +02:00 Compare
kjuulh force-pushed renovate/all from 80ec419f0e to 9e04efe162 2025-06-10 02:32:50 +02:00 Compare
kjuulh force-pushed renovate/all from 9e04efe162 to 35703cc8f1 2025-06-10 05:30:00 +02:00 Compare
kjuulh force-pushed renovate/all from 35703cc8f1 to 2227512840 2025-07-03 02:30:46 +02:00 Compare
kjuulh force-pushed renovate/all from 2227512840 to 0139bbef76 2025-07-03 05:29:35 +02:00 Compare
kjuulh force-pushed renovate/all from 0139bbef76 to 7c6d8ffc54 2025-07-05 02:36:24 +02:00 Compare
kjuulh force-pushed renovate/all from 7c6d8ffc54 to e71ccab5dd 2025-07-05 05:29:29 +02:00 Compare
Author
Owner

⚠️ Artifact update problem

Renovate failed to update an artifact 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:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: Cargo.lock
Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package toml@0.8.20 --precise 0.9.10
    Updating crates.io index
error: failed to select a version for the requirement `toml = "^0.8.8"`
candidate versions found which didn't match: 0.9.10+spec-1.1.0
location searched: crates.io index
required by package `human-panic v2.0.2`
    ... which satisfies dependency `human-panic = "^2.0.0"` (locked to 2.0.2) of package `hyperlog-tui v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/hyperlog/crates/hyperlog-tui)`
    ... which satisfies path dependency `hyperlog-tui` (locked to 0.1.0) of package `hyperlog v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/hyperlog/crates/hyperlog)`

### ⚠️ Artifact update problem Renovate failed to update an artifact 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: - any of the package files in this branch needs updating, or - the branch becomes conflicted, or - you click the rebase/retry checkbox if found above, or - you rename this PR's title to start with "rebase!" to trigger it manually The artifact failure details are included below: ##### File name: Cargo.lock ``` Command failed: cargo update --config net.git-fetch-with-cli=true --manifest-path Cargo.toml --package toml@0.8.20 --precise 0.9.10 Updating crates.io index error: failed to select a version for the requirement `toml = "^0.8.8"` candidate versions found which didn't match: 0.9.10+spec-1.1.0 location searched: crates.io index required by package `human-panic v2.0.2` ... which satisfies dependency `human-panic = "^2.0.0"` (locked to 2.0.2) of package `hyperlog-tui v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/hyperlog/crates/hyperlog-tui)` ... which satisfies path dependency `hyperlog-tui` (locked to 0.1.0) of package `hyperlog v0.1.0 (/tmp/renovate/repos/gitea/kjuulh/hyperlog/crates/hyperlog)` ```
kjuulh force-pushed renovate/all from e71ccab5dd to 4545f624ed 2025-07-09 02:30:22 +02:00 Compare
kjuulh force-pushed renovate/all from 4545f624ed to a1424d7ca3 2025-07-09 05:27:40 +02:00 Compare
kjuulh force-pushed renovate/all from a1424d7ca3 to 258eb42bfc 2025-07-10 02:29:27 +02:00 Compare
kjuulh force-pushed renovate/all from 258eb42bfc to 28a4ddefb6 2025-07-10 05:29:22 +02:00 Compare
kjuulh force-pushed renovate/all from 28a4ddefb6 to a6cc5301e8 2025-07-11 02:31:05 +02:00 Compare
kjuulh force-pushed renovate/all from a6cc5301e8 to ce3ff98959 2025-07-11 05:30:20 +02:00 Compare
kjuulh force-pushed renovate/all from ce3ff98959 to b7206cd67f 2025-07-12 02:28:34 +02:00 Compare
kjuulh force-pushed renovate/all from b7206cd67f to 8cdf90f09c 2025-07-12 05:27:44 +02:00 Compare
kjuulh force-pushed renovate/all from 8cdf90f09c to 2dd7a35c4c 2025-07-13 02:28:30 +02:00 Compare
kjuulh force-pushed renovate/all from 2dd7a35c4c to c6db4b59f1 2025-07-13 05:27:27 +02:00 Compare
kjuulh force-pushed renovate/all from c6db4b59f1 to b7eee8ff5e 2025-07-14 02:29:01 +02:00 Compare
kjuulh force-pushed renovate/all from b7eee8ff5e to 1b58ae01d3 2025-07-14 05:27:41 +02:00 Compare
kjuulh force-pushed renovate/all from 1b58ae01d3 to 2a557c6368 2025-07-15 02:28:46 +02:00 Compare
kjuulh force-pushed renovate/all from 2a557c6368 to d1bf54f31d 2025-07-15 05:27:45 +02:00 Compare
kjuulh force-pushed renovate/all from d1bf54f31d to 6a831284b0 2025-07-16 02:32:21 +02:00 Compare
kjuulh force-pushed renovate/all from 6a831284b0 to d4da72666d 2025-07-16 05:29:47 +02:00 Compare
kjuulh force-pushed renovate/all from d4da72666d to af8fdb569f 2025-07-17 02:30:53 +02:00 Compare
kjuulh force-pushed renovate/all from af8fdb569f to 928877dfea 2025-07-17 05:29:31 +02:00 Compare
kjuulh force-pushed renovate/all from 928877dfea to 756b72d598 2025-07-18 02:30:42 +02:00 Compare
kjuulh force-pushed renovate/all from 756b72d598 to 0d389c8795 2025-07-18 05:29:32 +02:00 Compare
kjuulh force-pushed renovate/all from 0d389c8795 to 59c72f105a 2025-07-19 02:31:26 +02:00 Compare
kjuulh force-pushed renovate/all from 59c72f105a to 26834dc42c 2025-07-19 05:30:06 +02:00 Compare
kjuulh force-pushed renovate/all from 26834dc42c to c42548000f 2025-07-20 02:30:12 +02:00 Compare
kjuulh force-pushed renovate/all from c42548000f to 8b6ffb1fe4 2025-07-20 05:29:12 +02:00 Compare
kjuulh force-pushed renovate/all from 8b6ffb1fe4 to dafbe510dc 2025-07-21 02:30:26 +02:00 Compare
kjuulh force-pushed renovate/all from dafbe510dc to 4dc6b548f7 2025-07-21 05:29:50 +02:00 Compare
kjuulh force-pushed renovate/all from 4dc6b548f7 to f64b646739 2025-07-22 02:31:44 +02:00 Compare
kjuulh force-pushed renovate/all from f64b646739 to 462a724004 2025-07-22 05:29:17 +02:00 Compare
kjuulh force-pushed renovate/all from 462a724004 to c16af63e57 2025-07-23 02:30:31 +02:00 Compare
kjuulh force-pushed renovate/all from c16af63e57 to 716764ad36 2025-07-23 05:29:36 +02:00 Compare
kjuulh force-pushed renovate/all from 716764ad36 to bbc5047b7e 2025-07-24 02:30:29 +02:00 Compare
kjuulh force-pushed renovate/all from bbc5047b7e to b99bab0a72 2025-07-24 05:29:17 +02:00 Compare
kjuulh force-pushed renovate/all from b99bab0a72 to 29db965dc8 2025-07-25 02:30:29 +02:00 Compare
kjuulh force-pushed renovate/all from 29db965dc8 to a2f8a7170d 2025-07-25 05:30:20 +02:00 Compare
kjuulh force-pushed renovate/all from a2f8a7170d to 9d7a52ec36 2025-07-26 02:30:06 +02:00 Compare
kjuulh force-pushed renovate/all from 9d7a52ec36 to d5a796cab4 2025-07-26 05:30:33 +02:00 Compare
kjuulh force-pushed renovate/all from d5a796cab4 to d3d013376c 2025-11-13 03:03:55 +01:00 Compare
kjuulh force-pushed renovate/all from d3d013376c to 7f94af5276 2025-11-13 05:25:49 +01:00 Compare
kjuulh force-pushed renovate/all from 7f94af5276 to 2d23f0b978 2025-11-14 02:30:37 +01:00 Compare
kjuulh force-pushed renovate/all from 2d23f0b978 to c9d25b27ce 2025-11-14 05:29:46 +01:00 Compare
kjuulh force-pushed renovate/all from c9d25b27ce to fd7dad46c2 2025-11-15 02:32:47 +01:00 Compare
kjuulh force-pushed renovate/all from fd7dad46c2 to e434ce2f19 2025-11-15 05:30:03 +01:00 Compare
kjuulh force-pushed renovate/all from e434ce2f19 to 1e7ace2954 2025-11-16 02:30:58 +01:00 Compare
kjuulh force-pushed renovate/all from 1e7ace2954 to 9153a20465 2025-11-16 05:30:07 +01:00 Compare
kjuulh force-pushed renovate/all from 9153a20465 to 0f392529a6 2025-11-17 02:30:21 +01:00 Compare
kjuulh force-pushed renovate/all from 0f392529a6 to 43146cee2a 2025-11-17 05:29:58 +01:00 Compare
kjuulh force-pushed renovate/all from 43146cee2a to d6ce517d93 2025-11-18 02:34:26 +01:00 Compare
kjuulh force-pushed renovate/all from d6ce517d93 to 425a77bf47 2025-11-18 05:34:31 +01:00 Compare
kjuulh force-pushed renovate/all from 425a77bf47 to 6a9cad87d9 2025-11-19 02:31:23 +01:00 Compare
kjuulh force-pushed renovate/all from 6a9cad87d9 to ef142967d7 2025-11-19 05:30:03 +01:00 Compare
kjuulh force-pushed renovate/all from ef142967d7 to 5efe4171be 2025-11-20 02:33:46 +01:00 Compare
kjuulh force-pushed renovate/all from 5efe4171be to 3a6c0e8453 2025-11-20 05:33:07 +01:00 Compare
kjuulh force-pushed renovate/all from 3a6c0e8453 to 18330b8bad 2025-11-21 02:31:26 +01:00 Compare
kjuulh force-pushed renovate/all from 18330b8bad to cf8b67d474 2025-11-21 05:31:06 +01:00 Compare
kjuulh force-pushed renovate/all from cf8b67d474 to 5a3058d974 2025-11-22 02:31:12 +01:00 Compare
kjuulh force-pushed renovate/all from 5a3058d974 to 3ce84417d8 2025-11-22 05:30:45 +01:00 Compare
kjuulh force-pushed renovate/all from 3ce84417d8 to 6624a820b5 2025-11-23 02:30:52 +01:00 Compare
kjuulh force-pushed renovate/all from 6624a820b5 to 49a1de17e1 2025-11-23 05:30:35 +01:00 Compare
kjuulh force-pushed renovate/all from 49a1de17e1 to 81d8182192 2025-11-24 02:31:08 +01:00 Compare
kjuulh force-pushed renovate/all from 81d8182192 to 5d2a6444dc 2025-11-24 05:30:20 +01:00 Compare
kjuulh force-pushed renovate/all from 5d2a6444dc to fcc36ae99d 2025-11-25 02:33:17 +01:00 Compare
kjuulh force-pushed renovate/all from fcc36ae99d to f7b74e9b62 2025-11-25 05:30:38 +01:00 Compare
kjuulh force-pushed renovate/all from f7b74e9b62 to c45ac62c11 2025-11-26 02:30:52 +01:00 Compare
kjuulh force-pushed renovate/all from c45ac62c11 to e02faf82f1 2025-11-26 05:30:48 +01:00 Compare
kjuulh force-pushed renovate/all from e02faf82f1 to 0b30610f45 2025-11-27 02:31:31 +01:00 Compare
kjuulh force-pushed renovate/all from 0b30610f45 to 220e433956 2025-11-27 05:30:30 +01:00 Compare
kjuulh force-pushed renovate/all from 220e433956 to d0c20e02a2 2025-11-28 02:31:23 +01:00 Compare
kjuulh force-pushed renovate/all from d0c20e02a2 to 0ef7134327 2025-11-28 05:30:41 +01:00 Compare
kjuulh force-pushed renovate/all from 0ef7134327 to 43fc51ce6f 2025-11-29 02:36:29 +01:00 Compare
kjuulh force-pushed renovate/all from 43fc51ce6f to 4963566fa9 2025-11-29 05:34:13 +01:00 Compare
kjuulh force-pushed renovate/all from 4963566fa9 to 9fb4927db7 2025-11-30 02:31:01 +01:00 Compare
kjuulh force-pushed renovate/all from 9fb4927db7 to f802e0a1cb 2025-11-30 05:30:51 +01:00 Compare
kjuulh force-pushed renovate/all from f802e0a1cb to 0536e68634 2025-12-01 02:30:47 +01:00 Compare
kjuulh force-pushed renovate/all from 0536e68634 to f9e2b792d2 2025-12-01 05:30:34 +01:00 Compare
kjuulh force-pushed renovate/all from f9e2b792d2 to 1b3bb9f90d 2025-12-02 02:30:55 +01:00 Compare
kjuulh force-pushed renovate/all from 1b3bb9f90d to cae26b56c7 2025-12-02 05:32:04 +01:00 Compare
kjuulh force-pushed renovate/all from cae26b56c7 to 062bea51c6 2025-12-03 02:31:42 +01:00 Compare
kjuulh force-pushed renovate/all from 062bea51c6 to 40c281cdc9 2025-12-03 05:31:25 +01:00 Compare
kjuulh force-pushed renovate/all from 40c281cdc9 to 77c1bc3810 2025-12-04 02:32:11 +01:00 Compare
kjuulh force-pushed renovate/all from 77c1bc3810 to 1d240323ca 2025-12-04 05:40:34 +01:00 Compare
kjuulh force-pushed renovate/all from 1d240323ca to 20d0848360 2025-12-05 02:31:49 +01:00 Compare
kjuulh force-pushed renovate/all from 20d0848360 to 5f319141c2 2025-12-05 05:30:31 +01:00 Compare
kjuulh force-pushed renovate/all from 5f319141c2 to 5db2a6f4db 2025-12-06 02:31:07 +01:00 Compare
kjuulh force-pushed renovate/all from 5db2a6f4db to 515989ac55 2025-12-06 05:30:37 +01:00 Compare
kjuulh force-pushed renovate/all from 515989ac55 to addbe97259 2025-12-07 02:31:10 +01:00 Compare
kjuulh force-pushed renovate/all from addbe97259 to ec25aa3d8d 2025-12-07 05:30:49 +01:00 Compare
kjuulh force-pushed renovate/all from ec25aa3d8d to 973624657b 2025-12-08 02:31:32 +01:00 Compare
kjuulh force-pushed renovate/all from 973624657b to f7011ccd98 2025-12-08 05:31:21 +01:00 Compare
kjuulh force-pushed renovate/all from f7011ccd98 to 158a34471d 2025-12-09 02:33:21 +01:00 Compare
kjuulh force-pushed renovate/all from 158a34471d to 082bfd68e7 2025-12-09 05:31:36 +01:00 Compare
kjuulh force-pushed renovate/all from 082bfd68e7 to 5b46873c2e 2025-12-10 02:32:19 +01:00 Compare
kjuulh force-pushed renovate/all from 5b46873c2e to ceea2caced 2025-12-10 05:31:10 +01:00 Compare
kjuulh force-pushed renovate/all from ceea2caced to 72fb51061e 2025-12-11 02:32:12 +01:00 Compare
kjuulh force-pushed renovate/all from 72fb51061e to 045c74b17a 2025-12-11 05:31:11 +01:00 Compare
kjuulh force-pushed renovate/all from 045c74b17a to 710cd43012 2025-12-12 02:33:50 +01:00 Compare
kjuulh force-pushed renovate/all from 710cd43012 to a0f64ae1df 2025-12-12 05:31:36 +01:00 Compare
kjuulh force-pushed renovate/all from a0f64ae1df to 9dcae49841 2025-12-13 02:33:01 +01:00 Compare
kjuulh force-pushed renovate/all from 9dcae49841 to ce2454500c 2025-12-13 05:31:48 +01:00 Compare
kjuulh force-pushed renovate/all from ce2454500c to cf484edc7b 2025-12-14 02:33:18 +01:00 Compare
kjuulh force-pushed renovate/all from cf484edc7b to 3c4eeb5570 2025-12-14 05:31:44 +01:00 Compare
kjuulh force-pushed renovate/all from 3c4eeb5570 to da67777b7d 2025-12-15 02:33:14 +01:00 Compare
kjuulh force-pushed renovate/all from da67777b7d to 1e399359a6 2025-12-15 05:32:11 +01:00 Compare
kjuulh force-pushed renovate/all from 1e399359a6 to 9c504a63b8 2025-12-16 02:34:57 +01:00 Compare
kjuulh force-pushed renovate/all from 9c504a63b8 to 9bb03e201a 2025-12-16 05:34:05 +01:00 Compare
kjuulh force-pushed renovate/all from 9bb03e201a to 0bf9b1fbef 2025-12-17 02:35:02 +01:00 Compare
kjuulh force-pushed renovate/all from 0bf9b1fbef to 39ac25f83a 2025-12-17 05:33:00 +01:00 Compare
kjuulh force-pushed renovate/all from 39ac25f83a to d05d44f114 2025-12-18 02:33:12 +01:00 Compare
kjuulh force-pushed renovate/all from d05d44f114 to 0f75fcf9d5 2025-12-18 05:32:11 +01:00 Compare
kjuulh force-pushed renovate/all from 0f75fcf9d5 to a15786b12b 2025-12-19 02:38:38 +01:00 Compare
kjuulh force-pushed renovate/all from a15786b12b to b2f80cf4a9 2025-12-19 05:36:36 +01:00 Compare
kjuulh force-pushed renovate/all from b2f80cf4a9 to 75013c374a 2025-12-20 02:33:08 +01:00 Compare
kjuulh force-pushed renovate/all from 75013c374a to 71275cb0e6 2025-12-20 05:31:33 +01:00 Compare
kjuulh force-pushed renovate/all from 71275cb0e6 to bb06202c5d 2025-12-21 02:34:10 +01:00 Compare
kjuulh force-pushed renovate/all from bb06202c5d to 65f96b8bb1 2025-12-21 05:32:22 +01:00 Compare
kjuulh force-pushed renovate/all from 65f96b8bb1 to 66566ccc9e 2025-12-22 02:33:18 +01:00 Compare
kjuulh force-pushed renovate/all from 66566ccc9e to 4729743fe6 2025-12-22 05:32:20 +01:00 Compare
kjuulh force-pushed renovate/all from 4729743fe6 to 07f711bd75 2025-12-23 02:36:05 +01:00 Compare
kjuulh force-pushed renovate/all from 07f711bd75 to 227e5313db 2025-12-23 05:33:32 +01:00 Compare
kjuulh force-pushed renovate/all from 227e5313db to abe297a385 2025-12-24 02:35:27 +01:00 Compare
kjuulh force-pushed renovate/all from abe297a385 to dbc1e96a3d 2025-12-24 05:33:02 +01:00 Compare
kjuulh force-pushed renovate/all from dbc1e96a3d to da6e0f52ec 2025-12-25 02:33:53 +01:00 Compare
kjuulh force-pushed renovate/all from da6e0f52ec to 8422cfaf06 2025-12-25 05:32:42 +01:00 Compare
kjuulh force-pushed renovate/all from 8422cfaf06 to 6292f90aef 2025-12-26 02:33:14 +01:00 Compare
kjuulh force-pushed renovate/all from 6292f90aef to 1e994d534d 2025-12-26 05:32:34 +01:00 Compare
kjuulh force-pushed renovate/all from 1e994d534d to 6264881dba 2025-12-27 02:33:43 +01:00 Compare
kjuulh force-pushed renovate/all from 6264881dba to 54584a4f6b 2025-12-27 05:32:55 +01:00 Compare
kjuulh force-pushed renovate/all from 54584a4f6b to b304969ab4 2025-12-28 02:34:55 +01:00 Compare
kjuulh force-pushed renovate/all from b304969ab4 to 4243289980 2025-12-28 05:33:36 +01:00 Compare
kjuulh force-pushed renovate/all from 4243289980 to 21319f6a99 2025-12-29 02:35:04 +01:00 Compare
kjuulh force-pushed renovate/all from 21319f6a99 to 84462ab733 2025-12-30 02:34:03 +01:00 Compare
kjuulh force-pushed renovate/all from 84462ab733 to 119b3dee76 2025-12-30 05:32:56 +01:00 Compare
kjuulh force-pushed renovate/all from 119b3dee76 to 65b16190f4 2025-12-31 02:36:05 +01:00 Compare
kjuulh force-pushed renovate/all from 65b16190f4 to 4277e575ae 2026-01-03 02:33:45 +01:00 Compare
kjuulh force-pushed renovate/all from 4277e575ae to 516e7f72e6 2026-01-03 05:31:49 +01:00 Compare
kjuulh force-pushed renovate/all from 516e7f72e6 to fa6c5a0a02 2026-01-04 02:34:14 +01:00 Compare
kjuulh force-pushed renovate/all from fa6c5a0a02 to caa1bb92ed 2026-01-04 05:31:39 +01:00 Compare
kjuulh force-pushed renovate/all from caa1bb92ed to 370b3d25b0 2026-01-07 02:33:57 +01:00 Compare
kjuulh force-pushed renovate/all from 370b3d25b0 to 70a4e18d34 2026-01-07 05:30:50 +01:00 Compare
Some checks failed
renovate/artifacts Artifact file update failure
continuous-integration/drone/push Build encountered an error
continuous-integration/drone/pr Build encountered an error
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/all:renovate/all
git checkout renovate/all
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kjuulh/hyperlog#98