Skip to content

Commit 1c8dd44

Browse files
committed
Merge tag '4.7-stable' into work2
2 parents a572a99 + 5b4e0cb commit 1c8dd44

6,147 files changed

Lines changed: 981462 additions & 460388 deletions

File tree

Some content is hidden

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

.clang-format

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
# If you change this file, please format all files of the codebase as part of your PR:
2+
# prek run clang-format --all
3+
14
# Commented out parameters are those with the same value as base LLVM style.
25
# We can uncomment them if we want to change their value, or enforce the
36
# chosen value in case the base style changes (last sync: Clang 18.1.8).
@@ -38,7 +41,7 @@ AlignAfterOpenBracket: DontAlign
3841
# AcrossEmptyLines: false
3942
# AcrossComments: false
4043
# AlignCaseColons: false
41-
# AlignEscapedNewlines: Right
44+
AlignEscapedNewlines: DontAlign # Aligning leads to long diffs
4245
AlignOperands: DontAlign
4346
AlignTrailingComments:
4447
Kind: Never
@@ -114,14 +117,25 @@ Cpp11BracedListStyle: false
114117
# - BOOST_FOREACH
115118
# IfMacros:
116119
# - KJ_IF_MAYBE
117-
# IncludeBlocks: Preserve
120+
IncludeBlocks: Regroup
118121
IncludeCategories:
119-
- Regex: ^".*"$
120-
Priority: 1
121-
- Regex: ^<.*\.h>$
122-
Priority: 2
122+
- Regex: ^"(core|drivers|editor|main|scene|servers|tests)/.*"$
123+
Priority: 20
124+
- Regex: ^"(modules|platform)/.*"$
125+
Priority: 30
126+
- Regex: ^<thirdparty/.*>$
127+
Priority: 40
128+
- Regex: ^<(windows|Jolt/Jolt|platform_gl)\.h>$
129+
Priority: 50
130+
- Regex: ^<.*\.(h|hpp)>$
131+
Priority: 60
123132
- Regex: ^<.*>$
124-
Priority: 3
133+
Priority: 70
134+
- Regex: ^".*\.compat\.inc"$
135+
Priority: 0
136+
SortPriority: 1
137+
- Regex: ^".*"$
138+
Priority: 10
125139
# IncludeIsMainRegex: (Test)?$
126140
# IncludeIsMainSourceRegex: ""
127141
# IndentAccessModifiers: false

.clang-tidy

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,26 @@
1+
# If you change this file, please format all files of the codebase as part of your PR:
2+
# prek run --hook-stage manual clang-tidy --all
3+
14
Checks:
25
- -*
3-
- cppcoreguidelines-pro-type-member-init
6+
- performance-move-const-arg
7+
- bugprone-use-after-move
48
- modernize-deprecated-headers
59
- modernize-redundant-void-arg
610
- modernize-use-bool-literals
7-
- modernize-use-default-member-init
11+
# - modernize-use-default-member-init # TODO Re-activate
812
- modernize-use-nullptr
913
- readability-braces-around-statements
1014
- readability-redundant-member-init
15+
- readability-operators-representation
1116
HeaderFileExtensions: ["", h, hh, hpp, hxx, inc, glsl]
1217
ImplementationFileExtensions: [c, cc, cpp, cxx, m, mm, java]
1318
HeaderFilterRegex: (core|doc|drivers|editor|main|modules|platform|scene|servers|tests)/
1419
FormatStyle: file
1520
CheckOptions:
16-
cppcoreguidelines-pro-type-member-init.IgnoreArrays: true
17-
cppcoreguidelines-pro-type-member-init.UseAssignment: true
1821
modernize-deprecated-headers.CheckHeaderFile: true
1922
modernize-use-bool-literals.IgnoreMacros: false
2023
modernize-use-default-member-init.IgnoreMacros: false
2124
modernize-use-default-member-init.UseAssignment: true
25+
readability-operators-representation.BinaryOperators: "&&;&=;&;|;~;!;!=;||;|=;^;^="
26+
readability-operators-representation.OverloadedOperators: "&&;&=;&;|;~;!;!=;||;|=;^;^="

.clangd

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,21 @@
11
# https://clangd.llvm.org/config
2+
23
---
4+
35
# Default conditions, apply everywhere.
46

7+
CompileFlags:
8+
Add:
9+
# Some thirdparty includes seem to require a high -ferror-limit to pass checks.
10+
- -ferror-limit=100
11+
512
Diagnostics:
613
Includes:
714
IgnoreHeader:
815
- \.compat\.inc
16+
917
---
18+
1019
# Header-specific conditions.
1120

