| 1 | 10 December 2014 meeting, 2:00 - 3:00 |
| 2 | |
| 3 | Attendees |
| 4 | * Conrad, TomG, Eric, Greg |
| 5 | |
| 6 | Agenda |
| 7 | * Data event and trigger API |
| 8 | * We agreed that the Chimera 1 trigger API will be ported over with minor changes: |
| 9 | * No trigger name required when deregistering handler |
| 10 | * No closure argument when registering handler |
| 11 | * Data event API will need to be accessible from both C++ and Python. Primary example is if we expose atomic coordinates as a '''numpy''' array; if someone manipulates the coordinates from Python, he will need to create atom notifications manually. |
| 12 | * UI events are completely decoupled from triggers and data events. We may add a safety net where we check for non-empty data event queue during redraw. We may add API for indicating whether a notification should be synchronous or not, so that we can check in the safety net whether something really bad has happened. |
| 13 | * Neither triggers nor data events (aka notifications) are absolutely needed for the Feb 2 deadline, so we will add proposed API and then move on |
| 14 | * Build infrastructure |
| 15 | * While trying to install toolshed, Conrad discovered some inconsistencies in source code arrangement |
| 16 | * We will use the following rules: |
| 17 | * Directories containing either Python or C++ code that generate Python modules/packages will not have any special suffix |
| 18 | * Directories containing C++ code that generate C++ link libraries (.dylib on Mac, .dll on Windows) will have a "_cpp" suffix. |
| 19 | * Python packages that need a supporting C++ module will be arranged with the Python package as the parent directory (e.g., "geometry") and the C++ module as a child directory (e.g., "_geometry"). The intent is that there should be a {{{from _geometry import *}}} statement in '''geometry/!__init!__.py''' and that callers of the '''geometry''' package does not ever know about the presences of '''geometry._geometry'''. |
| 20 | * All C++ link libraries will be installed in the same directory in the build and install trees to facilitate installation. |
| 21 | * All C++ Python modules will be installed in '''site-packages/chimera''' in the same way as pure Python packages and modules. |
| 22 | * If a C++ Python module also wants a C++ link library, then the source tree should look something like: |
| 23 | * module_name - container directory |
| 24 | * module_name/module_name - C++ Python module |
| 25 | * module_name/module_name_cpp - C++ link library |
| 26 | * The '''Makefile''' in the container directory should indicate that '''module_name/module_name''' depends on '''module_name/module_name_cpp'''. |
| 27 | |
| 28 | Next Meeting |
| 29 | * February 2 demo details |
| 30 | |
| 31 | Action Items |
| 32 | * How are we going to handle REST (getting responses from REST) |
| 33 | * Greg will convert all of '''chimera.core''' to the source tree naming conventions. |