@@ -5,6 +5,137 @@ All notable changes to this project will be documented in this file.
55The format is based on [ Keep a Changelog] ( https://keepachangelog.com/en/1.0.0/ ) ,
66and this project adheres to [ Semantic Versioning] ( https://semver.org/spec/v2.0.0.html ) .
77
8+ ## [ 0.10.0] - unreleased
9+
10+ ### Added
11+
12+ - Crate features
13+ - ` serde ` : support for serialization/deserialization of ` VariantDispatch ` and core types ([ #743 ] ( https://github.com/godot-rust/godot-rust/pull/743 ) )
14+ - ` async ` : foundation for async/await programming ([ #804 ] ( https://github.com/godot-rust/godot-rust/pull/804 ) )
15+ - ` custom-godot ` , allowing easy use of custom Godot builds
16+ ([ #833 ] ( https://github.com/godot-rust/godot-rust/pull/833 ) ,
17+ [ #838 ] ( https://github.com/godot-rust/godot-rust/pull/838 ) )
18+ - New top-level modules ` init ` , ` log ` , ` profiler ` , ` derive `
19+ ([ #788 ] ( https://github.com/godot-rust/godot-rust/pull/788 ) ,
20+ [ #800 ] ( https://github.com/godot-rust/godot-rust/pull/800 ) ,
21+ [ #811 ] ( https://github.com/godot-rust/godot-rust/pull/811 ) )
22+ - Geometric types
23+ - ` Vector2 ` and ` Vector3 ` constants ([ #718 ] ( https://github.com/godot-rust/godot-rust/pull/718 ) )
24+ - ` Quat ` methods ([ #720 ] ( https://github.com/godot-rust/godot-rust/pull/720 ) )
25+ - ` Transform2D ` methods ([ #791 ] ( https://github.com/godot-rust/godot-rust/pull/791 ) )
26+ - ` Transform ` methods ([ #821 ] ( https://github.com/godot-rust/godot-rust/pull/821 ) )
27+ - Other core types
28+ - ` VariantDispatch ` struct + ` Variant::dispatch() ` ([ #708 ] ( https://github.com/godot-rust/godot-rust/pull/708 ) )
29+ - ` Color ` conversions: ` from_hsv() ` , ` from_hsva() ` , ` to_*() ` ([ #729 ] ( https://github.com/godot-rust/godot-rust/pull/729 ) )
30+ - ` GodotString::format() ` ([ #816 ] ( https://github.com/godot-rust/godot-rust/pull/816 ) )
31+ - ` AsArg ` for ` Instance ` + ` TInstance ` ([ #830 ] ( https://github.com/godot-rust/godot-rust/pull/830 ) )
32+ - ` TRef::get_node_as() ` through ` NodeExt ` ([ #727 ] ( https://github.com/godot-rust/godot-rust/pull/727 ) )
33+ - ` PoolArray::to_vec() ` ([ #843 ] ( https://github.com/godot-rust/godot-rust/pull/843 ) )
34+ - Exporting
35+ - ` #[property(get, set)] ` and ` Property<T> ` for custom getters/setters ([ #841 ] ( https://github.com/godot-rust/godot-rust/pull/841 ) )
36+ - Array typehints ([ #639 ] ( https://github.com/godot-rust/godot-rust/pull/639 ) )
37+ - Type-safe registration (` Method ` , ` Varargs ` , ` FromVarargs ` , ...) ([ #681 ] ( https://github.com/godot-rust/godot-rust/pull/681 ) )
38+ - ` ClassBuilder::signal() ` + ` SignalBuilder ` ([ #828 ] ( https://github.com/godot-rust/godot-rust/pull/828 ) )
39+ - ` #[export] ` now accepts a method name ([ #734 ] ( https://github.com/godot-rust/godot-rust/pull/734 ) )
40+ - ` ArcData::into_inner() ` ([ #700 ] ( https://github.com/godot-rust/godot-rust/pull/700 ) )
41+ - ` MapOwned ` trait + ` Once<T> ` user-data ([ #693 ] ( https://github.com/godot-rust/godot-rust/pull/693 ) )
42+ - ` NoHint ` for forward compatibility ([ #690 ] ( https://github.com/godot-rust/godot-rust/pull/690 ) )
43+
44+ ### Changed
45+
46+ - MSRV is now 1.51 ([ #833 ] ( https://github.com/godot-rust/godot-rust/pull/833 ) )
47+ - ` euclid ` vector library replaced with ` glam ` , no longer part of public API ([ #713 ] ( https://github.com/godot-rust/godot-rust/pull/713 ) )
48+ - ` Variant ` has now a redesigned conversion API ([ #819 ] ( https://github.com/godot-rust/godot-rust/pull/819 ) )
49+ - Type renames (815, 828)
50+ - ` RefInstance ` -> ` TInstance `
51+ - ` RefKind ` -> ` Memory `
52+ - ` ThreadAccess ` -> ` Ownership `
53+ - ` TypedArray ` -> ` PoolArray `
54+ - ` Element ` -> ` PoolElement `
55+ - ` SignalArgument ` -> ` SignalParam `
56+ - Simplified module structure
57+ ([ #788 ] ( https://github.com/godot-rust/godot-rust/pull/788 ) ,
58+ [ #811 ] ( https://github.com/godot-rust/godot-rust/pull/811 ) )
59+ - 1 module per symbol (+prelude), no symbols at root, lower nesting depth
60+ - Rename ` nativescript ` -> ` export `
61+ - Move ` export::{Instance,RefInstance} ` -> ` object `
62+ - More details: see PR descriptions
63+ - Geometric types API consistency ([ #827 ] ( https://github.com/godot-rust/godot-rust/pull/827 ) )
64+ - Rename basis vectors ` x, y, z ` -> ` a, b, c `
65+ - Pass by value/ref consistency
66+ - Other changes (see PRs)
67+ - Method renames
68+ - ` {String,Variant}::forget() ` -> ` leak() ` ([ #828 ] ( https://github.com/godot-rust/godot-rust/pull/828 ) )
69+ - ` Color::{rgb,rgba}() ` -> ` {from_rgb,from_rgba}() `
70+ - ` Rid::is_valid() ` -> ` is_occupied() `
71+ - ` Basis::to_scale() ` -> ` scale() `
72+ - ` Basis::from_elements() ` -> ` from_rows() `
73+ - ` Transform2D::from_axis_origin() ` -> ` from_basis_origin() `
74+ - Relax ` Dictionary ` key bounds: ` ToVariant ` -> ` OwnedToVariant ` ([ #809 ] ( https://github.com/godot-rust/godot-rust/pull/809 ) )
75+ - ` #[inherit] ` is now optional and defaults to ` Reference ` ([ #705 ] ( https://github.com/godot-rust/godot-rust/pull/705 ) )
76+ - ` Instance ` and ` TInstance ` now use ` Own=Shared ` by default ([ #823 ] ( https://github.com/godot-rust/godot-rust/pull/823 ) )
77+ - Ergonomics improvements for ` get_node_as() ` & Co. ([ #837 ] ( https://github.com/godot-rust/godot-rust/pull/837 ) )
78+ - Separate trait for ` NativeClass ` static names ([ #847 ] ( https://github.com/godot-rust/godot-rust/pull/847 ) )
79+ - Generated docs: Godot BBCode translated to RustDoc, including intra-doc links ([ #779 ] ( https://github.com/godot-rust/godot-rust/pull/779 ) )
80+
81+ ### Removed
82+
83+ (Renames listed under _ Changed_ , safety removals under _ Fixed_ )
84+
85+ - Crate features
86+ - ` nativescript ` ([ #812 ] ( https://github.com/godot-rust/godot-rust/pull/812 ) )
87+ - ` bindings ` ([ #833 ] ( https://github.com/godot-rust/godot-rust/pull/833 ) )
88+ - All redundant or unnecessarily nested modules (see _ Changed_ )
89+ - Deprecated symbols ([ #828 ] ( https://github.com/godot-rust/godot-rust/pull/828 ) )
90+ - ` Reference::init_ref() ` (unsound)
91+ - ` ClassBuilder::add_method() ` , ` add_method_advanced() ` , ` add_method_with_rpc_mode() `
92+ - ` ScriptMethod ` , ` ScriptMethodFn ` , ` ScriptMethodAttributes `
93+ - Never functioning or misleading
94+ - ` FloatHint::Enum ` ([ #828 ] ( https://github.com/godot-rust/godot-rust/pull/828 ) )
95+ - ` Transform::from_axis_origin() ` ([ #827 ] ( https://github.com/godot-rust/godot-rust/pull/827 ) )
96+ - Redundant methods (cleaner API)
97+ - access methods for ` VariantArray<Shared> ` ([ #795 ] ( https://github.com/godot-rust/godot-rust/pull/795 ) )
98+ - ` Basis::invert() ` , ` orthonormalize() ` , ` rotate() ` , ` tdotx() ` , ` tdoty() ` , ` tdotz() ` ([ #827 ] ( https://github.com/godot-rust/godot-rust/pull/827 ) )
99+ - ` Rid::operator_less() ` ([ #844 ] ( https://github.com/godot-rust/godot-rust/pull/844 ) )
100+ - From ` prelude `
101+ - macros` godot_gdnative_init ` , ` godot_gdnative_terminate ` , ` godot_nativescript_init ` , ` godot_site ` ([ #811 ] ( https://github.com/godot-rust/godot-rust/pull/811 ) )
102+
103+ ### Fixed
104+
105+ - Exports
106+ - Class registry for detection of already registered classes and improved errors ([ #737 ] ( https://github.com/godot-rust/godot-rust/pull/737 ) )
107+ - Exported properties now registered in order of declaration ([ #777 ] ( https://github.com/godot-rust/godot-rust/pull/777 ) )
108+ - Signal parameter types annotated in builder not propagated to Godot ([ #828 ] ( https://github.com/godot-rust/godot-rust/pull/828 ) )
109+ - GDNative bindings
110+ - "Safe names" for GDNative symbols conflicting with Rust keywords
111+ ([ #812 ] ( https://github.com/godot-rust/godot-rust/pull/812 ) ,
112+ [ #832 ] ( https://github.com/godot-rust/godot-rust/pull/832 ) )
113+ - Unresolved enum name in bindings generator ([ #840 ] ( https://github.com/godot-rust/godot-rust/pull/840 ) )
114+ - Silence UB warnings caused by bindgen ([ #776 ] ( https://github.com/godot-rust/godot-rust/pull/776 ) )
115+ - ` .gdnlib ` in integration tests now non-reloadable ([ #746 ] ( https://github.com/godot-rust/godot-rust/pull/746 ) )
116+ - Core
117+ - Bugs in ` Basis * Vector3 ` + ` Vector3::rotated() ` ([ #760 ] ( https://github.com/godot-rust/godot-rust/pull/760 ) )
118+ - ` VariantArray ` : bounds check, remove unsafe methods for VariantArray<Shared > ([ #795 ] ( https://github.com/godot-rust/godot-rust/pull/795 ) )
119+ - ` Variant::call() ` now unsafe, like ` Object::call() ` ([ #795 ] ( https://github.com/godot-rust/godot-rust/pull/795 ) )
120+ - ` Rid ` ([ #844 ] ( https://github.com/godot-rust/godot-rust/pull/844 ) ):
121+ - GDNative APIs accepting it now unsafe
122+ - Method ` get_id() ` now unsafe and null-checked
123+ - Fix logic error in ` PartialOrd `
124+ - ` Dictionary ` :
125+ - Fix unsound ` get() ` ([ #748 ] ( https://github.com/godot-rust/godot-rust/pull/748 ) )
126+ - Remove ` get_next() ` ([ #795 ] ( https://github.com/godot-rust/godot-rust/pull/795 ) )
127+ - Error messages conforming to Rust conventions ([ #731 ] ( https://github.com/godot-rust/godot-rust/pull/731 ) )
128+ - Qualify identifiers in proc-macros, avoids potential naming conflicts ([ #835 ] ( https://github.com/godot-rust/godot-rust/pull/835 ) )
129+ - Library logo ([ #801 ] ( https://github.com/godot-rust/godot-rust/pull/801 ) )
130+
131+ ### Config
132+
133+ - CI overhaul: run for every PR, shorter runtime, cache ([ #783 ] ( https://github.com/godot-rust/godot-rust/pull/783 ) )
134+ - Automatic publishing of ` master ` docs ([ #786 ] ( https://github.com/godot-rust/godot-rust/pull/786 ) )
135+ - Issue templates ([ #807 ] ( https://github.com/godot-rust/godot-rust/pull/807 ) )
136+ - Add ` cargo-deny ` to CI ([ #849 ] ( https://github.com/godot-rust/godot-rust/pull/849 ) )
137+
138+
8139## [ 0.9.3] - 2021-02-02
9140
10141### Fixed
0 commit comments