|
| 1 | +--- |
| 2 | +layout: post |
| 3 | +author: gtk-rs developers |
| 4 | +title: New Release |
| 5 | +categories: [front, crates] |
| 6 | +date: 2024-02-04 20:00:00 +0000 |
| 7 | +--- |
| 8 | + |
| 9 | +* Write intro here * |
| 10 | + |
| 11 | +### gtk-rs-core |
| 12 | + |
| 13 | +* Removal of glib channels |
| 14 | +* Removal of re-exported once_cell crate, use `std::cell::OnceCell` / `std::sync::OnceLock` |
| 15 | +* Re-organized traits in glib |
| 16 | +* Dynamic types support |
| 17 | + |
| 18 | +### gtk4-rs |
| 19 | + |
| 20 | +* GTK 4.14 APIs support |
| 21 | +* Support `TemplateChild<T>` usage with `glib::Properties` macro |
| 22 | + |
| 23 | +[gtk4-rs](https://github.com/gtk-rs/gtk4-rs): |
| 24 | + |
| 25 | + * [gtk: Don't propogate unused argument](https://github.com/gtk-rs/gtk4-rs/pull/1591) |
| 26 | + * [examples: Add example for About Dialog](https://github.com/gtk-rs/gtk4-rs/pull/1589) |
| 27 | + * [gtk::show\_about\_dialog: Set hide\_on\_close](https://github.com/gtk-rs/gtk4-rs/pull/1588) |
| 28 | + * [Regen with ffi workspacecs usage](https://github.com/gtk-rs/gtk4-rs/pull/1587) |
| 29 | + * [Add missing installation step for Windows](https://github.com/gtk-rs/gtk4-rs/pull/1584) |
| 30 | + * [book: Use const consistently](https://github.com/gtk-rs/gtk4-rs/pull/1582) |
| 31 | + * [book: Less usage of once\_cell](https://github.com/gtk-rs/gtk4-rs/pull/1581) |
| 32 | + * [Get rid of once\_cell](https://github.com/gtk-rs/gtk4-rs/pull/1580) |
| 33 | + * [Use cargo workspace features](https://github.com/gtk-rs/gtk4-rs/pull/1579) |
| 34 | + * [Examples: async request no blocking main thread](https://github.com/gtk-rs/gtk4-rs/pull/1578) |
| 35 | + * [CI: add a cargo deny job](https://github.com/gtk-rs/gtk4-rs/pull/1576) |
| 36 | + * [Revert "book: Go back to 4\_8 for now"](https://github.com/gtk-rs/gtk4-rs/pull/1571) |
| 37 | + * [examples: Add a menubar one](https://github.com/gtk-rs/gtk4-rs/pull/1570) |
| 38 | + * [examples: Add a gtk::Scale](https://github.com/gtk-rs/gtk4-rs/pull/1569) |
| 39 | + * [Various fixes](https://github.com/gtk-rs/gtk4-rs/pull/1568) |
| 40 | + * [image: Use modern way of publishing the container](https://github.com/gtk-rs/gtk4-rs/pull/1566) |
| 41 | + * [print\_job: fix send() closure](https://github.com/gtk-rs/gtk4-rs/pull/1563) |
| 42 | + * [book: Fix link to GVariant docs](https://github.com/gtk-rs/gtk4-rs/pull/1559) |
| 43 | + * [docs: fix composite template internal\_child -> internal](https://github.com/gtk-rs/gtk4-rs/pull/1550) |
| 44 | + * [Add clarification around creating tokio runtime](https://github.com/gtk-rs/gtk4-rs/pull/1546) |
| 45 | + * [book: Move to libadwaita 1.4](https://github.com/gtk-rs/gtk4-rs/pull/1536) |
| 46 | + * [book: Add setuptools installation](https://github.com/gtk-rs/gtk4-rs/pull/1534) |
| 47 | + * [book: Use new API spawn\_future\_local](https://github.com/gtk-rs/gtk4-rs/pull/1533) |
| 48 | + * [docker: Move to libadwaita 1.4](https://github.com/gtk-rs/gtk4-rs/pull/1531) |
| 49 | + * [book: Move to `install_action`](https://github.com/gtk-rs/gtk4-rs/pull/1529) |
| 50 | + * [Migrate listings to action group](https://github.com/gtk-rs/gtk4-rs/pull/1525) |
| 51 | + * [book: Use bounded channels instead of unbounded](https://github.com/gtk-rs/gtk4-rs/pull/1522) |
| 52 | + * [book: Move to async-channel](https://github.com/gtk-rs/gtk4-rs/pull/1521) |
| 53 | + * [book: Disable playground globally](https://github.com/gtk-rs/gtk4-rs/pull/1518) |
| 54 | + * [book: Split book workflow in two](https://github.com/gtk-rs/gtk4-rs/pull/1517) |
| 55 | + * [examples: various cleanups ](https://github.com/gtk-rs/gtk4-rs/pull/1515) |
| 56 | + * [Examples: Dialog's response signal handling](https://github.com/gtk-rs/gtk4-rs/pull/1514) |
| 57 | + * [examples: Clean up, modernize and simplify virtual methods example](https://github.com/gtk-rs/gtk4-rs/pull/1513) |
| 58 | + * [ gtk: Use glib enums instead of bools where it makes sense ](https://github.com/gtk-rs/gtk4-rs/pull/1512) |
| 59 | + * [book: Extend main loop chapter with async section](https://github.com/gtk-rs/gtk4-rs/pull/1511) |
| 60 | + * [book: Rename action to correct name](https://github.com/gtk-rs/gtk4-rs/pull/1510) |
| 61 | + * [examples: Only require GTK 4.10 for the examples](https://github.com/gtk-rs/gtk4-rs/pull/1509) |
| 62 | + * [book: Fix typo in memory management chapter](https://github.com/gtk-rs/gtk4-rs/pull/1504) |
| 63 | + * [book: Run separate jobs for check and deploy](https://github.com/gtk-rs/gtk4-rs/pull/1501) |
| 64 | + * [book: Check links with lychee](https://github.com/gtk-rs/gtk4-rs/pull/1499) |
| 65 | + * [gtk: Implement HasParamSpec for TemplateChild<T>](https://github.com/gtk-rs/gtk4-rs/pull/1495) |
| 66 | + * [Regenerate with latest gir](https://github.com/gtk-rs/gtk4-rs/pull/1492) |
| 67 | + * [book: Add missing steps for installation in windows](https://github.com/gtk-rs/gtk4-rs/pull/1486) |
| 68 | + * [gdk: Simplify RGBA builder code](https://github.com/gtk-rs/gtk4-rs/pull/1483) |
| 69 | + * [gsk: Add builder for Stroke](https://github.com/gtk-rs/gtk4-rs/pull/1482) |
| 70 | + * [gdk: Rename `GdkCairoContextExt::set_source_{rgba => color}`](https://github.com/gtk-rs/gtk4-rs/pull/1476) |
| 71 | + * [book: Add missing snippet for `new_task`](https://github.com/gtk-rs/gtk4-rs/pull/1472) |
| 72 | + * [book: Move to `std::cell::OnceCell`](https://github.com/gtk-rs/gtk4-rs/pull/1470) |
| 73 | + * [gdk: Make RGBA::new const and add with\_\* constructors](https://github.com/gtk-rs/gtk4-rs/pull/1468) |
| 74 | + * [Add new Path APIs](https://github.com/gtk-rs/gtk4-rs/pull/1463) |
| 75 | + * [book: Extend memory management chapter](https://github.com/gtk-rs/gtk4-rs/pull/1459) |
| 76 | + * [Untangle docsrs attribute from features](https://github.com/gtk-rs/gtk4-rs/pull/1454) |
| 77 | + * [gtk4-macro: Bump quick-xml to 0.30](https://github.com/gtk-rs/gtk4-rs/pull/1453) |
| 78 | + * [Impl Write on text buffers](https://github.com/gtk-rs/gtk4-rs/pull/1452) |
| 79 | + * [gdk: Add missing Clipboard::set](https://github.com/gtk-rs/gtk4-rs/pull/1450) |
| 80 | + * [Use `derived_properties` macro](https://github.com/gtk-rs/gtk4-rs/pull/1434) |
| 81 | + * [ Use `gio::spawn_blocking` instead of thread::spawn ](https://github.com/gtk-rs/gtk4-rs/pull/1433) |
| 82 | + * [gtk: Add a GNOME 45 feature](https://github.com/gtk-rs/gtk4-rs/pull/1431) |
| 83 | + |
| 84 | +[gtk-rs-core](https://github.com/gtk-rs/gtk-rs-core): |
| 85 | + |
| 86 | + * [Use workspace features for ffi types](https://github.com/gtk-rs/gtk-rs-core/pull/1297) |
| 87 | + * [Use cargo workspace features](https://github.com/gtk-rs/gtk-rs-core/pull/1296) |
| 88 | + * [Replace `once_cell` usage with std::sync::OnceLock](https://github.com/gtk-rs/gtk-rs-core/pull/1289) |
| 89 | + * [Replace usage of macro `proc_macro_error` with explicit propagation of `syn::Result`](https://github.com/gtk-rs/gtk-rs-core/pull/1288) |
| 90 | + * [glib: Mark panicky `BoxedAnyObject` methods as `track_caller`](https://github.com/gtk-rs/gtk-rs-core/pull/1279) |
| 91 | + * [add support of flags registered as dynamic types](https://github.com/gtk-rs/gtk-rs-core/pull/1271) |
| 92 | + * [Fix concurrency issues](https://github.com/gtk-rs/gtk-rs-core/pull/1256) |
| 93 | + * [Refactor macros to register dynamic types](https://github.com/gtk-rs/gtk-rs-core/pull/1255) |
| 94 | + * [macros: generate GlibPtrDefault when deriving Boxed and SharedBoxed](https://github.com/gtk-rs/gtk-rs-core/pull/1241) |
| 95 | + * [gio: return NULL from spawn\_blocking's underlying gtask](https://github.com/gtk-rs/gtk-rs-core/pull/1239) |
| 96 | + * [gio: Don't wrongly cast DataInputStream byte arrays to a const pointer](https://github.com/gtk-rs/gtk-rs-core/pull/1238) |
| 97 | + * [Simplify pointer casts](https://github.com/gtk-rs/gtk-rs-core/pull/1233) |
| 98 | + * [glib: Remove deprecated paramspec constructors](https://github.com/gtk-rs/gtk-rs-core/pull/1230) |
| 99 | + * [Move from unmaintained winapi crate to windows-sys](https://github.com/gtk-rs/gtk-rs-core/pull/1226) |
| 100 | + * [Matchinfo lifetime](https://github.com/gtk-rs/gtk-rs-core/pull/1225) |
| 101 | + * [Add `Cargo.lock` to git tracking](https://github.com/gtk-rs/gtk-rs-core/pull/1221) |
| 102 | + * [Add support of enums as dynamic types](https://github.com/gtk-rs/gtk-rs-core/pull/1220) |
| 103 | + * [gio: fix UnixSocketAddress constructor with a path](https://github.com/gtk-rs/gtk-rs-core/pull/1218) |
| 104 | + * [glib: Remove `MainContext::channel()`](https://github.com/gtk-rs/gtk-rs-core/pull/1216) |
| 105 | + * [glib: Allow variable expansion in format strings passed to bool\_error & result\_from\_gboolean](https://github.com/gtk-rs/gtk-rs-core/pull/1210) |
| 106 | + * [gio: Use weak reference to ActionMap when adding action entries](https://github.com/gtk-rs/gtk-rs-core/pull/1208) |
| 107 | + * [Add \_full and \_local\_full methods for idle and timeout callbacks that take priority](https://github.com/gtk-rs/gtk-rs-core/pull/1207) |
| 108 | + * [Implement ext trait on IsA<T>, don't generate overridden methods](https://github.com/gtk-rs/gtk-rs-core/pull/1204) |
| 109 | + * [glib: Implement object class methods via a trait instead of directly …](https://github.com/gtk-rs/gtk-rs-core/pull/1203) |
| 110 | + * [Add `spawn_future` and `spawn_future_local` convenience functions](https://github.com/gtk-rs/gtk-rs-core/pull/1201) |
| 111 | + * [glib-macros: Remove unused imports from Properties doc test](https://github.com/gtk-rs/gtk-rs-core/pull/1193) |
| 112 | + * [glib-macros: Mark property getters as #\[must\_use\]](https://github.com/gtk-rs/gtk-rs-core/pull/1192) |
| 113 | + * [fix glyph string analysis methods that don't need &mut](https://github.com/gtk-rs/gtk-rs-core/pull/1188) |
| 114 | + * [cairo: Make it docs.rs friendly](https://github.com/gtk-rs/gtk-rs-core/pull/1182) |
| 115 | + * [glib/GStringPtr: Add `as_str()` and `Deref<Target=&str>`](https://github.com/gtk-rs/gtk-rs-core/pull/1181) |
| 116 | + * [CI: add a cargo deny job](https://github.com/gtk-rs/gtk-rs-core/pull/1179) |
| 117 | + * [glib: Remove `#[doc(hidden)]` from `once_cell` and `bitflags` re-export](https://github.com/gtk-rs/gtk-rs-core/pull/1177) |
| 118 | + * [Use associated type in memory managers](https://github.com/gtk-rs/gtk-rs-core/pull/1171) |
| 119 | + * [add support of module types](https://github.com/gtk-rs/gtk-rs-core/pull/1169) |
| 120 | + * [image: Switch to latest fedora stable](https://github.com/gtk-rs/gtk-rs-core/pull/1163) |
| 121 | + * [gio: Fix panics if `PollableInputStream` / `PollableOutputStream` ret…](https://github.com/gtk-rs/gtk-rs-core/pull/1159) |
| 122 | + * [Added bindings for Gio.DBusObjectManager, Gio.DBusObjectManagerClientFlags](https://github.com/gtk-rs/gtk-rs-core/pull/1156) |
| 123 | + * [Disentangle docsrs and features](https://github.com/gtk-rs/gtk-rs-core/pull/1154) |
| 124 | + * [Add typos workflow](https://github.com/gtk-rs/gtk-rs-core/pull/1153) |
| 125 | + * [gio: Set missing annotations for new FileInfo apis](https://github.com/gtk-rs/gtk-rs-core/pull/1151) |
| 126 | + * [Add support for ext\_trait in properties macro](https://github.com/gtk-rs/gtk-rs-core/pull/1149) |
| 127 | + * [glib: Bind `g_unichar` APIs](https://github.com/gtk-rs/gtk-rs-core/pull/1146) |
| 128 | + * [Add object\_subclass example](https://github.com/gtk-rs/gtk-rs-core/pull/1145) |
| 129 | + * [glib: Re-introduce an event propagation specific type](https://github.com/gtk-rs/gtk-rs-core/pull/1144) |
| 130 | + * [Fix docs of `glib::derived_properties`](https://github.com/gtk-rs/gtk-rs-core/pull/1143) |
| 131 | + * [Fix panic in gio InputStream](https://github.com/gtk-rs/gtk-rs-core/pull/1140) |
| 132 | + * [Don't generate unit tuple in clone macro as default-return value](https://github.com/gtk-rs/gtk-rs-core/pull/1138) |
| 133 | + * [glib: prelude cleanup](https://github.com/gtk-rs/gtk-rs-core/pull/1095) |
| 134 | + * [glib: Implement Regex](https://github.com/gtk-rs/gtk-rs-core/pull/947) |
| 135 | + |
| 136 | +All this was possible thanks to the [gtk-rs/gir](https://github.com/gtk-rs/gir) project as well: |
| 137 | + |
| 138 | + * [codegen/sys: Don't expect the crates are renamed](https://github.com/gtk-rs/gir/pull/1542) |
| 139 | + * [CI/tests: Remove gtk3 related bits](https://github.com/gtk-rs/gir/pull/1539) |
| 140 | + * [Replace once\_cell crate with std::sync::OnceLock in a generated code](https://github.com/gtk-rs/gir/pull/1537) |
| 141 | + * [Replace `once_cell` crate with `std::sync::OnceLock`](https://github.com/gtk-rs/gir/pull/1532) |
| 142 | + * [parser: Don't error out for forever scope](https://github.com/gtk-rs/gir/pull/1531) |
| 143 | + * [record: Differentiate disguised vs pointer types](https://github.com/gtk-rs/gir/pull/1530) |
| 144 | + * [Remove unnecessary casts of function pointers through usize](https://github.com/gtk-rs/gir/pull/1528) |
| 145 | + * [codegen: Generate a doc alias for aliases](https://github.com/gtk-rs/gir/pull/1520) |
| 146 | + * [parser: Don't require name/type for record types](https://github.com/gtk-rs/gir/pull/1512) |
| 147 | + * [Fix various typos](https://github.com/gtk-rs/gir/pull/1507) |
| 148 | + * [Make auto builders/traits/functions `pub(crate)`](https://github.com/gtk-rs/gir/pull/1505) |
| 149 | + * [config/codegen: Stop generating useless Display impls](https://github.com/gtk-rs/gir/pull/1502) |
| 150 | + * [Generated sys tests: Better command error handling](https://github.com/gtk-rs/gir/pull/1499) |
| 151 | + * [Fix inserting all-features in Cargo.toml for docs.rs](https://github.com/gtk-rs/gir/pull/1490) |
| 152 | + * [Add trait\_name to API docs](https://github.com/gtk-rs/gir/pull/1489) |
| 153 | + * [Fix docsrs](https://github.com/gtk-rs/gir/pull/1487) |
| 154 | + * [codegen: Replace ControlFlow with Propagation](https://github.com/gtk-rs/gir/pull/1485) |
| 155 | + * [codgen: generate doc\_alias for static\_type](https://github.com/gtk-rs/gir/pull/1143) |
| 156 | + |
| 157 | +Thanks to all of our contributors for their (awesome!) work on this release: |
| 158 | + |
| 159 | + * [@AaronErhardt](https://github.com/AaronErhardt) |
| 160 | + * [@andy128k](https://github.com/andy128k) |
| 161 | + * [@awused](https://github.com/awused) |
| 162 | + * [@bilelmoussaoui](https://github.com/bilelmoussaoui) |
| 163 | + * [@bvinc](https://github.com/bvinc) |
| 164 | + * [@cgwalters](https://github.com/cgwalters) |
| 165 | + * [@Claudio-code](https://github.com/Claudio-code) |
| 166 | + * [@davidmhewitt](https://github.com/davidmhewitt) |
| 167 | + * [@erwinschrodinger1](https://github.com/erwinschrodinger1) |
| 168 | + * [@evaporei](https://github.com/evaporei) |
| 169 | + * [@fbrouille](https://github.com/fbrouille) |
| 170 | + * [@felinira](https://github.com/felinira) |
| 171 | + * [@GuillaumeGomez](https://github.com/GuillaumeGomez) |
| 172 | + * [@Hofer-Julian](https://github.com/Hofer-Julian) |
| 173 | + * [@JakeStanger](https://github.com/JakeStanger) |
| 174 | + * [@jf2048](https://github.com/jf2048) |
| 175 | + * [@jobale](https://github.com/jobale) |
| 176 | + * [@nicopap](https://github.com/nicopap) |
| 177 | + * [@ocrete](https://github.com/ocrete) |
| 178 | + * [@pbor](https://github.com/pbor) |
| 179 | + * [@pentamassiv](https://github.com/pentamassiv) |
| 180 | + * [@pieterdd](https://github.com/pieterdd) |
| 181 | + * [@ranfdev](https://github.com/ranfdev) |
| 182 | + * [@RealKC](https://github.com/RealKC) |
| 183 | + * [@redvimo](https://github.com/redvimo) |
| 184 | + * [@sdroege](https://github.com/sdroege) |
| 185 | + * [@SeaDve](https://github.com/SeaDve) |
| 186 | + * [@vhakulinen](https://github.com/vhakulinen) |
| 187 | + * [@wroyca](https://github.com/wroyca) |
| 188 | + * [@zachs18](https://github.com/zachs18) |
| 189 | + * [@ZanderBrown](https://github.com/ZanderBrown) |
| 190 | + * [@zecakeh](https://github.com/zecakeh) |
0 commit comments