00:21:25 Andy Gotz: @Anton you are right. There was a pre-PyTango version based on omnipy (not based on the C++ library) but this was never really in production. Soleil took the decision to use the C++ library and wrap it with Boost. 00:23:56 Corne Lukken: What is the default communication library used in PyTango omniORB or ZeroMQ, or are the both used in together? 00:24:10 Andy Gotz: I think DESY (Teresa)?) worked on the Python Database server but this was a long time ago. 00:24:56 Andy Gotz: omniORB for all synchronous and asynchronous calls and ZMQ for events 00:28:35 Corne Lukken: Building a docker image in Gitlab CI requires the Docker in Docker (DinD) service if the gitlab-runner is using a Docker based executor. The Docker executor also must run in privileged mode. This still provides better isolation than using a shell based executor or forwarding the docker socket in the gitlab-runner config.toml. I have recently investigated this and be happy to provide information, an example I made lives here: https://gitlab.dantalion.nl/root/airglow/-/blob/master/.gitlab-ci.yml#L14 00:34:02 Benjamin Bertrand: It’s possible to build docker images with gitlab-ci using kaniko: https://docs.gitlab.com/ee/ci/docker/using_kaniko.html 00:34:20 Benjamin Bertrand: I did it recently for https://gitlab.com/tango-controls/docker/mysql/-/blob/main/.gitlab-ci.yml 00:39:39 Ugur Yilmaz: it's also possible to use podman or other daemonless image builders 00:43:11 Igor Khokhriakov: Hi everyone! Could someone please give more details why not to use pure python implementation? What was behind the decision to use cpp binding? 00:45:05 Andy Gotz: @Geoff or @Anton will you talk about threading in PyTango ? 00:48:33 Corne Lukken: Curse of the demo gods, happens to all of us 00:50:04 Corne Lukken: Is the limitation of only being able to spawn a single device instance only applicable to PyTango unit tests or is this also a limitation when the library is used externally, I.E is it possible to launch multiple devices in the same memory space for integration / functional testing? 00:58:14 Andy Gotz: @Come I am not sure to understand - we need an expert to answer. You can have multiple devices in PyTango for sure. The C++ library is multi-threaded i.e. the omniORB layer is using multiple threads to listen to clients. Once you are back in Python you have to deal with the GIL. @Anton or @Geoff can answer your question better. 01:29:37 Samuel Twum: @Anton thanks for the demo. Useful to see the tracing of functions as you interrogate the device from the proxy interface. Qn: How is it that you're using the breakpoints without getting an error from the 3s timeout. I always run into that issue using the debugger. 01:30:40 Adriaan de Beer: Will the slides be available from the recording on Youtube / somewhere else? 01:33:04 Andy Gotz: ESRF uses green mode a lot for the new beamline control system 01:37:44 Reynald Bourtembourg: Is the write_attr_hardware method called when writing an attribute? I didn't see it in the debugging session. Is it called only when using the pytango low level API? 01:42:54 Reynald Bourtembourg: Here is gdb command to avoid the timeout annoying issue when debugging: handle SIGPIPE nostop noprint pass 01:43:34 Samuel Twum: Thanks @Reynald 01:43:54 Corne Lukken: Can you switch out executors in PyTango for instance switch from greenlets / synchronous executors to OS managed threads?