Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Move to GitHub/git
22/11/16 Igor Khokhriakov 2
Done:
● CppTango
● Tango-idl
● Docker-mysql
● Tango-cs-docker
● PANIC
● Fandango
● Taurus
●
Si...
22/11/16 Igor Khokhriakov 3
CMake
● TangoTest;
● TangoAccessControl;
● TangoIDL
– Pkg-config
● Starter.
Docker
● Docker-my...
22/11/16 Igor Khokhriakov 4
cppTango
● Pkg-config file
● CMakeLists.txt
– Code restructured; idl2cpp generation;
cxx tests...
22/11/16 Igor Khokhriakov 5
Mavenization
22/11/16 Igor Khokhriakov 6
Mavenization
22/11/16 Igor Khokhriakov 7
Mavenization
● Astor; LogViewer; atk-panel; atk-tuning; jive
– code restructured;
– pom.xml: a...
22/11/16 Igor Khokhriakov 8
Mavenization
● All Java projects are deployed to bintray
● ATKCore and ATKWidget may be added ...
22/11/16 Igor Khokhriakov 9
TODOs
● Pogo –
– requires non-trivial pom.xml to integrate xtext
● Documentation
– Done for Ji...
22/11/16 Igor Khokhriakov 10
Tango V10
22/11/16 Igor Khokhriakov 11
Absorb CORBA is the way
● Add CORBA sources to cppTango as a module
● Wrap with API (plugin)
...
22/11/16 Igor Khokhriakov 12
Some thoughts
● Merge ApiUtil and Util
● Util is basically a DS, i.e. merge Util and server
●...
22/11/16 Igor Khokhriakov 13
Event driven architecture
● ORB layer generates events for incoming requests (attr
read/write...
22/11/16 Igor Khokhriakov 14
Conclusions
● Code base is huge
● hard to read and understand for new comers
● Extremely diff...
22/11/16 Igor Khokhriakov 15
Questions?
22/11/16 Igor Khokhriakov 16
Thank you!
Upcoming SlideShare
Loading in …5
×

Status report @Soleil, Nov, 2016

139 views

Published on

Move2git; cppTango; mavenization; Tango V10

Published in: Software
  • Be the first to comment

  • Be the first to like this

Status report @Soleil, Nov, 2016

  1. 1. Move to GitHub/git
  2. 2. 22/11/16 Igor Khokhriakov 2 Done: ● CppTango ● Tango-idl ● Docker-mysql ● Tango-cs-docker ● PANIC ● Fandango ● Taurus ● SimulatorDS ● TangoTest ● TangoDataBase ● TangoAccessControl Pending*: ● JTango ● Astor ● LogViewer ● Atk&co ● Jive ● Starter * – requires approval from maintainers
  3. 3. 22/11/16 Igor Khokhriakov 3 CMake ● TangoTest; ● TangoAccessControl; ● TangoIDL – Pkg-config ● Starter. Docker ● Docker-mysql; ● Tango-cs-docker.
  4. 4. 22/11/16 Igor Khokhriakov 4 cppTango ● Pkg-config file ● CMakeLists.txt – Code restructured; idl2cpp generation; cxx tests generation; doxygen integration; debian package ● Travis ● Readme ● Documentation ● Issues ● Tango-9-LTS
  5. 5. 22/11/16 Igor Khokhriakov 5 Mavenization
  6. 6. 22/11/16 Igor Khokhriakov 6 Mavenization
  7. 7. 22/11/16 Igor Khokhriakov 7 Mavenization ● Astor; LogViewer; atk-panel; atk-tuning; jive – code restructured; – pom.xml: automatic release, dependencies ● ATK toolset – Code restructures; – pom.xml: modules, maven plugin for BeanInfo generation, automatic release, dependencies – Submitted to Jcenter ● JTango – Code restructered; – pom.xml – single multi module project, automatic release, dependencies
  8. 8. 22/11/16 Igor Khokhriakov 8 Mavenization ● All Java projects are deployed to bintray ● ATKCore and ATKWidget may be added to JCenter – (if so others will be submitted as well) ● Promote bintray to be official tango-controls repository
  9. 9. 22/11/16 Igor Khokhriakov 9 TODOs ● Pogo – – requires non-trivial pom.xml to integrate xtext ● Documentation – Done for Jive*, Starter**, cppTango** ● Readmes (Done for ATK) ● Migrate issues ● Setup Continuous testing (travis, appveyor) ● Move remaining: archiving; bindings etc ** – html hosted on github.io * – sphinx hosted on readthedocs.io
  10. 10. 22/11/16 Igor Khokhriakov 10 Tango V10
  11. 11. 22/11/16 Igor Khokhriakov 11 Absorb CORBA is the way ● Add CORBA sources to cppTango as a module ● Wrap with API (plugin) ● Some proof-of-the-concept refactorings were done – DevVarDouble, – Isolate ORB, – replace omni_thread with c++11 thread ● Tango::polling – 83 commits, 116 files changed, codebase reduced by ~2K lines
  12. 12. 22/11/16 Igor Khokhriakov 12 Some thoughts ● Merge ApiUtil and Util ● Util is basically a DS, i.e. merge Util and server ● DeviceProxy (Database) has a connection (not inherit) ● Replace ifs with polymorphism (Db, FileDb; DeviceServer, PyDeviceServer etc) ● Replace map<device,smth> with corresponding Device field ● Distinguish Heartbeat, StoreSubDevices and Polling threads ● Implement event driven service bus
  13. 13. 22/11/16 Igor Khokhriakov 13 Event driven architecture ● ORB layer generates events for incoming requests (attr read/write, cmd, pipe etc) ● Server generates events: new attribute value, state change etc ● AccessControl ● Logging ● Blackbox ● Polling (push new values) ● Attribute Read/Writter ● Command executor ● User defined services Services
  14. 14. 22/11/16 Igor Khokhriakov 14 Conclusions ● Code base is huge ● hard to read and understand for new comers ● Extremely difficult to maintain (non-trivial bug fixes) without Emmanuel ● If development is planned for another 10-15 years refactoring is required ● On the other hand it is very mature and stable
  15. 15. 22/11/16 Igor Khokhriakov 15 Questions?
  16. 16. 22/11/16 Igor Khokhriakov 16 Thank you!

×