1221
If:
@@ -20,11 +29,19 @@ CompileFlags:
2029
- -Wno-unused-const-variable
2130
- -Wno-unused-function
2231
- -Wno-unused-variable
32+
2333
---
24-
# Suppress all third-party warnings.
34+
35+
# Suppress warnings for third-party or partial code.
2536

2637
If:
27-
PathMatch: thirdparty/.*
38+
PathMatch:
39+
- bin/build_deps/.*
40+
- misc/dist/apple_embedded_xcode/.*
41+
- tests/compatibility_test/.*
42+
- thirdparty/.*
43+
- .*/thirdparty/.*
44+
- .*-so_wrap.[ch]
2845

2946
Diagnostics:
3047
Suppress: "*"

.git-blame-ignore-revs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,18 @@ e06d83860d798b6766b23d6eae48557387a7db85
7272

7373
# Style: Replace header guards with `#pragma once`
7474
324512e11c1b7663c3cf47bec6ddbe65c6b8db2b
75+
76+
# Style: Don't right-align escaped newlines
77+
c5df0cb82bc539eff7dcfb2add99d60771fc50c5
78+
79+
# Style: Convert `*.gen.inc` to `*.gen.h`
80+
7dae5da1982f4a55ba91557814905faef9ce461b
81+
82+
# Move RenderingServer enums to a dedicated RenderingServerEnums (`RSE`) namespace
83+
f5a290ac462765afca34e64dd39f883511510147
84+
85+
# Style: Add `class_db.h` includes explicitly
86+
e380a417526c11f15a9ddb3997292409b10da2af
87+
88+
# Move DisplayServer enums and typedefs to DisplayServerEnums
89+
a447ac95ec170ee117c2eae55f1bfff0d0cf0dce

.github/CODEOWNERS

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@
4040
/drivers/vulkan/ @godotengine/rendering
4141

4242
## OS
43-
/drivers/apple*/ @godotengine/macos
43+
/drivers/apple/ @godotengine/macos @godotengine/ios
44+
/drivers/apple_embedded/ @godotengine/ios
4445
/drivers/unix/ @godotengine/linux-bsd
4546
/drivers/windows/ @godotengine/windows
4647

@@ -113,7 +114,6 @@
113114
/modules/hdr/ @godotengine/asset-pipeline
114115
/modules/jpg/ @godotengine/asset-pipeline
115116
/modules/ktx/ @godotengine/asset-pipeline
116-
/modules/squish/ @godotengine/asset-pipeline
117117
/modules/svg/ @godotengine/asset-pipeline
118118
/modules/tga/ @godotengine/asset-pipeline
119119
/modules/tinyexr/ @godotengine/asset-pipeline
@@ -147,6 +147,10 @@
147147
/modules/meshoptimizer/ @godotengine/rendering
148148
/modules/raycast/ @godotengine/rendering
149149
/modules/vhacd/ @godotengine/rendering
150+
/modules/visual_shader/ @godotengine/shaders
151+
/modules/visual_shader/doc_classes/ @godotengine/shaders @godotengine/documentation
152+
/modules/visual_shader/editor/ @godotengine/shaders @godotengine/editor
153+
/modules/visual_shader/tests/ @godotengine/shaders @godotengine/tests
150154
/modules/xatlas_unwrap/ @godotengine/rendering
151155

152156
## Scripting
@@ -158,7 +162,7 @@
158162
/modules/jsonrpc/tests/ @godotengine/gdscript @godotengine/network @godotengine/tests
159163
/modules/mono/ @godotengine/dotnet
160164
/modules/mono/doc_classes/ @godotengine/dotnet @godotengine/documentation
161-
/modules/mono/editor/ @godotengine/dotnet @godotengine/script-editor
165+
/modules/mono/editor/ @godotengine/dotnet @godotengine/editor
162166

