DANSE cvs
From DANSE
| Table of contents |
Proposal
Organize the DANSE cvs along the lines of the DANSE WBS.
DANSE CVS Login instructions
user-specific login:
cvs -d cvs.cacr.caltech.edu:/srv/cvs/danse co danse
anonymous login:
cvs -d :pserver:danse@cvs.cacr.caltech.edu:/danse login [password: danse] cvs -d :pserver:danse@cvs.cacr.caltech.edu:/danse co danse
Mapping of ARCS CVS Structure
user-specific login:
cvs -d cvs.cacr.caltech.edu:/srv/cvs/arcs co arcs
anonymous login:
cvs -d :pserver:arcs@cvs.cacr.caltech.edu:/arcs login [password: arcs] cvs -d :pserver:arcs@cvs.cacr.caltech.edu:/arcs co arcs
OLD ARCS CVS STRUCTURE (prior to 5/13/05)
Cobra Jonathan Lin's ViPEr (demo) interface for DANSE, obsolete
Server Cobra Server (preinstall version) for cobra152, retired
SofEtoDOS Tabitha Swan-Wood's multiphonon correction code
XTal Generic crystal structure class
cobra152 ViPEr (demo) interface for DANSE, retired
config Link to config in ~pythia, obsolete
graphics Graphics components
HippoDraw Pyre HippoDraw
IDL Pyre IDL
ISAW Pyre ISAW
Matlab Pyre Matlab
Matplotlib Pyre Matplotlib
gnuplot Pyre gnuplot
grace Pyre grace
pgplot Pyre pgplot
gsl Grid Services Light
ins Miscellaneous ARCS/DANSE code, obsolete
mcstas Pyre Mcstas
packages Miscellaneous ARCS/DANSE code
ARCSTest Tim Kelley's unit test structure-builder
array_kluge Converter for Python lists to and from C arrays
cctbx_adpt Pyre cctbx, for computational crystallography
fitting Tim Kelley's least squares fitting framework
fpset STL sets & multimaps with "built-in" comparison operator
hdf5 Maciej Brodowicz's Pyre hdf5, obsolete
hdf5_cpp_1.6.3 NCSA hdf5 sources (v1.6.3), altered to compile with gcc-3.4.4
hdf5fs Pyre hdf5, for manipulation of hdf5 files
ins Miscellaneous inelastic neutron scattering data reduction code
annabs Tim Kelley's annular absorption code
histogram Tim Kelley's histogram class
instruments Detector, Pixel, and other instrument classes (also ARCS.XML)
reduction Tim Kelley's data reduction code, development version
reduction-0.0 Frozen version of reduction
single_crystal Tim Kelley's rewrite of JaeDong's single_crystal code
topline Data reduction code prior to major revision, obsolete
mpitest Test program for linking/include of mpi and config
nexus Tim Kelley's Python version of the NeXus API
nx5 NeXus with the NeXus API replaced by hdf5fs
nx5-0.0 Frozen version of nx5, obsolete
phonons Tim Kelley's Born von Karman code
bvk Program to compute phonon DOS and dispersion curves
bvkfit Link to stable version of bvkfit (bvkfit-0.1)
bvkfit-0.1 Program to fit DOS to inelastic neutron scattering data
bvkfit-0.2 Development version of bvkfit-0.1
cctbx_clients Extending bvk to use cctbx, status unknown
fct0.1 Group theory applied to force constant tensors
lapacktest Test program for linking/include of lapack and config
pyIDL Simple API for IDL
saidl Tim Kelley's Simple API for IDL, obsolete
sam Patrick Hung's Simple API for Matlab, divergent
stdVector-0.1 Converter for Python lists to and from C++ STL vectors
stdVector-0.2 Development version of stdVector-0.1
phonon_calcs Miscellaneous phonon DOS code
multiphonon Brent Fultz's multiphonon scattering code
phononthermo Brent Fultz's phonon thermodynamics code
phonons Tim Kelley's Born von Karman code, obsolete
publications Miscellaneous ARCS/DANSE publications
ARCS_Soft_Project Project Execution Plan for the ARCS software
Big_Book "Inelastic Neutron Scattering", with DANSE reference manual
CONST_Proposal DANSE construction proposal, as submitted to the NSF
DANSE_design DANSE design proposal, as submitted to the NSF
DANSE_design.old Near-final draft of the DANSE design proposal, obsolete
IMR_MIP_NSF_2003.old Early port of the DANSE white paper to an NSF proposal, obsolete
NSF_IMR_MIP_2003 Original draft of DANSE CONST proposal, obsolete
PyCppExt "Writing C++ Extensions for Python", from the ARCS Wiki
danse Early draft of the DANSE white paper, obsolete
danse_more DANSE white paper, as widely circulated
texinputs LaTeX inputs for DANSE/ARCS
pythia-0.4 Link to pythia-0.4 in ~pythia, obsolete
pythia-0.5 Link to pythia-0.5 in ~pythia, obsolete
server Cobra Server (arcscluster-specific backup), retired
single_crystal JaeDong Lee's single crystal mslice rewrite
spin_dynamics JaeDong Lee's spin dynamics code
subgroups DANSE subgroup-specific contributions
abq Pyre Abaqus, for finite element analysis
pdffit Pyre pdffit, for full profile structural refinement
templates Link to templates in ~pythia, obsolete
third_party Miscellaneous third-party code
twisted Twisted web application server
tutorials DANSE tutorials
bindings Tutorials on binding Python, C, Fortran, Java
build_procedure Tutorials on 'config' (build procedure), includes swig and f2py
native Example code translated to Python, C, Fortran, Java
pyre_component Tutorials on converting python code to pyre component
unittest Tutorials on functional requirements and unit testing
Museum Retirement home for old packages
NEW ARCS CVS STRUCTURE (5/13/05)
arcs ARCS developemnt cvs
applications
examples
packages
ARCSTest
fitting
hdf5fs
nexus
pyIDL
SofEtoDOS
array_kluge
fpset
ins
nx5
pyIO
spin_dynamics
cctbx_adpt
graphics
mcstas
phonon_calcs
saidl
stdVector
hdf5_cpp_1.6.3
mpitest
phonons
sam
publications
ARCS_Soft_Project
Big_Book
PyCppExt
texinputs
tests
Museum
demo
Cobra
cobra152
server
Server
packages
hdf5
ins
nx5-0.0
phonons
single_crystal
stdVector-0.1
arcs_danse Content to migrate to DANSE cvs
packages
gsl
subgroups
third_party
tutorials
XTal
publications
CONST_Proposal
DANSE_design
danse_more
texinputs
Museum
packages
publications
danse
DANSE_design.old
IMR_MIP_NSF_2003.old
NSF_IMR_MIP_2003
Top-level DANSE CVS Structure
danse-0.X DANSE release #X
danse DANSE development cvs
help (Introduction)
internaldocs (Vision and Goals)
infrastructure (Project Infrastructure)
centralservices (Central Services)
framework (Distributed Component Framework)
visualization (Visualization)
ui (User Interfaces)
dataservices (User Layer Data Services)
common (Common Tasks)
reduction (Data Reduction)
modeling (Modeling of Data)
simulation (Full Simulations of Data)
common (Common Algorithms and Data Types)
diffraction (Diffraction)
engdiffraction (Engineering Diffraction)
sans (Small-Angle Neutron Scattering)
reflectometry (Neutron Reflectometry)
inelastic (Inelastic Neutron Scattering)
outreach (Education, Outreach, and Knowledge Transfer)
Museum Retirement home for old packages
sandbox Non-spamming practice area
Directories like infrastructure and centralservices can contain hyperlinks to other CACR project cvs repositories (such as config and pyre) as well as any new DANSE-specific developments. The help directory can contain help on using the cvs, as well as links *OR* scripts to build the released package at each milestone. The internaldoc directory can contain proposals and other internal documentation. The outreach directory can contain standalone documentation, tutorials, demos, and presentations.
Proposed propagation of packages to DANSE CVS
- Packages to keep on ARCS cvs: Cobra, Server, cobra152, config, ins, packages/cctbx_adpt(??? -- Shouldn't this also move to DANSE?), packages/hdf5, packages/ins/topline, packages/ins/single_crystal, (how about, if it doesn't get moved below, then it stays? -- That's the plan.)
- Packages to migrate to DANSE cvs: graphics/*, packages/hdf5fs, packages/ins/reduction, pkg/mpitest, pkg/nx5, pkg/phonons/bvk, pkg/phonons/lapacktest, pkg/pyIDL, pkg/sam, pkg/stdVector-0.2.
- Packages that can migrate to DANSE after some cleaning: packages/ARCSTest (better cpp scripts), packages/array_kluge (rename cArray?, clean), packages/fpset (do not inherit from STL).
- Organization of migrated packages within DANSE cvs: (FIXME)
- Organization of links to 'external' cvs packages: (i.e. pythia) (FIXME)
danse
help
internaldocs
Big_Book
CONST_Proposal
DANSE_design
danse_more
infrastructure
centralservices
framework
gsl
twisted ?
visualization
HippoDraw
IDL (pyIDL as subdirectory)
ISAW
Matlab (sam as subdirectory)
Matplotlib
gnuplot
grace
pgplot
ui
dataservices
common
common
Xtal
cctbx_adpt ?
stdVector
instrument
modeling
reduction
simulation
mcstas
diffraction
pdffit ?
pdffit2
engdiffraction
abq ?
sans
reflectometry
inelastic
SofEtoDOS ?
spin_dynamics ?
outreach
tutorials
PyCppExt ?
Museum
TODO
packages
ARCSTest
array_kluge
fitting
fpset
hdf5
hdf5_cpp_1.6.3
hdf5fs
ins
mpitest
nexus
nx5
phonons
OUT
Cobra
Server
cobra152
config
ins
packages
saidl
phonon_calcs
phonons
publications
ARCS_SoftProject
DANSE_design.old
IMR_MIP_NSF_2003.old
IMR_MIP_NSF_2003
danse
pythia-0.4
pythia-0.5
server
single_crystal
templates
What if something does not fit well into the current DANSE cvs repository structure? Then we find a suitable place for it in the repository, and alter the WBS to reflect this change.
Plans for the Structure of DANSE
Each subproject should have its own cvs repository, most likely hosted and managed by CACR. We would have to create 4 or 5 new CACR projects, one for each DANSE subgroup. These repositories will hold the development version of their code, and have their own group of developers with write permission. The development in each of the subgroups should be 95% orthogonal, so the DANSE subgroups really can be seperated into different CACR projects that may leverage each other. Thus, the danse repository would be a skeleton for documentation and stable releases for all the associated subprojects. The danse repository would be the repository most users would check out of, while the developers would check out of their own 'subgroup' repositories as well.
Thus, we should have seperate repositories for the subprojects instead of everyone developing within the 'danse' repository. Further, we should have danse as a release-oriented cvs repository, possibly with read-access only (maybe best as pserver)? Write access to danse may only be needed for whomever is the manager and validator of subgroup code responsible for promoting it to a stable release (I believe it is actually CIT's responsibility to have the subgroups produce version releases).
Stable versus Development Builds
Then we should, within the build procedure, have the development releases for the developer's subproject build in the place of the stable release for that subgroup.
FROM stable release repository:
>$ cvs -d cvs.cacr.caltech.edu:/srv/cvs/danse co danse
this gets all the stable releases and documentation...
>$ ls * danse/sans danse/inelastic danse/diffraction and so on...
The code will all be importable with python, based on the directory structure. Thus, a package 'foo' within danse/inelastic will build and be imported as...
>>> from danse.inelastic import foo
FROM a development repository:
>$ cvs -d cvs.cacr.caltech.edu:/srv/cvs/inelastic co inelastic
This will be built within the build procedure, and also be importable by python...
>>> from inelastic import foo
However, we will want the developers to be able to replace the stable release for their subgroup with their own group's development release, thus each subgroup will need to have some build procedure magic in their top cvs directory node (-- this really doesn't concern the structure of the cvs system, but I'm just saying this for completeness). Thus for an 'inelastic' developer, in python
>>> from danse.inelastic import foo
will also provide the 'development' grade code.
