mirror of
https://github.com/godotengine/godot.git
synced 2024-11-21 11:32:13 +00:00
CI: Compare API compatibility against both 4.0 and 4.1
This commit is contained in:
parent
bc88dca176
commit
b83dff752c
@ -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.
|
118
misc/extension_api_validation/4.1-stable.expected
Normal file
118
misc/extension_api_validation/4.1-stable.expected
Normal file
@ -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.
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user