perfsonar-dev - Re: [pS-dev] proposal of new directory structure in our SVN
Subject: perfsonar development work
List archive
- From: Loukik Kudarimoti <>
- To: Roman Lapacz <>
- Cc: "" <>, Maciej Glowiak <>
- Subject: Re: [pS-dev] proposal of new directory structure in our SVN
- Date: Thu, 17 May 2007 13:48:05 +0100
Hi guys,
I am trying to avoid commenting in-line because this email is getting quite long. Here is a summary of what I want to say. I think we should discuss specific points below, get an agreement and move on to the next point.
*1*
- All source code used commonly (or expected to be used commonly) across one or more services and/or clients will have to be grouped in perfsonar-base. These should be released as a jar file for import in per service development along with api documentation.
- Before adding new source code to perfsonar-base, the person(s) in-charge of perfsonar base maintenance will have to be contacted.
- This is a support related constraint. If any of the products are using shared code, we have to work on support for that shared code. If the shared code is all over the place (i.e. many locations other than a single perfsonar-base), its very difficult to work which development teams we are dependent upon. Its much easier if we have it as one product (i.e. perfsonar base)
(This is what was discussed in January 07 workshop)
*2*
I don't have a strong opinion about creating a trunk/services directory and having all services put in there. I am not in favor of it but don't oppose it either.
The important question however is...there will be clients which will act as services as well. Where will these fit?
*3*
Creating service family (MA, MP, etc) directories inside /trunk/service (or under trunk) will not scale.
- There will certainly be services which will act as both MA and MP or more (for example, MA and transformation). Where will these fit?
- I don't like this idea.
*4*
Service naming convention - we need one. We all agreed to using one in the last january workshop. It wasn't a strict naming convention but sufficient to get enough information made available by the developers in a name.
The development teams can still choose the names for their products but have to provide required information in the name.
(This was already agreed in the last workshop. To avoid re-discussing the same issue again, if anybody wants to change this decision, he/she should make it clear as to why this (re-)discussion is required. I haven't seen a strong reason for not following this naming convention)
*5* No commons or base inside each service or each service family. (related to *1*)
If developers want to make a code common, there has to be just one place - trunk/perfsonar-base (with appropriate package naming convention). Multiple places or having shared code all over the place have to be avoided.
From a product point of view, if a product is developed, released and supported, we have to know work out all the development teams involved to provide support to the product. Importing code from any service and depending on the development teams of the service to support that code makes it a very difficult situation - especially when we do not know which source code has been imported
*6*
Modified proposal based on the lines of comments above and January discussion is in attachment.
Roman Lapacz wrote:
Loukik Kudarimoti wrote:
Hi Roman,
Thanks for coming up with the proposal. My comments are below.
1) I see 'base' directory in the trunk and also as sub-directories in all other directories. Is this because the term 'base' has been overloaded?
If so, I suggest using the base term only in the trunk and coming up with a different term in all sub-directories to avoid confusion among developers.
If it is not the case of overloading but actually base being split into multiple places, see point (3) below.
Generally 'base' is the set of classes which are useful by other components (services or clients). I think we could have one general base which will be treated as a separate library (this would be a separate jar file) and the bases that would be useful only to a certain group of components (for example the base only for MA services or only for client apps). These specific bases would be included in the jar files of services. I don't think we have to use other term for those specific bases because package names are different.
2) Move directories for each service just under the trunk directory. (example: java-rrd-ma, j-cl-mp, etc --> /perfsonar/trunk/ )
All services (products) will follow the recommended naming convention which will help in identifying the type of service (MA, MP, etc). Hence, it should be ok to flatten out this hierarchy.
I see you point but on the other side grouping services might be more clear for especially new developers. Having bundle, clients, services, etc. on the same level might be less clear.
This will also make it easier to branch out and release products.
I don't think it would be difficult.
I wasn't sure to use indicators of programming language (j-*, pl-*, py-*) in service directory names so I removed them. They could be used if there are two services which have the same functionality but they are created in different languages (see 'py-cl-mp'). But I think this name should be up to a developer. Those service directory names are just proposals which could be changed.
I have attached updated proposals of snv directory structure.
Roman
------------------------------------------------------------------------
trunk/
|-- base
| |-- ant
| |-- contrib
| |-- doc
| |-- lib
| `-- src
| |-- main
| | `-- java
| | `-- org
| | `-- perfsonar
| | `-- base
| | |-- auxiliary
| | |-- container
| | |-- messages
| | `-- util
| `-- test
| `-- java
| `-- org
| `-- perfsonar
| `-- base
| |-- auxiliary
| |-- container
| |-- messages
| `-- util
|-- bundle
|-- client
| |-- axis-1.4
| | |-- ant
| | |-- doc
| | |-- lib
| | `-- src
| | |-- main
| | | `-- java
| | | `-- org
| | | `-- perfsonar
| | | `-- client
| | | `-- axis
| | `-- test
| | `-- java
| | `-- org
| | `-- perfsonar
| | `-- client
| | `-- axis
| |-- base
| | |-- ant
| | |-- doc
| | |-- lib
| | `-- src
| | |-- main
| | | `-- java
| | | `-- org
| | | `-- perfsonar
| | | `-- client
| | | `-- base
| | | |-- requests
| | | `-- xquery
| | `-- test
| | `-- java
| | `-- org
| | `-- perfsonar
| | `-- client
| | `-- base
| | |-- requests
| | `-- xquery
| `-- contrib
|-- contrib
|-- doc
`-- service
|-- as
|-- base
| |-- ant
| |-- doc
| |-- lib
| `-- src
| |-- main
| | `-- java
| | `-- org
| | `-- perfsonar
| | `-- service
| | `-- base
| | |-- authn
| | |-- engine
| | |-- exceptions
| | |-- registration
| | |-- storage
| | |-- transport
| | `-- util
| `-- test
| `-- java
| `-- org
| `-- perfsonar
| `-- service
| `-- base
| |-- authn
| |-- engine
| |-- exceptions
| |-- registration
| |-- storage
| |-- transport
| `-- util
|-- ls
| `-- xml-ls
|-- ma
| |-- base
| | |-- ant
| | |-- doc
| | |-- lib
| | `-- src
| | |-- main
| | | `-- java
| | | `-- org
| | | `-- perfsonar
| | | `-- service
| | | `-- measurementArchive
| | | |-- eventTypeConfig
| | | |-- messages
| | | |-- metadataConfig
| | | `-- register
| | `-- test
| | `-- java
| | `-- org
| | `-- perfsonar
| | `-- service
| | `-- measurementArchive
| | |-- eventTypeConfig
| | |-- messages
| | |-- metadataConfig
| | `-- register
| |-- contrib
| |-- g3-ma
| |-- hades-ma
| |-- rrd-ma
| | |-- ant
| | |-- conf
| | |-- contrib
| | |-- doc
| | |-- examples
| | | |-- requests
| | | `-- rrd
| | |-- func-test
| | |-- lib
| | `-- src
| | |-- main
| | | `-- java
| | | `-- org
| | | `-- perfsonar
| | | `-- service
| | | `-- measurementArchive
| | | `-- rrdType
| | `-- test
| | `-- java
| | `-- org
| | `-- perfsonar
| | `-- service
| | `-- measurementArchive
| | `-- rrdType
| `-- sql-ma
|-- mp
| |-- bwctl-owamp-mp
| |-- cl-mp
| |-- e2emon-mp
| |-- py-cl-mp
| |-- snmp-mp
| `-- telnet-ssh-mp
|-- tops
`-- trs
trunk/
|--perfsonar-base
| |-- ant
| |-- doc
| |-- contrib
| |-- lib
| `-- src
| |-- main
| | `-- java
| | `-- org
| | `-- perfsonar
| | `-- base
| | |-- auxiliary
| | |-- container
| | |-- messages
| | `-- util
| `-- test
| `-- java
| `-- org
| `-- perfsonar
| `-- base
| |-- auxiliary
| |-- container
| |-- messages
| `-- util
|--perfsonar-bundle
| |
| |-- src
| `-- doc
|
|
|--GEANT2_JAVA-RRD-MA
| |
| |-- ant
| |-- contrib
| |-- conf
| |-- doc
| | |
| | |--protocols
| | |--functional-spec.txt
| | |--interface-spec.txt
| | |--
| |
| |-- func-test
| |-- lib
| |-- src
| `-- test
|
|--GEANT2_JAVA-SQL-MA
| |
| |
|
|--GEANT2_JAVA-XML-LS
| |
| |
|
|--GEANT2_PERL-HADES-MA
| |
| |
|
|--RNP_CL-MP
| |
| |
|
|--GEANT2_perfSONAR-UI
|
|--RNP_ICE
|
|--GEANT2_DFN-CNM
|
|
|--perfsonar-doc
- proposal of new directory structure in our SVN, Roman Lapacz, 05/08/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Roman Lapacz, 05/08/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Loukik Kudarimoti, 05/14/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Roman Lapacz, 05/17/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Maciej Glowiak, 05/17/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Loukik Kudarimoti, 05/17/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Roman Lapacz, 05/17/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Szymon Trocha, 05/17/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Jeff W. Boote, 05/17/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Michael Bischoff, 05/17/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Loukik Kudarimoti, 05/18/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Roman Lapacz, 05/18/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Szymon Trocha, 05/17/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Roman Lapacz, 05/17/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Maciej Glowiak, 05/17/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Szymon Trocha, 05/17/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Szymon Trocha, 05/17/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Roman Lapacz, 05/17/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Loukik Kudarimoti, 05/14/2007
- Re: [pS-dev] proposal of new directory structure in our SVN, Roman Lapacz, 05/08/2007
Archive powered by MHonArc 2.6.16.