Dear Mika, dear Aaron,
References to the discussions on motivations for the library proposal are welcome, but when and if you find them, IMHO I think the best location for them is the IEP itself. The document could for example, start with a "Background" or similar section that tries to answer why this is a desired thing, what benefits it would bring and maybe some examples.
I have added a new section with another example and a proposal
how it can/will be used in the IntelMQ Webinput:
https://github.com/certtools/ieps/tree/iep-007/007#user-content-use-cases
The code examples are not yet consistent, as they are to be
discussed and I work on proof of concepts (i.e. researching what
interface options are possible/doable) in parallel.
Oooh, that's interesting as well! Although not the same as this proposal, it somehow goes in a similar directionA long time ago I wrote a wrapper script that allowed chaining bots on the command line. It did of course not provide all the features that are outlined in your IEP, but it gave me the possibility to simple sampling of events and testing bots with e.g.
wrapper BotA | wrapper BotB | wrapper BotC ...
Hehe, oh yeah, I feel your pain. Getting systems interconnecting together, month-long fiddling around in various scripts, and setting up proper management, monitoring, other supporting systems around all that, docs - lots of work.What comes to the API-breaking vs. less intrusive implementation, I think I did understand these were two separate options, but the API-breaking I found a bit scary and reacted to that only. And yes, I can imagine it's been a big effort to reach versions 3.0 and 3.1. Had I known all the effort I've had to do put to the interconnected systems related to our IntelMQ setup (IntelMQ itself was not that hard), I would have never even started :-).
ACKStill, as said, my vote is on the less intrusive implementation option and sticking to KISS, but if it turns out the API-breaking one wins, please consider techniques that could provide some degree of backward compatibility as I suggested.
I don't think I'm a very active debater on this forum, so it would be nice to read what other developers think. Especially the ones like me who do not form part of the core developers but just need to add some components and features of their own to IntelMQ.
+1
The word "API" has two meanings hereI think maybe it also helps to clearly explain what Sebix meant by "API breaking change"?
I.e. internally the API for the Bot class changes (and can be search&replaced & refactored for all code and all the developers get informed) Or... this also breaks the (hug/fastapi) API ? ;-)
In this case I meant the program interface of IntelMQ and more specifically I addressed the function signature of Bot.process. A change here would mean the process() methods need to be adapted, or a compatibility layer introduced (is possible with Python's built-in code inspection).
So far, we all agree that we do not want to make this step (now).
best regards
Sebastian
Institute for Common Good Technology gemeinnütziger Kulturverein - nonprofit cultural society https://sebix.at/ ZVR 1510673578