Hi all, In preparation for converting relax into a universal toolkit for NMR dynamics, I would like to take the following steps: 1) Release relax 2.2.5. 2) Merge the frame order branch back into the relax trunk. This code is close to complete and is stable. There are also changes to certain parts of relax which should really have gone into trunk instead of the branch. This includes, for example, a change of the operation in the atom_loop() method of the structural API. The merger is essential prior to the next step as otherwise the branch will no longer be manageable. After this merger, there will be no branches tracking the trunk any more. The 'cst', 'inversion-recovery', and 'relax_disp' branches will remain, but these are too old to follow the trunk with svnmerge. They can always be restored by the creation of a new branch and then manually porting the changes of the old branch to the new - a trivial exercise when using the svnmerge.py script. 3) Completely redesign the package and module layout in relax. The key idea that this revolves around is the creation of the relax library package called 'lib'. This will be a huge collection of functions relevant for NMR dynamics. These will be fully independent from the relax data store, specific analysis API, and other relax concepts. It will allow users to employ relax as an alternative to Mathematica and Matlab, by having a large collection of NMR functions at their fingertips. A lot more details are given in the docs/package_layout document, which I have included below. The redesign should be more logical and easier to understand for new developers as well. As there are no relax developers actively making changes at the moment, I will probably start with these changes today as it should not interrupt anyone, but any feedback would be appreciated. Regards, Edward Directory layout design (2013-03-01) ==================================== The following is an idea for how to lay out the directories for the relax sources. The changes suggested must occur after the merging of the frame_order_testing branch. ____________________________________________________________________________________________________ Package Description ____________________________________________________________________________________________________ analysis_lib Analysis specific code (currently called specific_fns). auto_analyses Unchanged from now. A collection of massive relax scripts used to simplify the life of relax users. data_store The relax data store and all modules which operate on it (data and generic_fns). ds_lib All modules which operate on the relax data store (data and generic_fns). Mainly user function backends. extern GPL compatible packages bundled with relax. graphics Mainly a repository for all bitmap and vector graphics, but a few auxiliary functions for handling graphics within relax (e.g. icons in the GUI). gui The graphical UI. lib A set of modules and functions independent of the relax data store and specific analyses. Half of maths_fns and some of generic_fns. No code is allowed to reference the data store! lib.frame_order Most of the modules of maths_fns.frame_order. lib.geometry To include, for example, maths_fns.rotation_matrix. lib.opendx From opendx. lib.nmr For example maths_fns.rdc, math_fns.pcs, etc. lib.structure From generic_fns.structure. multi The multi-processor code. prompt The prompt/script UI. scons The SCons modules. target_fns A collection of all the target functions. This is most of the current maths_fns. The modules contain target function classes which must present the func() method as the target function (and the optional dfunc() and d2func() for the gradient and Hessian respectively). test_suite The relax test suite. user_functions The definitions of the relax user functions. ____________________________________________________________________________________________________