< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index Next in Thread >

Re: [reSIProcate] major directory reorg


inline
On Jun 13, 2005, at 11:29 PM, Jay Hogg wrote:

I really didn't mean to cause this much upheaveal in the plan...

I also like Proposal 1 and keeping "applications" in seperate repositories will, I believe, keep some sanity in the library builds and distribution.

I have another question that I hope is not quite as loaded as the prior
group. Has consideration been given in the build and distribution layouts
for the handling of "headers that include headers"- DUM including Resip
and OS (now in resip?) specifically?

In my version of "ideal" when I am developing project X against Resip/DUM
I would like to point my includes to /usr/local/resip -OR- to
~/projects/resip/trunk/build
and have them build correctly. This works today because of the resip/os/dum
layout but how will it work now in autotools vs "installed"?  Think
about it in
terms of both the "applications/tools" that are built in the library
repository
and those on the outside.

-I ${top_srcdir}/build/resiprocate:${top_srcdir}/build/dum
works but are the includes going to be flattened out when installed or
put in nested directories?

So we're looking at taking this in steps, and at each step
there will still be an explicit mention of part of the project in any include path. That is, you will still do something like #include "resiprocate/SipStack.hxx"
and not #include "SipStack.hxx" if that's what you meant by flattening.

The first step will be to try reorganizing the major groups along the lines of Jason's proposal 1. Then inside a directory like dum, we are thinking of pushing things towards separated src and includes, with the includes split
between those that are meant for an application to use (what would get
installed) and those that are a part of the internal implementation.

While we seem to have some consensus around the general ideas (I'm sure
there are some other opinions that haven't had a chance to be expressed),
keep in mind that this branch/thread represents an _experiment_.
We might stop, reboot, and try something completely different before we are through.




What other dependencies are we going to run into with something like
ares being pulled in by headers vs cpp? Remember that you can't use any of the autotools flags in the headers because the application being DEVELOPED
may be autotools and the flags are set.

No kidding. This is something that's biting me a lot in other projects, and I'm
looking very closely at what we can do as we move forward to make it not
bite with this one. We're in better shape than most - we've had "distribute config.h" disease creep in in only two places, and I think those will be easy
to clean up.


I wish I had more time to provide possible solutions because I ran into
these
(and HAVE_CONFIG_H) in headers when I first started using resip/dum outside the resip directory structure in an autotools projects but you're moving
faster
than me at the moment on the reorg so I figured I had to get my comments in.

Well, we're going to pause now and divert our attention to improving the documentation for the project. We've got a big crowd meeting in Dallas for the next three days to hammer
on that.


Jay


Robert Sparks wrote:

After even _more_ discussion (I first participated in this today), the
thinking is to follow proposal 1 _except_ that we'll keep MSRP in its
own subversion repository.

We will continue to discuss whether it makes sense to put repro
in its own repository.

Keeping rutil inside the same repository as resiprocate and dum
makes sense. (Though we might _release_ it in a separate tarball).

I'm going to create a branch to start experimenting with this
reorganization in.

RjS

On Jun 12, 2005, at 3:29 PM, Fischl jason wrote:

After much discussion in Dallas, here is take 2 on reorg plan. The
previous proposal had an issue where revision numbers could not be
common across the different projects. Here are two proposals that
address this. Mostly this involves directory restructuring and
importing msrp into the same subversion module as the other projects.


Proposal 1:
main/build
       /autotools
       /contrib
       /resiprocate
       /resiprocate/doc
       /resiprocate/test
       /dum
       /dum/doc
       /dum/test
       /rutil
       /rutil/doc
       /rutil/test
       /repro
       /repro/doc
       /repro/test
       /msrp
       /msrp/doc
       /msrp/test
- this is relatively close to what we have now in that the source
files are in the first subdirectory. e.g. in main/resiprocate
- complaint is that the README file, doc and test directories are hard
to find amongst the source files
- eliminates the "sip" directory


Proposal 2:
main/build
       /autotools
       /contrib
       /resiprocate/src
       /resiprocate/doc
       /resiprocate/test
       /dum
       /dum/src
       /dum/doc
       /dum/test
       /rutil
       /rutil/src
       /rutil/doc
       /rutil/test
       /repro
       /repro/src
       /repro/doc
       /repro/test
       /msrp
       /msrp/src
       /msrp/doc
       /msrp/test
- also eliminates the sip subdirectory.
- requires third party applications to run make install to have access
to project header files

On 6/12/05, Jay Hogg <jay@xxxxxxxxxxxxxx> wrote:

Jason,

While I welcome the reorg because I think it makes more
sense I have a fundamental question. You specifically say
'different repositories' and is where my questions come
from:

- We now have to track commit versions across 5 repositories
to know what is current?

- Symlinks are easy when everything is in trunk and fully
compatible.  How is it going to be handled when RESIP
branches and what is required by DUM (and friends) is now a
branch in RESIP and "RESIP trunk" isn't compatible the DUM
trunk or REPRO trunk?

- Is this going to require that ALL new development work be
done in a branch and merged at one time so "trunk" is stable
through the entire lineage?  If I want to work with "DUM
unstable" I will checkout RESIP from the top-down then
checkout "dum unstable" someplace to work on it?

The reason I ask is where I work we've been migrating our
CVS and Vss repositories to SVN for about 6 months. We split
some things that "obviously needed to be split" and have had
some versioning hell between a couple packages and
supporting libraries. Part of it is communications and
knowing what is happening but it is also hard to syncronize
multiple groups with different objectives and deadlines.

Just some thoughts...

Jay

----- Original Message Follows -----
From: Fischl jason <jason.fischl@xxxxxxxxx>
To: resiprocate <resiprocate-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [reSIProcate] major directory reorg
Date: Sat, 11 Jun 2005 14:22:05 -0700

While in Dallas we've discussed a major reorg of the
directory structure for resip/dum/repro/msrp. Here's the
plan:

Current:

resip:
main/sip/resiprocate
            /resiprocate/os
            /resiprocate/dum
            /resiprocate/dum/doc
            /resiprocate/dum/test
            /resiprocate/test
            /resiprocate/doc
            /repro
            /contrib

msrp:
main/src
main/doc

Proposed
Each of resip, rutil, repro, dum, contrib will be a
different repository. Here's roughly what the intermodule
dependency is. We'll use symbolic links (in svn) to
satisfy the intermodule dependencies. If you check out
repro, it will check out the appropriate dependent modules
through the sym links.

                                           repro
                                              |

|---------------|--------------------------|
                    dum      contrib/db
contrib/pcre
                       |
                    resip
                       |
     ----------------------------------
     |                                |
  contrib/ares                 rutil

resip:
main/src/resiprocate
main/src/test
main/doc

rutil:  // resiprocate util
main/doc
main/src/rutil
main/src/test

repro:
main/doc
main/src/repro
main/src/test

dum:
main/doc
main/src/dum
main/src/test

contrib:
main/contrib
main/contrib/ares
main/contrib/db
main/contrib/pcre
main/contrib/dtls
main/contrib/getopt

Implications:
- break out common utilities into rutil as a separate
library.  - Eliminates the os subdirectory -> will require
mods to apps - Moves dum to its own module instead of
subdir of resiprocate -> will require mods to apps
- symlinks are only supported in subversion >= 1.1
_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxxxxxx

https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel
_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxxxxxx
https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel

_______________________________________________
resiprocate-devel mailing list
resiprocate-devel@xxxxxxxxxxxxxxxxxxx
https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel