celix icon indicating copy to clipboard operation
celix copied to clipboard

Feature/separate deprecated headers

Open pnoltes opened this issue 3 years ago • 3 comments

This PR deprecates all the not celix_ utils functions and moves them in a separate include_deprecated directly. This is done to prepare a celix v3 release where we "just" not install the include_deprecated directories.

For this PR default the include_deprecated is still installed, but bundles, libraries and executables in the Celix project still using the deprecated utils headers need to configure this with a celix_deprecated_utils_headers cmake function.

Further:

  • The deprecated include dir is added using a separate cmake function to ensure it is not transitive (and still works with static libs, etc) and also to make it possible to run a custom target (celix-deprecated) to get a quick overview which targets are still using the deprecated headers. It also helps that the usage of celix_deprecated_utils_headers can be easily found with a search function.

  • The celix_api.h header is also moved to the include_deprecated directory, because it also includes non celix_ prefixed headers. Updating the celix_api.h would mean a backwards incompatible update, so for now I want to handle it as a deprecated api. A result of this is that a lot of files are updated, but they mostly are the same updates (replace celix_api.h include with some others includes).

  • The v3 ci build is removed, because the approach has changed and I think it is not relevant anymore (and maybe never was).

  • The include_deprecated headers now contains attribute((deprecated)) statements and as result, usage will generate a warning (or if configured an error). For Celix itself, the default compiler config will not generate the deprecated warnings (-Wno-deprecated-declarations).

Lastly note that a celix v3 release does not (directly) mean that non celix_ prefixed headers cannot be used internally anymore, the header are just not installed anymore. This should give us some time to slowly move aways from the deprecated functions.

pnoltes avatar Sep 22 '22 15:09 pnoltes

Please leave it open for another week. I have to check how the deprecated APIs are used in my day time job.

PengZheng avatar Sep 27 '22 03:09 PengZheng

Please leave it open for another week. I have to check how the deprecated APIs are used in my day time job.

No problem.

Please note that the deprecated headers are installed, so downstream the "only" impact would be a deprecated warning. I could update the PR so that the deprecated attribute is behind a macro, so that it is possible to configure whether you want the deprecated warning downstream or not.

pnoltes avatar Sep 27 '22 13:09 pnoltes

Codecov Report

Merging #446 (450a340) into master (b743919) will increase coverage by 0.00%. The diff coverage is 100.00%.

:exclamation: Current head 450a340 differs from pull request most recent head 566e631. Consider uploading reports for the commit 566e631 to get more accurate results

@@           Coverage Diff           @@
##           master     #446   +/-   ##
=======================================
  Coverage   74.38%   74.39%           
=======================================
  Files         199      199           
  Lines       29602    29629   +27     
=======================================
+ Hits        22019    22042   +23     
- Misses       7583     7587    +4     
Impacted Files Coverage Δ
bundles/logging/log_admin/src/celix_log_admin.c 99.73% <ø> (ø)
.../logging/log_admin/src/celix_log_admin_activator.c 100.00% <ø> (ø)
bundles/logging/log_helper/src/celix_log_helper.c 100.00% <ø> (ø)
.../syslog_writer/src/celix_syslog_writer_activator.c 100.00% <ø> (ø)
...b_protocol_wire_v1/src/pubsub_wire_protocol_impl.c 96.38% <ø> (ø)
...otocol_wire_v2/src/ps_wire_v2_protocol_activator.c 100.00% <ø> (ø)
...ubsub/pubsub_spi/src/pubsub_interceptors_handler.c 98.11% <ø> (ø)
...ubsub/pubsub_utils/src/pubsub_serializer_handler.c 93.47% <ø> (ø)
...dles/remote_services/rsa_dfi_utils/src/dfi_utils.c 86.90% <ø> (ø)
bundles/shell/shell/src/lb_command.c 78.33% <ø> (ø)
... and 19 more

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

codecov-commenter avatar Oct 03 '22 17:10 codecov-commenter