Skip to content

Godot 3.5 support #910

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
Oct 2, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
8 changes: 5 additions & 3 deletions .github/composite/godot/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,15 @@ runs:
key: godot-${{ runner.os }}-v${{ inputs.godot_ver }}
- name: "Install Godot"
if: steps.cache-godot.outputs.cache-hit != 'true'
# filePath: transforms '3.5.1-rc1' into '3.5.1/rc1' and '3.5.1-stable' into '3.5.1'
run: |
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
filePath=$(echo "${{ inputs.godot_ver }}" | sed "s!-stable!!" | sed "s!-!/!")
wget --no-verbose "https://downloads.tuxfamily.org/godotengine/$filePath/Godot_v${{ inputs.godot_ver }}_linux_headless.64.zip" -O /tmp/godot.zip
unzip -o /tmp/godot.zip -d ${{ runner.temp }}/godot_bin
shell: bash
- name: "Set environment variable"
run: |
echo "GODOT_BIN=${{ runner.temp }}/godot_bin/Godot_v${{ inputs.godot_ver }}-stable_linux_headless.64" >> $GITHUB_ENV
echo "GODOT_BIN=${{ runner.temp }}/godot_bin/Godot_v${{ inputs.godot_ver }}_linux_headless.64" >> $GITHUB_ENV
shell: bash
- name: "Build godot-rust"
run: |
Expand Down Expand Up @@ -68,7 +70,7 @@ runs:
if grep -q "Leaked instance" "${{ runner.temp }}/stdout.log"; then
exit 1;
fi;
cargo build --features type-tag-fallback;
cargo build --features type-tag-fallback ${{ inputs.rust_extra_args }}
mkdir -p ./project/lib;
cp ../target/debug/libgdnative_test.so ./project/lib/;
${GODOT_BIN} --path ./project/ > >(tee "${{ runner.temp }}/stdout.log");
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/full-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ jobs:
- rust: { toolchain: 'nightly' }
testflags: '-- --skip ui_tests'
- os: { id: ubuntu-latest, name: linux }
rust: { toolchain: '1.56', postfix: ' (msrv 1.56)' }
rust: { toolchain: '1.63', postfix: ' (msrv 1.63)' }
testflags: '-- --skip ui_tests'
- os: { id: ubuntu-latest, name: linux }
rust: { toolchain: 'stable', postfix: ' (minimal-deps)', special: 'minimal-deps' }
Expand Down Expand Up @@ -276,18 +276,18 @@ jobs:
include:
# Latest Godot with different Rust versions
- rust: stable
godot: "3.4.3"
godot: "3.5.1-stable"
postfix: ''
- rust: nightly
godot: "3.4.3"
godot: "3.5.1-stable"
postfix: ' (nightly)'
- rust: '1.56'
godot: "3.4.3"
postfix: ' (msrv 1.56)'
- rust: '1.63'
godot: "3.5.1-stable"
postfix: ' (msrv 1.63)'

# Test with oldest supported engine version
- rust: stable
godot: "3.2"
godot: "3.2-stable"
postfix: ''
build_args: '--features custom-godot'

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/minimal-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ env:

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

# Don't use more features like "gdnative_bindings_generator/debug" to keep CI truly minimal
GDRUST_FEATURES: "gdnative/async,gdnative/serde"
Expand Down
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,17 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.11.0] - unreleased

### Changed

- Changed supported Godot version to 3.5.1 ([#910](https://github.com/godot-rust/godot-rust/pull/910))
- MSRV is now 1.63 ([#910](https://github.com/godot-rust/godot-rust/pull/910))

### Removed

- `Transform2D::from_rotation_translation_scale()` constructor needs more intuitive API ([#910](https://github.com/godot-rust/godot-rust/pull/910))


## [0.10.2] - 2022-10-02

Expand Down
28 changes: 18 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,27 @@

## Stability

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).
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).

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

## Engine compatibility

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

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

The bindings do _**not**_ support in-development Godot 4 versions at the moment. Support is planned as the native extensions become more stable.
Compatibility list:

* Godot 3.5.1 (works with gdnative 0.11)
* Godot 3.4 (works with gdnative 0.10, custom build for 0.11)
* Godot 3.3 (custom build)
* Godot 3.2 (custom build)

The bindings do _**not**_ support in-development Godot 4 versions.
A GDExtension binding is planned.


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

```toml
[dependencies]
gdnative = "0.10.2"
gdnative = "0.11"

[lib]
crate-type = ["cdylib"]
Expand All @@ -59,7 +66,8 @@ crate-type = ["cdylib"]

### Custom builds

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.
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.

### Async/yield support

Expand Down
2 changes: 1 addition & 1 deletion bindings-generator/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ license = "MIT"
version = "0.10.2"
workspace = ".."
edition = "2021"
rust-version = "1.56"
rust-version = "1.63"

[features]
debug = []
Expand Down
4 changes: 2 additions & 2 deletions check.sh
Original file line number Diff line number Diff line change
Expand Up @@ -46,9 +46,9 @@ function findGodot() {
# Special case for Windows when there is a .bat file
# Also consider that 'cmd /c' would need 'cmd //c' (https://stackoverflow.com/q/21357813)
elif
# Don't ask me why Godot returns 255 instead of 0
# Godot returns 255 for older versions, but 0 for newer ones
godot.bat --version
[ $? -eq 255 ]
[[ $? -eq 255 || $? -eq 0 ]]
then
echo "Found 'godot.bat' script"
godotBin="godot.bat"
Expand Down
2 changes: 1 addition & 1 deletion examples/builder-export/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "builder-export"
version = "0.1.0"
authors = ["The godot-rust developers"]
edition = "2021"
rust-version = "1.56"
rust-version = "1.63"
license = "MIT"
publish = false

Expand Down
2 changes: 1 addition & 1 deletion examples/dodge-the-creeps/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version = "0.1.0"
authors = ["The godot-rust developers"]
publish = false
edition = "2021"
rust-version = "1.56"
rust-version = "1.63"
license = "MIT"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion examples/hello-world/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version = "0.1.0"
authors = ["The godot-rust developers"]
publish = false
edition = "2021"
rust-version = "1.56"
rust-version = "1.63"
license = "MIT"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion examples/native-plugin/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "native-plugin"
version = "0.1.0"
authors = ["The godot-rust developers"]
edition = "2021"
rust-version = "1.56"
rust-version = "1.63"
license = "MIT"
publish = false

Expand Down
2 changes: 1 addition & 1 deletion examples/property-export/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "property-export"
version = "0.1.0"
authors = ["The godot-rust developers"]
edition = "2021"
rust-version = "1.56"
rust-version = "1.63"
license = "MIT"
publish = false

Expand Down
2 changes: 1 addition & 1 deletion examples/resource/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version = "0.1.0"
authors = ["The godot-rust developers"]
publish = false
edition = "2021"
rust-version = "1.56"
rust-version = "1.63"
license = "MIT"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion examples/rpc/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version = "0.1.0"
authors = ["The godot-rust developers"]
publish = false
edition = "2021"
rust-version = "1.56"
rust-version = "1.63"
license = "MIT"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion examples/scene-create/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ version = "0.1.0"
authors = ["The godot-rust developers"]
publish = false
edition = "2021"
rust-version = "1.56"
rust-version = "1.63"
license = "MIT"

[lib]
Expand Down
2 changes: 1 addition & 1 deletion examples/signals/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "signals"
version = "0.1.0"
authors = ["The godot-rust developers"]
edition = "2021"
rust-version = "1.56"
rust-version = "1.63"
license = "MIT"
publish = false

Expand Down
2 changes: 1 addition & 1 deletion examples/spinning-cube/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "spinning-cube"
version = "0.1.0"
authors = ["The godot-rust developers"]
edition = "2021"
rust-version = "1.56"
rust-version = "1.63"
license = "MIT"
publish = false

Expand Down
2 changes: 1 addition & 1 deletion gdnative-async/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ version = "0.10.2"
license = "MIT"
workspace = ".."
edition = "2021"
rust-version = "1.56"
rust-version = "1.63"

[features]

Expand Down
2 changes: 1 addition & 1 deletion gdnative-bindings/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ version = "0.10.2"
license = "MIT"
workspace = ".."
edition = "2021"
rust-version = "1.56"
rust-version = "1.63"

[features]
formatted = []
Expand Down
Loading