apache / celix

Apache Celix is a framework for C and C++14 to develop dynamic modular software applications using component and in-process service-oriented programming.
https://celix.apache.org/
Apache License 2.0
162 stars 86 forks source link

Feature/579 automatic dependency deduction #589

Closed PengZheng closed 1 year ago

PengZheng commented 1 year ago

This PR fixes #579 by implementing automatic dependency deduction among components within the Celix package.

Now we can specify only what we need, and a minimal Conan package with corresponding feature (and its internal dependencies, but nothing more) will be built for us automatically.

For example, if we only need PushStreams, the following snippet should be enough for any downstream project:

            self.requires("celix/2.3.0")
            self.options['celix'].build_pushstreams = True

Or we can create a minimal Conan package with only PushStreams and Promises support by the following command line:

conan create . -b missing -o celix:build_pushstreams=True

To this end:

Documentation has not been updated to reflect the above. We may need more usage experience.

@xuzhenbao I noticed if mdnsresponder/1790.80.10 were used, tests failed. Is that normal?

codecov-commenter commented 1 year ago

Codecov Report

Merging #589 (e492c63) into master (8bcac0f) will increase coverage by 0.03%. The diff coverage is 100.00%.

:exclamation: Current head e492c63 differs from pull request most recent head c789b89. Consider uploading reports for the commit c789b89 to get more accurate results

@@            Coverage Diff             @@
##           master     #589      +/-   ##
==========================================
+ Coverage   78.50%   78.54%   +0.03%     
==========================================
  Files         234      234              
  Lines       35389    35431      +42     
==========================================
+ Hits        27782    27829      +47     
+ Misses       7607     7602       -5     
Files Changed Coverage Δ
libs/framework/src/celix_launcher.c 92.35% <100.00%> (ø)

... and 4 files with indirect coverage changes

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