Skip to content

Commit 8ed2e11

Browse files
bors[bot]Bromeon
andauthored
Merge #910
910: Godot 3.5 support r=Bromeon a=Bromeon Integrates support for Godot 3.5.1, including: **Godot** * Updated api.json + XML documentation * Version compatibility warning to avoid accidental mix-ups * CI suite for new engine version (+ support for RCs) * Backwards compatibility down to Godot 3.2, when using `custom-godot` feature **Rust** * MSRV 1.63 * Updated crate dependencies Co-authored-by: Jan Haller <[email protected]>
2 parents 46a154b + bbdf54b commit 8ed2e11

File tree

626 files changed

+22469
-3970
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

626 files changed

+22469
-3970
lines changed

.github/composite/godot/action.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,15 @@ runs:
3333
key: godot-${{ runner.os }}-v${{ inputs.godot_ver }}
3434
- name: "Install Godot"
3535
if: steps.cache-godot.outputs.cache-hit != 'true'
36+
# filePath: transforms '3.5.1-rc1' into '3.5.1/rc1' and '3.5.1-stable' into '3.5.1'
3637
run: |
37-
wget --no-verbose "https://downloads.tuxfamily.org/godotengine/${{ inputs.godot_ver }}/Godot_v${{ inputs.godot_ver }}-stable_linux_headless.64.zip" -O /tmp/godot.zip
38+
filePath=$(echo "${{ inputs.godot_ver }}" | sed "s!-stable!!" | sed "s!-!/!")
39+
wget --no-verbose "https://downloads.tuxfamily.org/godotengine/$filePath/Godot_v${{ inputs.godot_ver }}_linux_headless.64.zip" -O /tmp/godot.zip
3840
unzip -o /tmp/godot.zip -d ${{ runner.temp }}/godot_bin
3941
shell: bash
4042
- name: "Set environment variable"
4143
run: |
42-
echo "GODOT_BIN=${{ runner.temp }}/godot_bin/Godot_v${{ inputs.godot_ver }}-stable_linux_headless.64" >> $GITHUB_ENV
44+
echo "GODOT_BIN=${{ runner.temp }}/godot_bin/Godot_v${{ inputs.godot_ver }}_linux_headless.64" >> $GITHUB_ENV
4345
shell: bash
4446
- name: "Build godot-rust"
4547
run: |
@@ -68,7 +70,7 @@ runs:
6870
if grep -q "Leaked instance" "${{ runner.temp }}/stdout.log"; then
6971
exit 1;
7072
fi;
71-
cargo build --features type-tag-fallback;
73+
cargo build --features type-tag-fallback ${{ inputs.rust_extra_args }}
7274
mkdir -p ./project/lib;
7375
cp ../target/debug/libgdnative_test.so ./project/lib/;
7476
${GODOT_BIN} --path ./project/ > >(tee "${{ runner.temp }}/stdout.log");

.github/workflows/full-ci.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ jobs:
135135
- rust: { toolchain: 'nightly' }
136136
testflags: '-- --skip ui_tests'
137137
- os: { id: ubuntu-latest, name: linux }
138-
rust: { toolchain: '1.56', postfix: ' (msrv 1.56)' }
138+
rust: { toolchain: '1.63', postfix: ' (msrv 1.63)' }
139139
testflags: '-- --skip ui_tests'
140140
- os: { id: ubuntu-latest, name: linux }
141141
rust: { toolchain: 'stable', postfix: ' (minimal-deps)', special: 'minimal-deps' }
@@ -276,18 +276,18 @@ jobs:
276276
include:
277277
# Latest Godot with different Rust versions
278278
- rust: stable
279-
godot: "3.4.3"
279+
godot: "3.5.1-stable"
280280
postfix: ''
281281
- rust: nightly
282-
godot: "3.4.3"
282+
godot: "3.5.1-stable"
283283
postfix: ' (nightly)'
284-
- rust: '1.56'
285-
godot: "3.4.3"
286-
postfix: ' (msrv 1.56)'
284+
- rust: '1.63'
285+
godot: "3.5.1-stable"
286+
postfix: ' (msrv 1.63)'
287287

288288
# Test with oldest supported engine version
289289
- rust: stable
290-
godot: "3.2"
290+
godot: "3.2-stable"
291291
postfix: ''
292292
build_args: '--features custom-godot'
293293

.github/workflows/minimal-ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ env:
1212

1313
# Local variables
1414
# Note: using variables is limited at the moment, see https://github.com/actions/runner/issues/480
15-
GODOT_VER: "3.4.1"
15+
GODOT_VER: "3.5.1-stable"
1616

1717
# Don't use more features like "gdnative_bindings_generator/debug" to keep CI truly minimal
1818
GDRUST_FEATURES: "gdnative/async,gdnative/serde"

CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.11.0] - unreleased
9+
10+
### Changed
11+
12+
- Changed supported Godot version to 3.5.1 ([#910](https://github.com/godot-rust/godot-rust/pull/910))
13+
- MSRV is now 1.63 ([#910](https://github.com/godot-rust/godot-rust/pull/910))
14+
15+
### Removed
16+
17+
- `Transform2D::from_rotation_translation_scale()` constructor needs more intuitive API ([#910](https://github.com/godot-rust/godot-rust/pull/910))
18+
819

920
## [0.10.2] - 2022-10-02
1021

README.md

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,27 @@
1212

1313
## Stability
1414

15-
The bindings cover most of the exposed API of Godot 3.4, and are being used on a number of projects in development, but we still expect non-trivial breaking changes in the API in the coming releases. godot-rust adheres to [Cargo's semantic versioning](https://doc.rust-lang.org/cargo/reference/semver.html).
15+
The bindings cover most of the exposed API of Godot 3.5, and are being used on a number of projects in development, but we still expect non-trivial breaking changes in the API in the coming releases. godot-rust adheres to [Cargo's semantic versioning](https://doc.rust-lang.org/cargo/reference/semver.html).
1616

17-
Minimum supported Rust version (MSRV) is **1.56**. We use the Rust 2021 Edition.
17+
Minimum supported Rust version (MSRV) is **1.63**. We use the Rust 2021 Edition.
1818

1919
## Engine compatibility
2020

21-
We are committed to keeping compatibility with the latest stable patch releases of all minor versions of the engine, starting from Godot 3.2:
22-
* Godot 3.4 (works out-of-the-box)
23-
* Godot 3.3 (needs feature `custom-godot`)
24-
* Godot 3.2 (needs feature `custom-godot`)
21+
Due to GDNative API not strictly following SemVer and some concepts not mapping 1:1 to Rust (default parameters),
22+
it is difficult for a godot-rust version to remain compatible with multiple Godot versions simultaneously.
2523

26-
For versions 3.2 and 3.3, some extra steps are needed, see _Custom builds_ below.
24+
However, we support the latest stable Godot 3 minor release out-of-the-box, and allow to easily use custom engine
25+
versions using the `custom-godot` feature flag (see [below](#Custom builds)).
2726

28-
The bindings do _**not**_ support in-development Godot 4 versions at the moment. Support is planned as the native extensions become more stable.
27+
Compatibility list:
28+
29+
* Godot 3.5.1 (works with gdnative 0.11)
30+
* Godot 3.4 (works with gdnative 0.10, custom build for 0.11)
31+
* Godot 3.3 (custom build)
32+
* Godot 3.2 (custom build)
33+
34+
The bindings do _**not**_ support in-development Godot 4 versions.
35+
A GDExtension binding is planned.
2936

3037

3138
## Getting started
@@ -38,7 +45,7 @@ This is the recommended way of using godot-rust. After `bindgen` dependencies an
3845

3946
```toml
4047
[dependencies]
41-
gdnative = "0.10.2"
48+
gdnative = "0.11"
4249

4350
[lib]
4451
crate-type = ["cdylib"]
@@ -59,7 +66,8 @@ crate-type = ["cdylib"]
5966

6067
### Custom builds
6168

62-
To use the bindings with a different Godot version or a custom build of the engine, see [Custom Godot builds](https://godot-rust.github.io/book/advanced-guides/custom-godot.html) in the user guide.
69+
To use the bindings with a different Godot version or a custom build of the engine, see
70+
[Custom Godot builds](https://godot-rust.github.io/book/advanced-guides/custom-godot.html) in the user guide.
6371

6472
### Async/yield support
6573

bindings-generator/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ license = "MIT"
99
version = "0.10.2"
1010
workspace = ".."
1111
edition = "2021"
12-
rust-version = "1.56"
12+
rust-version = "1.63"
1313

1414
[features]
1515
debug = []

check.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ function findGodot() {
4646
# Special case for Windows when there is a .bat file
4747
# Also consider that 'cmd /c' would need 'cmd //c' (https://stackoverflow.com/q/21357813)
4848
elif
49-
# Don't ask me why Godot returns 255 instead of 0
49+
# Godot returns 255 for older versions, but 0 for newer ones
5050
godot.bat --version
51-
[ $? -eq 255 ]
51+
[[ $? -eq 255 || $? -eq 0 ]]
5252
then
5353
echo "Found 'godot.bat' script"
5454
godotBin="godot.bat"

examples/builder-export/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name = "builder-export"
33
version = "0.1.0"
44
authors = ["The godot-rust developers"]
55
edition = "2021"
6-
rust-version = "1.56"
6+
rust-version = "1.63"
77
license = "MIT"
88
publish = false
99

examples/dodge-the-creeps/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ version = "0.1.0"
44
authors = ["The godot-rust developers"]
55
publish = false
66
edition = "2021"
7-
rust-version = "1.56"
7+
rust-version = "1.63"
88
license = "MIT"
99

1010
[lib]

examples/hello-world/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ version = "0.1.0"
44
authors = ["The godot-rust developers"]
55
publish = false
66
edition = "2021"
7-
rust-version = "1.56"
7+
rust-version = "1.63"
88
license = "MIT"
99

1010
[lib]

0 commit comments

Comments
 (0)