summaryrefslogtreecommitdiffstats
path: root/misc
diff options
context:
space:
mode:
Diffstat (limited to 'misc')
-rw-r--r--misc/extension_api_validation/4.0-stable_4.1-stable.expected (renamed from misc/extension_api_validation/4.0-stable.expected)120
-rw-r--r--misc/extension_api_validation/4.1-stable.expected118
-rwxr-xr-xmisc/scripts/validate_extension_api.sh33
3 files changed, 148 insertions, 123 deletions
diff --git a/misc/extension_api_validation/4.0-stable.expected b/misc/extension_api_validation/4.0-stable_4.1-stable.expected
index 4fbe671ebd..5c3bf07fb2 100644
--- a/misc/extension_api_validation/4.0-stable.expected
+++ b/misc/extension_api_validation/4.0-stable_4.1-stable.expected
@@ -1,12 +1,5 @@
-This file contains the expected output of --validate-extension-api when run against the extension_api.json of the
-4.0-stable tag (the basename of this file).
-
-Only lines that start with "Validate extension JSON:" matter, everything else is considered a comment and ignored. They
-should instead be used to justify these changes and describe how users should work around these changes.
-
-Add new entries at the end of the file.
-
-========================================================================================================================
+This file contains, when concatenated to the expected output since 4.1, the expected output of --validate-extension-api
+when run against the extension_api.json of the 4.0-stable tag (first part of the basename of this file).
## Changes between 4.0-stable and 4.1-stable
@@ -356,112 +349,3 @@ Validate extension JSON: Error: Hash changed for 'classes/EditorUndoRedoManager/
Validate extension JSON: Error: Hash changed for 'classes/UndoRedo/methods/create_action', from 0AEC1BFC to E87757EB. This means that the function has changed and no compatibility function was provided.
Added a optional parameters with default values. No adjustments should be necessary.
-
-
-## Changes between 4.1-stable and 4.2-stable
-
-GH-79911
---------
-Validate extension JSON: Error: Field 'classes/RenderingDevice/enums/BarrierMask/values/BARRIER_MASK_RASTER': value changed value in new API, from 1.0 to 9.
-Validate extension JSON: Error: Field 'classes/RenderingDevice/enums/BarrierMask/values/BARRIER_MASK_ALL_BARRIERS': value changed value in new API, from 7.0 to 32767.
-Validate extension JSON: Error: Field 'classes/RenderingDevice/enums/BarrierMask/values/BARRIER_MASK_NO_BARRIER': value changed value in new API, from 8.0 to 32768.
-Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/texture_update/arguments/3': default_value changed value in new API, from "7" to "32767".
-Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/texture_copy/arguments/9': default_value changed value in new API, from "7" to "32767".
-Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/texture_clear/arguments/6': default_value changed value in new API, from "7" to "32767".
-Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/texture_resolve_multisample/arguments/2': default_value changed value in new API, from "7" to "32767".
-Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/buffer_update/arguments/4': default_value changed value in new API, from "7" to "32767".
-Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/buffer_clear/arguments/3': default_value changed value in new API, from "7" to "32767".
-Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/draw_list_end/arguments/0': default_value changed value in new API, from "7" to "32767".
-Validate extension JSON: Error: Hash changed for 'classes/RenderingDevice/methods/draw_list_end', from 19365687 to E9B4FA8E. This means that the function has changed and no compatibility function was provided.
-Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/compute_list_end/arguments/0': default_value changed value in new API, from "7" to "32767".
-Validate extension JSON: Error: Hash changed for 'classes/RenderingDevice/methods/compute_list_end', from 19365687 to E9B4FA8E. This means that the function has changed and no compatibility function was provided.
-Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/barrier/arguments/0': default_value changed value in new API, from "7" to "32767".
-Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/barrier/arguments/1': default_value changed value in new API, from "7" to "32767".
-Validate extension JSON: Error: Hash changed for 'classes/RenderingDevice/methods/barrier', from 0FE50041 to DD9E8DAB. This means that the function has changed and no compatibility function was provided.
-
-Raster barrier was split into vertex and fragment barriers for use in mobile renderer.
-
-
-GH-79308
---------
-Validate extension JSON: API was removed: classes/GraphEdit/methods/get_scroll_ofs
-Validate extension JSON: API was removed: classes/GraphEdit/methods/get_snap
-Validate extension JSON: API was removed: classes/GraphEdit/methods/get_zoom_hbox
-Validate extension JSON: API was removed: classes/GraphEdit/methods/is_using_snap
-Validate extension JSON: API was removed: classes/GraphEdit/methods/set_scroll_ofs
-Validate extension JSON: API was removed: classes/GraphEdit/methods/set_snap
-Validate extension JSON: API was removed: classes/GraphEdit/methods/set_use_snap
-Validate extension JSON: API was removed: classes/GraphEdit/properties/snap_distance
-Validate extension JSON: API was removed: classes/GraphEdit/properties/use_snap
-Validate extension JSON: API was removed: classes/GraphNode/methods/is_comment
-Validate extension JSON: API was removed: classes/GraphNode/methods/set_comment
-Validate extension JSON: API was removed: classes/GraphNode/properties/comment
-Validate extension JSON: Error: Field 'classes/GraphEdit/properties/scroll_offset': getter changed value in new API, from "get_scroll_ofs" to &"get_scroll_offset".
-Validate extension JSON: Error: Field 'classes/GraphEdit/properties/scroll_offset': setter changed value in new API, from "set_scroll_ofs" to &"set_scroll_offset".
-
-Intentional compatibility breakage during refactoring of API marked as experimental.
-
-FIXME: Still a WIP, review this list once the work is completed, especially if compatibility
-code is added.
-
-
-GH-73196
---------
-Validate extension JSON: Error: Field 'classes/CodeEdit/methods/get_text_for_symbol_lookup': is_const changed value in new API, from false to true.
-
-Function was made `const`. No adjustments should be necessary.
-
-
-GH-78328
---------
-Validate extension JSON: Error: Field 'classes/TileMap/methods/get_used_rect': is_const changed value in new API, from false to true.
-
-Function was made `const`. No adjustments should be necessary.
-
-
-GH-79606
---------
-Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/shader_create_from_bytecode/arguments': size changed value in new API, from 1 to 2.
-
-Added optional argument. Compatibility method registered.
-
-
-GH-78266
---------
-Validate extension JSON: API was removed: classes/FontFile/properties/fallbacks
-Validate extension JSON: API was removed: classes/FontVariation/properties/fallbacks
-Validate extension JSON: API was removed: classes/SystemFont/properties/fallbacks
-
-The property was moved to their common base class Font.
-The setters and getters were already in Font, so this shouldn't affect compatibility.
-
-
-GH-36493
---------
-Validate extension JSON: Error: Field 'classes/PopupMenu/methods/add_icon_shortcut/arguments': size changed value in new API, from 4 to 5.
-Validate extension JSON: Error: Field 'classes/PopupMenu/methods/add_shortcut/arguments': size changed value in new API, from 3 to 4.
-
-Added optional argument. Compatibility methods registered.
-
-
-GH-80954
---------
-Validate extension JSON: Error: Field 'classes/Font/methods/find_variation/arguments': size changed value in new API, from 4 to 8.
-
-Added optional arguments. Compatibility method registered.
-
-GH-80852
---------
-
-Validate extension JSON: API was removed: classes/GDScriptEditorTranslationParserPlugin
-Validate extension JSON: API was removed: classes/GDScriptNativeClass
-Validate extension JSON: API was removed: classes/GodotPhysicsServer2D
-Validate extension JSON: API was removed: classes/GodotPhysicsServer3D
-Validate extension JSON: API was removed: classes/IPUnix
-Validate extension JSON: API was removed: classes/MovieWriterMJPEG
-Validate extension JSON: API was removed: classes/MovieWriterPNGWAV
-Validate extension JSON: API was removed: classes/ResourceFormatImporterSaver
-Validate extension JSON: API was removed: classes/FramebufferCacheRD
-Validate extension JSON: API was removed: classes/UniformSetCacheRD
-
-Excluded unexposed classes from extension_api.json.
diff --git a/misc/extension_api_validation/4.1-stable.expected b/misc/extension_api_validation/4.1-stable.expected
new file mode 100644
index 0000000000..ff66f9d51d
--- /dev/null
+++ b/misc/extension_api_validation/4.1-stable.expected
@@ -0,0 +1,118 @@
+This file contains the expected output of --validate-extension-api when run against the extension_api.json of the
+4.1-stable tag (the basename of this file).
+
+Only lines that start with "Validate extension JSON:" matter, everything else is considered a comment and ignored. They
+should instead be used to justify these changes and describe how users should work around these changes.
+
+Add new entries at the end of the file.
+
+## Changes between 4.1-stable and 4.2-stable
+
+GH-79911
+--------
+Validate extension JSON: Error: Field 'classes/RenderingDevice/enums/BarrierMask/values/BARRIER_MASK_RASTER': value changed value in new API, from 1.0 to 9.
+Validate extension JSON: Error: Field 'classes/RenderingDevice/enums/BarrierMask/values/BARRIER_MASK_ALL_BARRIERS': value changed value in new API, from 7.0 to 32767.
+Validate extension JSON: Error: Field 'classes/RenderingDevice/enums/BarrierMask/values/BARRIER_MASK_NO_BARRIER': value changed value in new API, from 8.0 to 32768.
+Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/texture_update/arguments/3': default_value changed value in new API, from "7" to "32767".
+Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/texture_copy/arguments/9': default_value changed value in new API, from "7" to "32767".
+Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/texture_clear/arguments/6': default_value changed value in new API, from "7" to "32767".
+Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/texture_resolve_multisample/arguments/2': default_value changed value in new API, from "7" to "32767".
+Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/buffer_update/arguments/4': default_value changed value in new API, from "7" to "32767".
+Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/buffer_clear/arguments/3': default_value changed value in new API, from "7" to "32767".
+Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/draw_list_end/arguments/0': default_value changed value in new API, from "7" to "32767".
+Validate extension JSON: Error: Hash changed for 'classes/RenderingDevice/methods/draw_list_end', from 19365687 to E9B4FA8E. This means that the function has changed and no compatibility function was provided.
+Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/compute_list_end/arguments/0': default_value changed value in new API, from "7" to "32767".
+Validate extension JSON: Error: Hash changed for 'classes/RenderingDevice/methods/compute_list_end', from 19365687 to E9B4FA8E. This means that the function has changed and no compatibility function was provided.
+Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/barrier/arguments/0': default_value changed value in new API, from "7" to "32767".
+Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/barrier/arguments/1': default_value changed value in new API, from "7" to "32767".
+Validate extension JSON: Error: Hash changed for 'classes/RenderingDevice/methods/barrier', from 0FE50041 to DD9E8DAB. This means that the function has changed and no compatibility function was provided.
+
+Raster barrier was split into vertex and fragment barriers for use in mobile renderer.
+
+
+GH-79308
+--------
+Validate extension JSON: API was removed: classes/GraphEdit/methods/get_scroll_ofs
+Validate extension JSON: API was removed: classes/GraphEdit/methods/get_snap
+Validate extension JSON: API was removed: classes/GraphEdit/methods/get_zoom_hbox
+Validate extension JSON: API was removed: classes/GraphEdit/methods/is_using_snap
+Validate extension JSON: API was removed: classes/GraphEdit/methods/set_scroll_ofs
+Validate extension JSON: API was removed: classes/GraphEdit/methods/set_snap
+Validate extension JSON: API was removed: classes/GraphEdit/methods/set_use_snap
+Validate extension JSON: API was removed: classes/GraphEdit/properties/snap_distance
+Validate extension JSON: API was removed: classes/GraphEdit/properties/use_snap
+Validate extension JSON: API was removed: classes/GraphNode/methods/is_comment
+Validate extension JSON: API was removed: classes/GraphNode/methods/set_comment
+Validate extension JSON: API was removed: classes/GraphNode/properties/comment
+Validate extension JSON: Error: Field 'classes/GraphEdit/properties/scroll_offset': getter changed value in new API, from "get_scroll_ofs" to &"get_scroll_offset".
+Validate extension JSON: Error: Field 'classes/GraphEdit/properties/scroll_offset': setter changed value in new API, from "set_scroll_ofs" to &"set_scroll_offset".
+
+Intentional compatibility breakage during refactoring of API marked as experimental.
+
+FIXME: Still a WIP, review this list once the work is completed, especially if compatibility
+code is added.
+
+
+GH-73196
+--------
+Validate extension JSON: Error: Field 'classes/CodeEdit/methods/get_text_for_symbol_lookup': is_const changed value in new API, from false to true.
+
+Function was made `const`. No adjustments should be necessary.
+
+
+GH-78328
+--------
+Validate extension JSON: Error: Field 'classes/TileMap/methods/get_used_rect': is_const changed value in new API, from false to true.
+
+Function was made `const`. No adjustments should be necessary.
+
+
+GH-79606
+--------
+Validate extension JSON: Error: Field 'classes/RenderingDevice/methods/shader_create_from_bytecode/arguments': size changed value in new API, from 1 to 2.
+
+Added optional argument. Compatibility method registered.
+
+
+GH-78266
+--------
+Validate extension JSON: API was removed: classes/FontFile/properties/fallbacks
+Validate extension JSON: API was removed: classes/FontVariation/properties/fallbacks
+Validate extension JSON: API was removed: classes/SystemFont/properties/fallbacks
+
+The property was moved to their common base class Font.
+The setters and getters were already in Font, so this shouldn't affect compatibility.
+
+
+GH-36493
+--------
+Validate extension JSON: Error: Field 'classes/PopupMenu/methods/add_icon_shortcut/arguments': size changed value in new API, from 4 to 5.
+Validate extension JSON: Error: Field 'classes/PopupMenu/methods/add_shortcut/arguments': size changed value in new API, from 3 to 4.
+
+Added optional argument. Compatibility methods registered.
+
+
+GH-80954
+--------
+Validate extension JSON: Error: Field 'classes/Font/methods/find_variation/arguments': size changed value in new API, from 4 to 8.
+
+Added optional arguments. Compatibility method registered.
+
+
+GH-80852
+--------
+
+Validate extension JSON: API was removed: classes/GDScriptEditorTranslationParserPlugin
+Validate extension JSON: API was removed: classes/GDScriptNativeClass
+Validate extension JSON: API was removed: classes/GodotPhysicsServer2D
+Validate extension JSON: API was removed: classes/GodotPhysicsServer3D
+Validate extension JSON: API was removed: classes/IPUnix
+Validate extension JSON: API was removed: classes/MovieWriterMJPEG
+Validate extension JSON: API was removed: classes/MovieWriterPNGWAV
+Validate extension JSON: API was removed: classes/ResourceFormatImporterSaver
+Validate extension JSON: API was removed: classes/FramebufferCacheRD
+Validate extension JSON: API was removed: classes/UniformSetCacheRD
+Validate extension JSON: API was removed: classes/GLTFDocumentExtensionPhysics
+Validate extension JSON: API was removed: classes/GLTFDocumentExtensionTextureWebP
+
+Excluded unexposed classes from extension_api.json.
diff --git a/misc/scripts/validate_extension_api.sh b/misc/scripts/validate_extension_api.sh
index f2f7c28e70..75f03a7086 100755
--- a/misc/scripts/validate_extension_api.sh
+++ b/misc/scripts/validate_extension_api.sh
@@ -10,7 +10,12 @@ if [ $# != 1 ]; then
echo "Usage: @0 <path-to-godot-executable>"
fi
+api_validation_dir="$( dirname -- "$( dirname -- "${BASH_SOURCE[0]//\.\//}" )" )/extension_api_validation/"
+
has_problems=0
+warn_extra=0
+reference_tag=""
+expected_errors=""
make_annotation()
{
@@ -27,26 +32,44 @@ make_annotation()
fi
}
+get_expected_output()
+{
+ local parts=()
+ IFS='_' read -ra parts <<< "$(basename -s .expected "$1")"
+
+ if [[ "${#parts[@]}" == "2" ]]; then
+ cat "$1" >> "$expected_errors"
+ get_expected_output "$(find "$api_validation_dir" -name "${parts[1]}*.expected")"
+ reference_tag="${parts[0]}"
+ warn_extra=0
+ else
+ cat "$1" >> "$expected_errors"
+ reference_tag="${parts[0]}"
+ warn_extra=1
+ fi
+}
+
while read -r file; do
reference_file="$(mktemp)"
validate="$(mktemp)"
validation_output="$(mktemp)"
allowed_errors="$(mktemp)"
+ expected_errors="$(mktemp)"
+ get_expected_output "$file"
# Download the reference extension_api.json
- reference_tag="$(basename -s .expected "$file")"
wget -qcO "$reference_file" "https://raw.githubusercontent.com/godotengine/godot-cpp/godot-$reference_tag/gdextension/extension_api.json"
# Validate the current API against the reference
"$1" --headless --validate-extension-api "$reference_file" 2>&1 | tee "$validate" | awk '!/^Validate extension JSON:/' - || true
# Collect the expected and actual validation errors
awk '/^Validate extension JSON:/' - < "$validate" | sort > "$validation_output"
- awk '/^Validate extension JSON:/' - < "$file" | sort > "$allowed_errors"
+ awk '/^Validate extension JSON:/' - < "$expected_errors" | sort > "$allowed_errors"
# Differences between the expected and actual errors
new_validation_error="$(comm -23 "$validation_output" "$allowed_errors")"
obsolete_validation_error="$(comm -13 "$validation_output" "$allowed_errors")"
- if [ -n "$obsolete_validation_error" ]; then
+ if [ -n "$obsolete_validation_error" ] && [ "$warn_extra" = "1" ]; then
make_annotation "The following validation errors no longer occur (compared to $reference_tag):" "$obsolete_validation_error" warning "$file"
fi
if [ -n "$new_validation_error" ]; then
@@ -54,7 +77,7 @@ while read -r file; do
has_problems=1
fi
- rm -f "$reference_file" "$validate" "$validation_output" "$allowed_errors"
-done <<< "$(find "$( dirname -- "$( dirname -- "${BASH_SOURCE[0]//\.\//}" )" )/extension_api_validation/" -name "*.expected")"
+ rm -f "$reference_file" "$validate" "$validation_output" "$allowed_errors" "$expected_errors"
+done <<< "$(find "$api_validation_dir" -name "*.expected")"
exit $has_problems