Hello. One of the important tasks we need to handle before a 1.22 release can occur is checking the ABI/API compatibility with older releases.
Thanks to the ABI Laboratory we have ongoing reports generated for this matter. Time to look at the one we have for 1.22 beta 1 now: https://abi-laboratory.pro/index.php?view=objects_report&l=efl&v1=1.21.1&v2=1.22.0-beta1 The summary states 70 new APIs and 26 removed. Drilling down into the different libraries we have changed APIs in ecore, edje, efl, eina, elementary, eo, eolian and evas. My personal review of this report is below, but I would appreciate if at least two more folks could have a look over the full report. Ecore: ------ https://abi-laboratory.pro/index.php?view=compat_report&l=efl&v1=1.21.1&v2=1.22.0-beta1&obj=6f9db&kind=abi ecore_evas_animator_add and ecore_evas_animator_timeline_add have been added as new symbols. Looking fine to me. efl_app_get symbol has been removed, but it is part of the EO API and thus not part of our API promise yet. Same for the signature change of efl_loop_promise_new(). Edje: ----- https://abi-laboratory.pro/index.php?view=compat_report&l=efl&v1=1.21.1&v2=1.22.0-beta1&obj=18a22&kind=abi With edje_object_content_remove and edje_object_layout_load_error_get two new symbols ahve been added. Both are in a eo.legacy.h file. Was exposing them as public and stable API on purpose? I would like to hear the intention on it. Needs further investigation. Efl: ---- https://abi-laboratory.pro/index.php?view=compat_report&l=efl&v1=1.21.1&v2=1.22.0-beta1&obj=66fe1&kind=abi Four new symbols with efl_file_simple* looking fair to me. The other four symbols are efl_observable_tuple_free, efl_ui_view_factory_create_with_event, EFL_FACTORY_ERROR_NOT_SUPPORTED and EFL_PROPERTY_ERROR_INVALID_KEY. I understand they are part of the MVVM work. This is supposed to be stable for 1.22? Cedirc can you comment on this? Eina: ----- https://abi-laboratory.pro/index.php?view=compat_report&l=efl&v1=1.21.1&v2=1.22.0-beta1&obj=79d61&kind=abi The four newly added symbols are eina_convert_strtod_c, eina_carray_length_iterator_new, eina_multi_iterator_internal_new and eina_vpath_resolve_snprintf. All of them look ok to me and like normal new APIs we are adding over time. The two removed symbols are eina_promise_data_get and eina_promise_data_set. Being exposed in eina_promise.h these are part of our stable API promise, or did I miss something here? The patches from Cedric removing them cite "risky use" as reason. But is they are part of our stable API we simply can not remove the symbols. If the problem could not be fixed we need at least some API stubs and deprecation tag. Elementary: ----------- https://abi-laboratory.pro/index.php?view=compat_report&l=efl&v1=1.21.1&v2=1.22.0-beta1&obj=1c39a&kind=abi As usual Elementary is the lib with the most changes, also in API land. 23 added and 14 removed. On the removed ones there are 5 in elm_widget.h and one for atspi which are not considered stable. The other eight are in efl_ui_widget.eo.legacy.h which makes me wonder if these have been part of the stable API before. Needs more investigation. New elementary APIs are as follows: efl_access_attribute_free ( Efl_Access_Attribute* attr ) elm_atspi_text_text_range_free ( Efl_Access_Text_Range* range ) efl_ui_focus_relation_free ( Efl_Ui_Focus_Relations* rel ) elm_textpath_circle_set ( Efl_Ui_Textpath* obj, double x, double y, double radius, double start_angle, enum Efl_Ui_Textpath_Direction direction ) elm_textpath_ellipsis_get ( Efl_Ui_Textpath const* obj ) elm_textpath_ellipsis_set ( Efl_Ui_Textpath* obj, Eina_Bool ellipsis ) elm_textpath_slice_number_get ( Efl_Ui_Textpath const* obj ) elm_textpath_slice_number_set ( Efl_Ui_Textpath* obj, int slice_no ) efl_ui_widget_parent_iterator ( Efl_Ui_Widget* obj ) efl_ui_widget_tree_iterator ( Efl_Ui_Widget* obj ) efl_ui_widget_tree_widget_iterator ( Efl_Ui_Widget* obj ) elm_widget_parent_set ( Efl_Ui_Widget* obj, Efl_Ui_Widget* parent ) elm_config_scroll_thumbscroll_momentum_animation_duration_max_limit_get ( ) elm_config_scroll_thumbscroll_momentum_animation_duration_max_limit_set ( double max ) elm_config_scroll_thumbscroll_momentum_animation_duration_min_limit_get ( ) elm_config_scroll_thumbscroll_momentum_animation_duration_min_limit_set ( double min ) elm_config_scroll_thumbscroll_momentum_distance_max_get ( ) elm_config_scroll_thumbscroll_momentum_distance_max_set ( unsigned int distance ) elm_config_scroll_thumbscroll_momentum_friction_get ( ) elm_config_scroll_thumbscroll_momentum_friction_set ( double friction ) elm_textpath_add ( Evas_Object* parent ) elm_transit_current_repeat_times_get ( Elm_Transit const* transit ) elm_transit_progress_value_set ( Elm_Transit* transit, double progress ) Anyone having problems with those? Eo: --- https://abi-laboratory.pro/index.php?view=compat_report&l=efl&v1=1.21.1&v2=1.22.0-beta1&obj=f6e29&kind=abi Eo got a bunch of new symbols. 7 to be accurate. efl_class_memory_size_get efl_class_override_register efl_class_override_unregister efl_class_type_get efl_property_reflection_exist efl_property_reflection_get efl_property_reflection_set I can see the new reflection API and some extras for the class handling. Anyone having problems with those? Eolian: ------- https://abi-laboratory.pro/index.php?view=compat_report&l=efl&v1=1.21.1&v2=1.22.0-beta1&obj=1bb2d&kind=abi Eolian got 14 new APIs. 6 of them in the new eolian_aux lib: eolian_aux_class_callables_get eolian_aux_function_all_implements_get eolian_aux_implement_documentation_fallback_get eolian_aux_implement_documentation_get eolian_aux_implement_parent_get eolian_aux_state_class_children_find And 8 more in eolian main: eolian_class_extensions_get eolian_class_parent_get eolian_class_requires_get eolian_constructor_is_ctor_param eolian_event_class_get eolian_implement_implementing_class_get eolian_object_is_beta eolian_unit_file_path_get Some of them are reworks of older APIs which have been removed during refactoring. Which is not a problem as eolian is still beta as of now. For me these new APIs look fine. Anyone having problems with them or the removed ones? Evas: ----- https://abi-laboratory.pro/index.php?view=compat_report&l=efl&v1=1.21.1&v2=1.22.0-beta1&obj=db390&kind=abi The three of the new evas APIs are about textblock_curosr_cluster which look good to me. The removal of evas_vg_node_mask_get is ok as vg is still in beta. The two render2 symbol removals worry me though. evas_render2 and evas_render2_update are form a eo.legacy.h file. To me it seems we can't remove them. regards Stefan Schmidt _______________________________________________ enlightenment-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
