21 August 2014 meeting
Agenda
On 08/20/2014 07:22 PM, Conrad Huang wrote:
There are two designs that we should settle on:
- Layout of the source tree, and
- Layout of the Chimera 2 distribution.
These are somewhat related. In particular, if we plan to have a distribution with multiple applications, how do we handle that? If the applications are completely independent, there's no constraint on the source layout. However, if we have two applications that share libraries (Python or shared objects), then some source layouts may more sense than others.
For source tree layout, I would like to see a fairly flat layout that is arranged by functionality. For example, there should be a PDB-handling directory, possibly with multiple implementations (TomG and Eric); similarly for mmCIF. My reasoning is that this would enable us to find functionality quickly for reuse and to avoid duplicate implementations.
For Chimera 2 distribution, I would like to see a single distribution directory with multiple applications underneath. This makes removal much simpler than multiple application bundles. A "full" distribution tree (with bin, lib, share, etc. subdirectories) sounds good to me.
The goal for this meeting is to discuss these issues and come up with at most three (but ideally one) proposals for each layout that we can choose from next time.
Conrad
Action items
None.
Future issues
- continue discussion of source tree layout
Decisions
- The distributions will be a single application laid out like Chimera 1. If there are multiple applications, they are independent.
- The source tree layout needs more discussion.
Intermediate results
The proposal for the source tree, in particular chimera2/src, is:
src/ core/ ui/ molecule/ sequence/ .... tools/ mav/ ... apps/ linux/ macosx/ windows/ hydra/ chimera2/ chimera2-headless/
The packages in core would be one wheel. And each directory in tools would be one or more wheels. The apps directory contain per-platform installation tools, as well as application specific directories for packaging an application.
The unresolved part of the above is what does it mean to be core? Core could mean the stuff that is essential to chimera2 visualization, or our core projects, or perhaps just modules that would have circular dependencies. Tied into this is the question of how version numbers will work to update an application. How will updating daily builds, aka, snapshots, work if the version numbers don't change. How often will we update (my thought, bi-monthly in the beginning and less often as it gets more mature)? Are releases a branch or just a tag? Plenty to discuss.