163167
## Text
164168
/modules/freetype/ @godotengine/buildsystem
@@ -187,6 +191,7 @@
187191
/modules/gridmap/ @godotengine/3d-nodes
188192
/modules/gridmap/doc_classes/ @godotengine/3d-nodes @godotengine/documentation
189193
/modules/gridmap/editor/ @godotengine/3d-nodes @godotengine/editor
194+
/modules/gridmap/tests/ @godotengine/3d-nodes @godotengine/tests
190195
/modules/navigation_2d/ @godotengine/navigation
191196
/modules/navigation_2d/editor/ @godotengine/navigation @godotengine/editor
192197
/modules/navigation_3d/ @godotengine/navigation
@@ -252,7 +257,6 @@
252257
/scene/resources/shader* @godotengine/shaders
253258
/scene/resources/skeleton* @godotengine/animation
254259
/scene/resources/text_* @godotengine/gui-nodes
255-
/scene/resources/visual_shader* @godotengine/shaders
256260
/scene/theme/ @godotengine/gui-nodes
257261

258262
# Servers

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,18 @@
11
<!--
2-
Please target the `master` branch in priority.
2+
Please target the `master` branch. We will take care of backporting relevant fixes to older versions.
33
4-
Relevant fixes are cherry-picked for stable branches as needed by maintainers.
4+
Before submitting, please read our checklist for contributors:
5+
https://contributing.godotengine.org/en/latest/engine/introduction.html#checklist-for-new-contributors
56
6-
To speed up the contribution process and avoid CI errors, please set up pre-commit hooks locally:
7-
https://contributing.godotengine.org/en/latest/engine/guidelines/code_style.html
7+
Use of AI must be disclosed and should include a description of how it was used.
8+
-->
9+
10+
## What problem(s) does this PR solve?
11+
12+
- Closes #
13+
14+
## Additional information
15+
16+
<!--
17+
Provide additional information and explanation of your PR, including areas that you are uncertain of or require special attention from reviewers. For examples, please read our pull request guidelines: https://contributing.godotengine.org/en/latest/pull_requests/pull_request_guidelines.html#explain-your-contributions
818
-->
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: clangd-tidy
2+
description: Setup and run clangd-tidy on relevant files
3+
4+
inputs:
5+
changed-files:
6+
description: A pre-filtered list of changed files.
7+
required: true
8+
type: string
9+
10+
runs:
11+
using: composite
12+
steps:
13+
- name: Setup clangd-tidy
14+
shell: sh
15+
run: |
16+
echo "::group::Prerequisite checks"
17+
if [ ! -f "compile_commands.json" ]; then
18+
echo "::error::clangd-tidy checker requires a compilation database to function"
19+
exit 1
20+
fi
21+
echo "::endgroup::"
22+
23+
echo "::group::Installing clangd-tidy"
24+
# Don't know which python we're using, so just access the global scope.
25+
python -m pip install clangd clangd-tidy clang-tidy==22.1.0
26+
echo "::endgroup::"
27+
28+
echo "::group::Running clangd-tidy"
29+
clangd-tidy ${{ inputs.changed-files }}
30+
echo "::endgroup::"

.github/actions/download-artifact/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ runs:
1414
using: composite
1515
steps:
1616
- name: Download Godot Artifact
17-
uses: actions/download-artifact@v4
17+
uses: actions/download-artifact@v8
1818
with:
1919
name: ${{ inputs.name }}
2020
path: ${{ inputs.path }}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: Godot hash compatibility test
2+
description: Check if methods with given hashes used by the older GDExtensions still can be loaded with given Godot version.
3+
4+
inputs:
5+
bin:
6+
description: Path to the Godot binary.
7+
required: true
8+
type: string
9+
reftags:
10+
description: Reference tags of Godot versions to check (comma separated).
11+
required: true
12+
type: string
13+
14+
runs:
15+
using: composite
16+
steps:
17+
- name: Extract GDExtension interface
18+
shell: sh
19+
run: |
20+
${{ inputs.bin }} --headless --dump-gdextension-interface
21+
mkdir tests/compatibility_test/src/deps/
22+
mv gdextension_interface.h tests/compatibility_test/src/deps/
23+
24+
- name: Build minimal GDExtension
25+
shell: sh
26+
run: scons --directory=./tests/compatibility_test
27+
28+
- name: Download reference GDExtension API JSON and try to load it
29+
shell: sh
30+
env:
31+
GODOT4_BIN: ${{ inputs.bin }}
32+
REFTAGS: ${{ inputs.reftags }}
33+
run: ./tests/compatibility_test/run_compatibility_test.py

.github/actions/godot-cpp-build/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ runs:
2222
using: composite
2323
steps:
2424
- name: Checkout
25-
uses: actions/checkout@v4
25+
uses: actions/checkout@v6
2626
with:
2727
submodules: recursive
2828
repository: godotengine/godot-cpp

0 commit comments

Comments
 (0)