[prev in list] [next in list] [prev in thread] [next in thread] 

List:       enlightenment-devel
Subject:    [E-devel] ABI report for 1.22 beta1
From:       Stefan Schmidt <stefan () datenfreihafen ! org>
Date:       2019-03-14 14:03:03
Message-ID: c3765557-7f40-531a-cf33-749f24efe372 () datenfreihafen ! org
[Download RAW message or body]

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
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic