di icon indicating copy to clipboard operation
di copied to clipboard

When is boost::di going to be released in boost?

Open kanstantsin-chernik opened this issue 8 years ago • 10 comments

I know that it is not a real issue for this repo but it is an issue for me personally. My company allow me to use only released boost code. I would be happy to integrate it asap but I need to wait until it will be incorporated in boost. Do you have any plans to release it out of experiments?

kanstantsin-chernik avatar Jun 05 '17 17:06 kanstantsin-chernik

Same concern for me as well. We grabbed and use boost log when it was experimental but got burned by boost http

jdmairs avatar Jul 03 '17 12:07 jdmairs

In Kris' 2016 BoostCon presentation @ 1:09:01, while showing a "Wanted Dead or Alive Review Manager" slide, Kris said: "DI is proposed for the [Boost Formal] review, however there is no [Boost] review manager. If you feel like DI could be useful for you, you can volunteer."

I'm not part of this project, and I'm not part of Boost. From this presentation and some mailing list messages, it's my understanding Kris has done everything he can to make it part of Boost (submitting DI and getting it accepted for a formal review) and it's now up to a Boost Review Manager to decide to take on the project for review.

jamespharvey20 avatar Oct 03 '17 18:10 jamespharvey20

Thanks very much for this project, its extremely interesting and I will be using it on my projects. As the other posters, I too would prefer for it to be part of Boost, if at all possible. After a quick investigation, I noticed that Boost.DI does not appear to be in the Review Schedule page:

http://www.boost.org/community/review_schedule.html

However, this email by Ron Garcia seems to imply the library should be on the review schedule:

http://boost.2283326.n4.nabble.com/Boost-DI-Formal-review-request-td4670971.html

Seems like it fell through the cracks. Is it worth emailing boost again, or is this something you are not too concerned about @kris-jusiak?

Cheers

Marco

mcraveiro avatar Nov 03 '17 11:11 mcraveiro

Thanks for you kind words.

Right, the official Boost review process has changed recently and all applications without a review manager have been removed from the queue (including DI).

I'm still very interested in DI becoming part of Boost libraries but it's not easy. The next step is to seek for endorsement for the library (that's not a problem, I think) and get a review manager. If both those requirements are fulfilled then the library will be added to the queue again with specific dates.

I'm struggling with getting a review manager, though. Most boost developers, who could perform the review aren't very familiar and/or keen on Dependency Injection which makes it difficult :( I asked a few times directly and/or on conferences but I didn't find anyone who would be willing to processed with the review, yet.

Anyway, I'm really open for any proposals on how to make it happen, because I'm defiantly not doing it good enough!

Thanks!

kris-jusiak avatar Nov 06 '17 17:11 kris-jusiak

@krzysztof-jusiak Hi Kris, It seems you have created a pretty remarkable framework for DI in C++, however, when going through the examples I have a hard time getting a feel for object life times and performance. Also, I get that reliance on templates is probably a must but the template complexity is a bit daunting. My goals with DI in C++ are fairly simple: Write less code and write decoupled code. With [Boost].DI I feel like I have to become a C++ 14 template expert in order to adopt the approach.

Just so you know, I'm coming from a history of COM, RAII and standard template library usage. Any advice?

Thanks, Roger

Oneibus avatar Feb 25 '19 14:02 Oneibus

Thanks, @Oneibus.

You make take a look into runtime injector extension which doesn't require templates at all:

  • https://github.com/boost-experimental/di/blob/cpp14/extension/include/boost/di/extension/injector.hpp
  • https://github.com/boost-experimental/di/blob/cpp14/extension/test/injector.cpp

Then you can simply use it as follows:

    di::extension::injector injector{};
    injector.install(di::bind<i1>.to<impl1>());
    injector.install(di::bind<i2>.to<impl2>());
    injector.create<app>();

kris-jusiak avatar Feb 26 '19 04:02 kris-jusiak

Any updates on this?
I would love to use DI, but like OP, I'm not allowed to use experimental boost code.

bnw avatar Jan 16 '20 14:01 bnw

Same here, would love to use it professionally but cannot while it is still deemed experimental

jheaff1 avatar Jul 01 '20 23:07 jheaff1

Is there a way to make a public campaign to motivate the organization to assign a review manager for this project?

CarlosNihelton avatar Jul 10 '20 10:07 CarlosNihelton

Hi

Any feedback on this ticket? I went through this thread I found, but could not determine if the request was successful or not.

I agree with most posters, can only consider implementing if this project is part of boost. It would be great to get a C++ DI framework to use.

Regards, TvN Cosine

tvn-cosine avatar Apr 14 '22 14:04 tvn-cosine