wiki:2014-12-10

Version 1 (modified by Conrad Huang, 11 years ago) ( diff )

--

10 December 2014 meeting, 2:00 - 3:00

Attendees

  • Conrad, TomG, Eric, Greg

Agenda

  • Data event and trigger API
    • We agreed that the Chimera 1 trigger API will be ported over with minor changes:
      • No trigger name required when deregistering handler
      • No closure argument when registering handler
    • 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.
    • 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.
    • 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
  • Build infrastructure
    • While trying to install toolshed, Conrad discovered some inconsistencies in source code arrangement
    • We will use the following rules:
      • Directories containing either Python or C++ code that generate Python modules/packages will not have any special suffix
      • Directories containing C++ code that generate C++ link libraries (.dylib on Mac, .dll on Windows) will have a "_cpp" suffix.
      • 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.
      • All C++ link libraries will be installed in the same directory in the build and install trees to facilitate installation.
      • All C++ Python modules will be installed in site-packages/chimera in the same way as pure Python packages and modules.
      • If a C++ Python module also wants a C++ link library, then the source tree should look something like:
        • module_name - container directory
        • module_name/module_name - C++ Python module
        • module_name/module_name_cpp - C++ link library
      • The Makefile in the container directory should indicate that module_name/module_name depends on module_name/module_name_cpp.

Next Meeting

  • February 2 demo details

Action Items

  • How are we going to handle REST (getting responses from REST)
  • Greg will convert all of chimera.core to the source tree naming conventions.
Note: See TracWiki for help on using the wiki.