Version 1 (modified by 11 years ago) ( diff ) | ,
---|
11 September 2014 meeting
Attendees
TomF, Greg, Eric, Conrad
Agenda
Discussion about how Chimera2 start up sequence.
Action Items
Conrad: Toolshed API Eric: Path Initialization API Greg: Command-line Parsing API Greg: Environment Preservation and Monkey Patch API TomG: Presentation of Hydra architecture and migration path
Results
After much discussion, we agreed to the following initialization sequence:
- Command line parsing
- Preserve execution environment and monkey patch Python
- Programs included with Chimera, eg al2co, will execute with the same environment as Chimera while system programs will execute with the preserved environment
- Setup paths
- Chimera paths (where "system" files live)
- Per-user paths (where user data and tools live)
- Initialize "stdio" or UI toolkit, eg splash screen
- Establish presence and both status and error reporting channels
- Initialize preferences
- Initialize core, eg molecular data, surface, triggers, etc.
- Initialize tool shed
- Tool shed should support "safe mode" where no tools are loaded
- Tool shed can support, possibly in conjunction with preferences, disabling certain tools
- Find list of "tool" (which can be Chimera-style tools, commands, data formats, libraries, shared objects, etc)
- Each tool has attributes, eg commands, menus, buttons, that can be queried, eg by UI
- Each tool has methods, eg "start" for creating an instance of the tool
- This is how tools can communicate
- "start" returns a ToolInstance that implements the actual functionality
- ToolInstance has a different API than Tool
- Some Tool's have a singleton ToolInstance while others may be multi-instanced
- Initialize UI and OpenGL
- Add tool interfaces to UI
- App queries tool shed for list of tools and then tells UI what to do
- Execute custom Tool initialization code
- App queries tool shed for list of tools and use Tool API to check for init code
- Process command line requests
- Open files
- Run scripts
- Start Tools
- Restore sessions
- Enter event loop
Eric 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.)
Note:
See TracWiki
for help on using the wiki.