Changes between Initial Version and Version 1 of 2014-09-11


Ignore:
Timestamp:
Sep 11, 2014, 4:13:39 PM (11 years ago)
Author:
Conrad Huang
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • 2014-09-11

    v1 v1  
     1= 11 September 2014 meeting =
     2
     3== Attendees ==
     4
     5TomF, Greg, Eric, Conrad
     6
     7== Agenda ==
     8
     9Discussion about how Chimera2 start up sequence.
     10
     11== Action Items ==
     12
     13Conrad: Toolshed API
     14Eric: Path Initialization API
     15Greg: Command-line Parsing API
     16Greg: Environment Preservation and Monkey Patch API
     17TomG: Presentation of Hydra architecture and migration path
     18
     19== Results ==
     20
     21After much discussion, we agreed to the following initialization sequence:
     22
     231. Command line parsing
     241. Preserve execution environment and monkey patch Python
     25 - Programs included with Chimera, eg al2co, will execute with the same environment as Chimera while system programs will execute with the preserved environment
     261. Setup paths
     27 - Chimera paths (where "system" files live)
     28 - Per-user paths (where user data and tools live)
     291. Initialize "stdio" or UI toolkit, eg splash screen
     30 - Establish presence and both status and error reporting channels
     311. Initialize preferences
     321. Initialize core, eg molecular data, surface, triggers, etc.
     331. Initialize tool shed
     34 - Tool shed should support "safe mode" where no tools are loaded
     35 - Tool shed can support, possibly in conjunction with preferences, disabling certain tools
     36 - Find list of "tool" (which can be Chimera-style tools, commands, data formats, libraries, shared objects, etc)
     37 - Each tool has attributes, eg commands, menus, buttons, that can be queried, eg by UI
     38 - Each tool has methods, eg "start" for creating an instance of the tool
     39  - This is how tools can communicate
     40  - "start" returns a !ToolInstance that implements the actual functionality
     41 - !ToolInstance has a different API than Tool
     42 - Some Tool's have a singleton !ToolInstance while others may be multi-instanced
     431. Initialize UI and OpenGL
     441. Add tool interfaces to UI
     45 - App queries tool shed for list of tools and then tells UI what to do
     461. Execute custom Tool initialization code
     47 - App queries tool shed for list of tools and use Tool API to check for init code
     481. Process command line requests
     49 - Open files
     50 - Run scripts
     51 - Start Tools
     52 - Restore sessions
     531. Enter event loop
     54
     55Eric described his approach to replacing Qt with wx in Hydra.  We decided that we need more information on the Hydra architecture in order to decide on how best to proceed with further development (eg continue Hydra code base, move components into core, etc.)