@@ -5,6 +5,139 @@ This document tracks changes of released library versions.
5
5
See also [ Pulse] ( https://github.com/godot-rust/gdext/pulse/monthly ) for recent activities.
6
6
Cutting-edge API docs of the ` master ` branch are available [ here] ( https://godot-rust.github.io/docs/gdext ) .
7
7
8
+ 🌊 indicates a breaking change. Deprecations are not marked breaking.
9
+
10
+
11
+ ## Quick navigation
12
+
13
+ - [ v0.2.0] ( #v020 )
14
+ - [ v0.1.1] ( #v011 ) , [ v0.1.2] ( #v012 ) , [ v0.1.3] ( #v013 )
15
+
16
+
17
+ ## [ v0.2.0] ( https://docs.rs/godot/0.2.0 )
18
+
19
+ _ 15 November 2024_
20
+
21
+ See [ devlog article] ( https://godot-rust.github.io/dev/november-2024-update ) for highlights.
22
+
23
+ ### 🌻 Features
24
+
25
+ - Godot 4.3 support in CI and ` api-4-3 ` feature ([ #859 ] ( https://github.com/godot-rust/gdext/pull/859 ) )
26
+ - 🌊 Drop support for Godot 4.0 ([ #820 ] ( https://github.com/godot-rust/gdext/pull/820 ) )
27
+ - 🌊 Ergonomic arguments
28
+ - ` AsObjectArg ` trait enabling implicit conversions for object parameters ([ #800 ] ( https://github.com/godot-rust/gdext/pull/800 ) )
29
+ - Pass-by-ref for non-` Copy ` builtins ([ #900 ] ( https://github.com/godot-rust/gdext/pull/900 ) , [ #906 ] ( https://github.com/godot-rust/gdext/pull/906 ) )
30
+ - String argument conversion + ` AsArg ` trait ([ #940 ] ( https://github.com/godot-rust/gdext/pull/940 ) )
31
+ - ` Callable ` is now passed by-ref ([ #944 ] ( https://github.com/godot-rust/gdext/pull/944 ) )
32
+ - Require ` AsObjectArg ` pass-by-ref, consistent with ` AsArg ` ([ #847 ] ( https://github.com/godot-rust/gdext/pull/847 ) , [ #947 ] ( https://github.com/godot-rust/gdext/pull/947 ) )
33
+ - Godot docs from RustDoc comments
34
+ - Generate documentation from doc comments ([ #748 ] ( https://github.com/godot-rust/gdext/pull/748 ) )
35
+ - Generate valid XML from doc comments ([ #861 ] ( https://github.com/godot-rust/gdext/pull/861 ) )
36
+ - Include ` register-docs ` feature in CI ([ #819 ] ( https://github.com/godot-rust/gdext/pull/819 ) )
37
+ - RPC attributes
38
+ - Add ` #[rpc] ` attribute to user-defined functions ([ #902 ] ( https://github.com/godot-rust/gdext/pull/902 ) )
39
+ - Registration APIs
40
+ - 🌊 Add ` OnReady::node() ` + ` #[init(node = "...")] ` attribute ([ #807 ] ( https://github.com/godot-rust/gdext/pull/807 ) )
41
+ - Support Unicode class names (Godot 4.4+) ([ #891 ] ( https://github.com/godot-rust/gdext/pull/891 ) )
42
+ - Unicode support in ` ClassName::new_cached() ` ; adjust test ([ #899 ] ( https://github.com/godot-rust/gdext/pull/899 ) )
43
+ - Derive ` Ord ` and ` PartialOrd ` for ` ClassName ` ([ #928 ] ( https://github.com/godot-rust/gdext/pull/928 ) )
44
+ - Implement ` Debug ` for ` InitState ` and ` OnReady ` ([ #879 ] ( https://github.com/godot-rust/gdext/pull/879 ) )
45
+ - Enums
46
+ - ` #[derive(GodotClass)] ` enums can now have complex ordinal expressions ([ #843 ] ( https://github.com/godot-rust/gdext/pull/843 ) )
47
+ - Enums can now be bit-combined with known masks ([ #857 ] ( https://github.com/godot-rust/gdext/pull/857 ) )
48
+ - Add ` as_str ` and ` godot_name ` to non-bitfield enums ([ #898 ] ( https://github.com/godot-rust/gdext/pull/898 ) )
49
+ - Required virtual functions
50
+ - Detect whether virtual functions are required to override ([ #904 ] ( https://github.com/godot-rust/gdext/pull/904 ) )
51
+ - 🌊 Required virtual methods should be required at compile-time ([ #771 ] ( https://github.com/godot-rust/gdext/pull/771 ) )
52
+ - Conversions + operators
53
+ - Implement ` GodotConvert ` for ` Vec<T> ` , ` [T; N] ` and ` &[T] ` ([ #795 ] ( https://github.com/godot-rust/gdext/pull/795 ) )
54
+ - Implement ` From<&[char]> ` for ` GString ` ([ #862 ] ( https://github.com/godot-rust/gdext/pull/862 ) )
55
+ - Add ` From<[Elem; N]> ` for Packed Array and Optimize ` From<Vec<Elem>> ` ([ #827 ] ( https://github.com/godot-rust/gdext/pull/827 ) )
56
+ - Handle typed array metadata ([ #855 ] ( https://github.com/godot-rust/gdext/pull/855 ) )
57
+ - Vector conversion functions ([ #824 ] ( https://github.com/godot-rust/gdext/pull/824 ) )
58
+ - Add Mul operator for Quaternion + Vector3 ([ #894 ] ( https://github.com/godot-rust/gdext/pull/894 ) )
59
+
60
+ ### 🧹 Quality of life
61
+
62
+ - Renames and removals
63
+ - 🌊 Remove deprecated symbols from before v0.1 ([ #808 ] ( https://github.com/godot-rust/gdext/pull/808 ) )
64
+ - Deprecate instance utilities in ` godot::global ` ([ #901 ] ( https://github.com/godot-rust/gdext/pull/901 ) )
65
+ - Shorten ` #[init(default = ...)] ` to ` #[init(val = ...)] ` ([ #844 ] ( https://github.com/godot-rust/gdext/pull/844 ) )
66
+ - ` #[class] ` attribute: rename ` hidden ` -> ` internal ` , deprecate ` editor_plugin ` ([ #884 ] ( https://github.com/godot-rust/gdext/pull/884 ) )
67
+ - Cleanup around ` godot::meta ` argument conversions ([ #948 ] ( https://github.com/godot-rust/gdext/pull/948 ) )
68
+ - Remove ` to_2d() ` + ` to_3d() ` ; clean up ` ApiParam ` ([ #943 ] ( https://github.com/godot-rust/gdext/pull/943 ) )
69
+ - 🌊 Simplify property hint APIs ([ #838 ] ( https://github.com/godot-rust/gdext/pull/838 ) )
70
+ - Validation
71
+ - Fix validation for ` api-* ` mutual exclusivity ([ #809 ] ( https://github.com/godot-rust/gdext/pull/809 ) )
72
+ - Validate that virtual extension classes require ` #[class(tool)] ` ([ #850 ] ( https://github.com/godot-rust/gdext/pull/850 ) )
73
+ - Validate that editor plugin classes require ` #[class(tool)] ` ([ #852 ] ( https://github.com/godot-rust/gdext/pull/852 ) )
74
+ - Best-effort checks for ` Array<Integer> ` conversions; fix ` Debug ` for variants containing typed arrays ([ #853 ] ( https://github.com/godot-rust/gdext/pull/853 ) )
75
+ - 🌊 Disallow ` Export ` if class doesn't inherit ` Node ` or ` Resource ` ([ #839 ] ( https://github.com/godot-rust/gdext/pull/839 ) )
76
+ - 🌊 Validate that Nodes can only be exported from Node-derived classes ([ #841 ] ( https://github.com/godot-rust/gdext/pull/841 ) )
77
+ - CI and tooling
78
+ - Cargo-deny maintenance: update to advisories/licenses v2 ([ #829 ] ( https://github.com/godot-rust/gdext/pull/829 ) )
79
+ - CI runner updates ([ #941 ] ( https://github.com/godot-rust/gdext/pull/941 ) )
80
+ - Skip ` notify-docs ` job when running in a fork ([ #945 ] ( https://github.com/godot-rust/gdext/pull/945 ) )
81
+ - Allow manually triggering ` full-ci ` workflow (mostly useful for forks) ([ #933 ] ( https://github.com/godot-rust/gdext/pull/933 ) )
82
+ - Code generation and Godot APIs
83
+ - Allow codegen for ` UniformSetCacheRD ` for Godot >=4.3 ([ #816 ] ( https://github.com/godot-rust/gdext/pull/816 ) )
84
+ - Enable ` ResourceLoader::load_threaded_* ` with ` experimental-threads ` ([ #856 ] ( https://github.com/godot-rust/gdext/pull/856 ) )
85
+ - Dependency update, more tests for vector angle functions ([ #860 ] ( https://github.com/godot-rust/gdext/pull/860 ) )
86
+ - Upstream follow-up
87
+ - 🌊 Support ` GDExtensionScriptInstanceInfo3 ` in 4.3 ([ #849 ] ( https://github.com/godot-rust/gdext/pull/849 ) )
88
+ - Support meta ` char16 ` and ` char32 ` ([ #895 ] ( https://github.com/godot-rust/gdext/pull/895 ) )
89
+ - Add ` GodotConvert ` impl for ` *const u8 ` pointers ([ #866 ] ( https://github.com/godot-rust/gdext/pull/866 ) )
90
+ - Update list of experimental classes ([ #897 ] ( https://github.com/godot-rust/gdext/pull/897 ) )
91
+ - Update hint_string tests to account for Godot 4.4 floats with ` .0 ` formatting ([ #936 ] ( https://github.com/godot-rust/gdext/pull/936 ) )
92
+ - Panics
93
+ - Disable panic hooks in Release mode ([ #889 ] ( https://github.com/godot-rust/gdext/pull/889 ) )
94
+ - In debug, include location information in error message on panic ([ #926 ] ( https://github.com/godot-rust/gdext/pull/926 ) )
95
+ - Refactoring
96
+ - Rewrite ` #[var] ` + ` #[export] ` registration to use type-safe API behind scenes ([ #840 ] ( https://github.com/godot-rust/gdext/pull/840 ) )
97
+ - Get rid of placeholder names like "foo" ([ #888 ] ( https://github.com/godot-rust/gdext/pull/888 ) )
98
+
99
+ ### 🛠️ Bugfixes
100
+
101
+ - Argument passing
102
+ - Set null into Godot Engint APIs nullable parameters as default ([ #823 ] ( https://github.com/godot-rust/gdext/pull/823 ) )
103
+ - Fix ` Ex* ` builder parameters: ` ObjectArg<T> ` -> ` impl AsObjectArg<T> ` ([ #830 ] ( https://github.com/godot-rust/gdext/pull/830 ) )
104
+ - Godot doc generation from RustDoc
105
+ - Fix doc comments not showing up if only some class members are documented ([ #815 ] ( https://github.com/godot-rust/gdext/pull/815 ) )
106
+ - Fix ` register-docs ` feature not being tested ([ #942 ] ( https://github.com/godot-rust/gdext/pull/942 ) )
107
+ - Registration
108
+ - Fix ` Array<T> ` registered without element type ([ #836 ] ( https://github.com/godot-rust/gdext/pull/836 ) )
109
+ - Virtual methods now take ` Option<Gd<T>> ` (unless whitelisted) ([ #883 ] ( https://github.com/godot-rust/gdext/pull/883 ) )
110
+ - Make arrays exportable only when their inner type is exportable ([ #875 ] ( https://github.com/godot-rust/gdext/pull/875 ) )
111
+ - Display script-virtual methods as ` _method ` instead of ` method ` in Godot docs ([ #918 ] ( https://github.com/godot-rust/gdext/pull/918 ) )
112
+ - Implement the ` safe_ident ` strategy for virtual call parameter identifier generation ([ #822 ] ( https://github.com/godot-rust/gdext/pull/822 ) )
113
+ - FFI and memory safety
114
+ - Fix user-after-free in ` AsObjectArg ` pass-by-value (in default-param methods) ([ #846 ] ( https://github.com/godot-rust/gdext/pull/846 ) )
115
+ - ` RawGd::move_return_ptr ` with ` PtrcallType::Virtual ` leaks reference ([ #848 ] ( https://github.com/godot-rust/gdext/pull/848 ) )
116
+ - Don't abort on panic inside Callable ([ #873 ] ( https://github.com/godot-rust/gdext/pull/873 ) )
117
+ - Tooling and dependencies
118
+ - Dev-dependencies are enabling full codegen ([ #842 ] ( https://github.com/godot-rust/gdext/pull/842 ) )
119
+ - OpenXR is not available on Web ([ #872 ] ( https://github.com/godot-rust/gdext/pull/872 ) )
120
+ - Fix ` enum_test.rs ` accidentally excluded from itest ([ #931 ] ( https://github.com/godot-rust/gdext/pull/931 ) )
121
+ - Codegen-rustfmt: use 2021 edition ([ #937 ] ( https://github.com/godot-rust/gdext/pull/937 ) )
122
+ - Math
123
+ - ` Vecor3::sign() ` gives incorrect results due to ` i32 ` conversion ([ #865 ] ( https://github.com/godot-rust/gdext/pull/865 ) )
124
+
125
+ ### 📈 Performance
126
+
127
+ - ` RawGd ` : cache pointer to internal storage ([ #831 ] ( https://github.com/godot-rust/gdext/pull/831 ) )
128
+ - ` ClassName ` now dynamic and faster ([ #834 ] ( https://github.com/godot-rust/gdext/pull/834 ) )
129
+ - Pass-by-ref for non-` Copy ` builtins (backend) ([ #906 ] ( https://github.com/godot-rust/gdext/pull/906 ) )
130
+
131
+ ### 📚 Documentation
132
+
133
+ - Builtin docs (impl blocks, navigation table, link to Godot) ([ #821 ] ( https://github.com/godot-rust/gdext/pull/821 ) )
134
+ - Add docs for ` #[rpc] ` ([ #949 ] ( https://github.com/godot-rust/gdext/pull/949 ) )
135
+ - Overview about type conversions ([ #833 ] ( https://github.com/godot-rust/gdext/pull/833 ) )
136
+ - Document ` godot::meta ` argument conversions ([ #948 ] ( https://github.com/godot-rust/gdext/pull/948 ) )
137
+ - Add a doc to point users to kwarg builders ([ #876 ] ( https://github.com/godot-rust/gdext/pull/876 ) )
138
+ - Resolve doc warning with global enums ([ #896 ] ( https://github.com/godot-rust/gdext/pull/896 ) )
139
+ - ReadMe update + clippy error ([ #929 ] ( https://github.com/godot-rust/gdext/pull/929 ) )
140
+
8
141
9
142
## [ v0.1.3] ( https://docs.rs/godot/0.1.3 )
10
143
0 commit comments