1## 0.0.8 (master)
2
3## 0.0.7 (16-Mar-2016)
4
5### Breaking changes
6
7- [Object reform][gtk221] introduced autogenerated high-level bindings and
8  broke some conventions.
9
10  - Constructors don't return `Option`, they never fail.
11
12  - Companion traits renamed e.g. `ButtonTrait` -> `ButtonExt`.
13
14  - Modules are private now, all items are exported at the crate level (e.g.
15    `gtk::button::Button` is no longer visible, use `gtk::Button` instead).
16
17  - Dialog APIs made less Rust-y for consistency with upstream.
18
19  - File name types [changed][gtk236] from `&str` to `T: AsRef<Path>`.
20
21  - A few signatures and spellings corrected to match upstream.
22
23- Version features [reintroduced][gtk248] and autodetection is no more. The
24  fallback version is 3.4.
25
26    Select the minimal version required by your application like this:
27    ```toml
28    [dependencies.gtk]
29    features = ["v3_10"]
30    ```
31
32- Signal handlers [take the receiver by reference][gtk226-1] and support [more
33  specific receiver types][gtk226-2].
34
35- New [safe event bindings][gdk95] are [passed to signal handlers][gtk244].
36  These bindings have [safe getters][gdk107] while the low-level event structs are
37  still reachable [via `as_ref`][examples68].
38
39- New safe [`Error`][glib86-error] and [`Value`][glib95] bindings. `ListStore` and
40  `TreeStore` [changed accordingly][gtk238], traded `set_string` for more
41  powerful [`set`][gtk241].
42
43- In an ongoing move to [reflect integer unsignedness properly][gtk246]
44  `Notebook` switched from `i32` to `u32`, `ListStore` and `TreeStore` partly
45  switched to `u32` and `EntryBuffer` switched to `u16`.
46
47### Improvements
48
49- [Object reform][gtk221] benefits include:
50
51  - Automatic generation of [the majority of code][auto-dir], expanding the
52    number of implemented classes, eliminating typos and making maintenance
53    easier.
54
55  - Unified upcasting and downcasting via the `Cast` trait, proper interface
56    support. In particular this makes `Builder` safe to use.
57
58  - Each crate has a `prelude` module, which reexports all traits and some
59    ubiquitous types (`Continue`, `Inhibit`). `gtk`'s prelude incorporates
60    `glib`'s one.
61
62  - Removal of the C glue layer and gcc dependency.
63
64- The upstream documentation excised from all crates earlier lives in the
65  [`lgpl-docs`][lgpl-docs] crate now. It can be embedded into your local copy of
66  `gtk` and other crates by enabling the [`embed-lgpl-docs` feature][gtk245].
67
68- [Building][sys21]:
69
70 - Windows users no longer need to delete Rust's bundled gcc.
71
72 - In the absence of `pkg-config` we try to link anyway assuming the libraries
73   can be found in the default search path. There are no version checks in this
74   case.
75
76 - Setting `GTK_LIB_DIR` skips `pkg-config` altogether.
77
78[auto-dir]: https://github.com/gtk-rs/gtk/tree/master/src/auto
79[examples68]: https://github.com/gtk-rs/examples/pull/68
80[gdk95]: https://github.com/gtk-rs/gdk/pull/95
81[gdk107]: https://github.com/gtk-rs/gdk/pull/107
82[glib86-error]: https://github.com/gtk-rs/glib/commit/c1a30e97
83[glib95]: https://github.com/gtk-rs/glib/pull/95
84[gtk221]: https://github.com/gtk-rs/gtk/pull/221
85[gtk226-1]: https://github.com/gkoz/gtk-rs-gtk/commit/edfafb8f
86[gtk226-2]: https://github.com/gkoz/gtk-rs-gtk/commit/dda2a242
87[gtk236]: https://github.com/gtk-rs/gtk/pull/236
88[gtk238]: https://github.com/gtk-rs/gtk/pull/238
89[gtk241]: https://github.com/gtk-rs/gtk/pull/241
90[gtk244]: https://github.com/gtk-rs/gtk/pull/244
91[gtk245]: https://github.com/gtk-rs/gtk/pull/245
92[gtk246]: https://github.com/gtk-rs/gtk/issues/246
93[gtk248]: https://github.com/gtk-rs/gtk/pull/248
94[lgpl-docs]: https://github.com/gtk-rs/lgpl-docs
95[prelude]: https://github.com/gtk-rs/gtk/blob/master/src/prelude.rs
96[sys21]: https://github.com/gtk-rs/sys/pull/21
97
98## v0.0.6 (28-Nov-2015)
99
100- TBD
101