How our source code is organized...
On Tue, 11 Jul 2000, Henk Uijterwaal (RIPE-NCC) wrote:
>
> Looked a bit at this. What seems reasonable is:
>
>
> $TTROOT/CVS/testbox/project1
> /project2
> ...
> /analysis/project1
> /project2
> ...
> /control/project1
> ...
> /documentation/doc1
> /doc2
> /doc3
> ...
>
> testbox: Software running on the testboxes
> analysis: Analysis code
> control: Code to control the test-boxes from the NCC.
> documentation: RIPE-documents and such
I finished the next step of the cleanup.
Before you begin, do setenv CVSROOT /ncc/test-traffic/CVS
In $CVSROOT, there are now 4 projects: analysis, control, testbox and
documentation, each with various subprojects. A subproject is roughly 1
well-defined piece of code with all supporting scripts, makefiles, etc,
etc. There can be subdirectories inside a subproject.
Which subprojects exists, is defined in $CVSROOT/CVSROOT/modules. The
left hand shows the name of module, the right hand the part of the
directory after $CVSROOT. Things on the left hand should be unique.
To add a new subproject do:
1. cd $CVSROOT/CVSROOT
2. vi modules
3. "add name of the module and location of the files"
4. mkdir $CVSROOT/location of files
To modify an existing subproject, do:
1. cvs checkout module
(this will create a directory with all files.
2. cd module
3. # edit/test
4. cvs update
5. cvs commit
You can now safely delete the files, or go back to step 3 and continue
developping. It is recommended that you do a cvs commit regularly, in
order to avoid conflicts between 2 people modifying the same code.
For those of you who don't like underscores, $, upper case: after step 1,
you can rename the directory names into anything else, and it will still
work.
Existing projects:
....
# Documentation
# =============
# External documents
#
RIPE_158 documentation/RIPE_158
RIPE_168 documentation/RIPE_168
RIPE_179 documentation/RIPE_179
RIPE_180 documentation/RIPE_180
RIPE_200 documentation/RIPE_200
RIPE_209 documentation/RIPE_209
#
# RIS
#
RIS_Website documentation/RIS_Website
#
# TTM
#
TTM_Local_Install documentation/Local_Install
TTM_NLUUG98 documentation/NLUUG98
TTM_SANE98 documentation/SANE98
TTM_Software_Design documentation/Software_Design
TTM_States documentation/States
TTM_Website documentation/TTM_Website
#
III_Website documentation/III_Website
....
* RIPE_XXX are the RIPE documents that we've published
* RIS_* are RIS documents.
* TTM_* are TTM documents that aren't a RIPE document yet.
* III_* is the stuff on the internal website
If you add a document, give it a name similar to this.
*_Website are the files on the various website EXCLUDING files that are
auto-generated by other programs. These documents have been checked out
on the webservers /ncc/WWW_SITE1/... and /ncc/docs/iii/... If you want
to modify things, you can do that there. Just do a "cvs update" and
"cvs commit" after you're done.
#
# Test box software
# =================
#
tb_source testbox/tb_source
Send_Receive testbox/tb_source/Send_Receive
delay_alarm testbox/tb_source/delay_alarm
tac testbox/tb_source/tac
tb_control_scripts testbox/tb_source/tb_control_scripts
tb_dotfiles testbox/tb_source/tb_dotfiles
tb_general_scripts testbox/tb_source/tb_general_scripts
tb_perl_modules testbox/tb_source/tb_perl_modules
#
tb_contrib testbox/tb_contrib
fbsd_221 testbox/tb_contrib/fbsb_221
fbsd_228 testbox/tb_contrib/fbsd_228
traceroute testbox/tb_contrib/traceroute
xntp testbox/tb_contrib/xntp
Software on the test-box. "tb_source" is written by us, "tb_contrib" by
others. fbsd_xxx are the kernel sources (we never had a reference copy of
that).
All this is pretty much under control. The messy part is:
#
# Control and Analysis
# ====================
#
merge_data analysis/merge_data
plot_delays analysis/plot_delays
routing_vector analysis/routing_vector
collect_data analysis/collect_data
tape_handling analysis/tape_handling
wwwpages analysis/wwwpages
maps analysis/maps
FillTree analysis/FillTree
libDelay analysis/libDelay
#
control control
poisson control/poisson
ncc_control_scripts control/ncc_control_scripts
config control/config
analysis and control code at the NCC. This still needs a bit of work :-)
Looking at /home/ttraffic:
~/bin
~/config/
~/config/bin The idea was to have all executables in ~/bin.
TBD: 1. Adjust Makefile accordingly
2. Add a tag "install" that copies the scripts to ~/bin
3. Copy files
The copy in ~/config/bin can still be there, but it
should become the backup/test version, with the
production version in ~/bin
~/contrib I like to import these into CVS as well BUT there are 4
CFE versions:
1. Fotis: which one do we actually use?
2. Are GMT, gifsicle, netcdf, etc being used.
~/maps, ~/wwwpages have been added to CVS.
~/tmp has been cleaned up.
Another mod I made was to patch the poisson process such that it puts
temporary stuff in $TTROOT/tmp and thus can be run from anywhere.