From bdd6657fd7268dc8882214f540a6150eb78cfae0 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Thu, 29 Jan 2026 09:48:18 -0700 Subject: [PATCH] 0.17.0 --- CHANGELOG.md | 17 +++++++++++++++ Cargo.toml | 38 ++++++++++++++++----------------- examples/editor-test/Cargo.toml | 8 +++---- examples/editor/Cargo.toml | 6 +++--- examples/multiview/Cargo.toml | 6 +++--- examples/rich-text/Cargo.toml | 6 +++--- examples/terminal/Cargo.toml | 6 +++--- 7 files changed, 52 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e93d3a..0a56cd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.17.0] - 2026-01-29 + +### Fixed + +- Fix variable font weight for SwashCache::get_outline_commands() +- Allow fallback to fonts with mismatched stretch or style +- Shape as fake italic if no matching italic font exists +- Prevent line break opportunities from splitting ligatures + +### Changed + +- Update all dependencies to latest versions + +### Removed + +- Attrs::matches was removed as it is not compatible with new fallback logic + ## [0.16.0] - 2025-12-29 ### Added diff --git a/Cargo.toml b/Cargo.toml index a93c7be..87690c0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "cosmic-text" description = "Pure Rust multi-line text handling" -version = "0.16.0" +version = "0.17.0" authors = ["Jeremy Soller "] edition = "2021" license = "MIT OR Apache-2.0" @@ -10,35 +10,35 @@ repository = "https://github.com/pop-os/cosmic-text" rust-version = "1.80" [dependencies] -bitflags = "2.4.1" +bitflags = "2.10.0" core_maths = { version = "0.1.1", optional = true } cosmic_undo_2 = { version = "0.2.0", optional = true } fontdb = { version = "0.23", default-features = false } -harfrust = { version = "0.4.1", default-features = false } +harfrust = { version = "0.2.1", default-features = false } hashbrown = { version = "0.16", optional = true, default-features = false } -libm = { version = "0.2.8", optional = true } +libm = { version = "0.2.16", optional = true } linebender_resource_handle = { version = "0.1.1", default-features = false } -log = "0.4.20" -modit = { version = "0.1.4", optional = true } -rangemap = "1.4.0" -rustc-hash = { version = "1.1.0", default-features = false } -self_cell = "1.0.1" -skrifa = { version = "0.39.0", default-features = false } -smol_str = { version = "0.2.2", default-features = false } -syntect = { version = "5.1.0", optional = true } -sys-locale = { version = "0.3.1", optional = true } +log = "0.4.29" +modit = { version = "0.1.5", optional = true } +rangemap = "1.6.0" +rustc-hash = { version = "2.1.1", default-features = false } +self_cell = "1.2.2" +skrifa = { version = "0.36.0", default-features = false } +smol_str = { version = "0.3.2", default-features = false } +syntect = { version = "5.3.0", optional = true } +sys-locale = { version = "0.3.2", optional = true } unicode-linebreak = "0.1.5" -unicode-script = "0.5.5" -unicode-segmentation = "1.10.1" +unicode-script = "0.5.8" +unicode-segmentation = "1.12.0" [dependencies.swash] -version = "0.2.0" +version = "0.2.6" default-features = false features = ["render", "scale"] optional = true [dependencies.unicode-bidi] -version = "0.3.13" +version = "0.3.18" default-features = false features = ["hardcoded-data"] @@ -75,8 +75,8 @@ harness = false members = ["examples/*"] [dev-dependencies] -tiny-skia = "0.11.2" -criterion = { version = "0.5.1", default-features = false, features = [ +tiny-skia = "0.11.4" +criterion = { version = "0.7.0", default-features = false, features = [ "cargo_bench_support", ] } diff --git a/examples/editor-test/Cargo.toml b/examples/editor-test/Cargo.toml index 14fe57d..d5cd86e 100644 --- a/examples/editor-test/Cargo.toml +++ b/examples/editor-test/Cargo.toml @@ -8,8 +8,8 @@ publish = false [dependencies] cosmic-text = { path = "../../" } -env_logger = "0.10" -fontdb = "0.13" +env_logger = "0.11" +fontdb = "0.23" log = "0.4" -orbclient = "0.3.35" -unicode-segmentation = "1.7" +orbclient = "0.3.50" +unicode-segmentation = "1.12" diff --git a/examples/editor/Cargo.toml b/examples/editor/Cargo.toml index 86ebcba..429d24c 100644 --- a/examples/editor/Cargo.toml +++ b/examples/editor/Cargo.toml @@ -8,12 +8,12 @@ publish = false [dependencies] cosmic-text = { path = "../..", features = ["syntect"] } -env_logger = "0.10" -fontdb = "0.13" +env_logger = "0.11" +fontdb = "0.23" log = "0.4" softbuffer = "0.4" tiny-skia = "0.11" -unicode-segmentation = "1.7" +unicode-segmentation = "1.12" winit = "0.29" [features] diff --git a/examples/multiview/Cargo.toml b/examples/multiview/Cargo.toml index 8afde53..2d913a1 100644 --- a/examples/multiview/Cargo.toml +++ b/examples/multiview/Cargo.toml @@ -8,10 +8,10 @@ publish = false [dependencies] cosmic-text = { path = "../.." } -env_logger = "0.10" -fontdb = "0.13" +env_logger = "0.11" +fontdb = "0.23" log = "0.4" softbuffer = "0.4" tiny-skia = "0.11" -unicode-segmentation = "1.7" +unicode-segmentation = "1.12" winit = "0.29" diff --git a/examples/rich-text/Cargo.toml b/examples/rich-text/Cargo.toml index 582c7c1..527200f 100644 --- a/examples/rich-text/Cargo.toml +++ b/examples/rich-text/Cargo.toml @@ -8,10 +8,10 @@ publish = false [dependencies] cosmic-text = { path = "../.." } -env_logger = "0.10" -fontdb = "0.13" +env_logger = "0.11" +fontdb = "0.23" log = "0.4" softbuffer = "0.4" tiny-skia = "0.11" -unicode-segmentation = "1.7" +unicode-segmentation = "1.12" winit = "0.29" diff --git a/examples/terminal/Cargo.toml b/examples/terminal/Cargo.toml index 55eb6be..efb7ea8 100644 --- a/examples/terminal/Cargo.toml +++ b/examples/terminal/Cargo.toml @@ -7,8 +7,8 @@ license = "MIT OR Apache-2.0" publish = false [dependencies] -colored = "2.0" +colored = "3.1" cosmic-text = { path = "../../" } -env_logger = "0.10" -fontdb = "0.13" +env_logger = "0.11" +fontdb = "0.23" log = "0.4"