[SR-Dev] Kamailio-3.0 git repository

Daniel-Constantin Mierla miconda at gmail.com
Tue Mar 10 14:36:11 CET 2009


Hello,

just to let everybody know I posted Jan's email in the wiki (for easier 
referencing):
http://sip-router.org/wiki/devel/kamailio-3.0

If you have additions/corrections in the future, please add there. Your 
work is a good starting pont for those willing to help with testing. I 
am going to send another email about this subject.

Another new page is  trying to track where parts of kamailio code are 
moved in SIP-Router:
http://sip-router.org/wiki/devel/kamailio-integration

Other developers doing work with integration are kindly invited to add 
to these pages.

Thanks,
Daniel

On 03/09/2009 03:14 PM, Jan Janak wrote:
> Folks,
>
> As some of you know I have been trying to make kamailio modules
> compile with the sip-router core. I wrote several scripts to perform
> bulk updates of the source code and commit the changes. That includes
> database related changes for libsrdb1, changes of headers that are not
> present in the core anymore, and so on.
>
> I keep my changes in a git repository which I just published on
> git.sip-router.org. You can browse the repository here:
>
> http://git.sip-router.org/cgi-bin/gitweb.cgi?p=kamailio-3.0/.git;a=summary
>
> And you can clone it using:
>
> git clone git://git.sip-router.org/kamailio-3.0
>
> I'd like to point out that this is a temporary repository only, it
> helps me with my merging work, it allows me to keep my patches up to
> date on top of moving sip-router core and kamailio modules (using a
> set of scripts that I didn't publish), but it is not how it should be
> organized in the future.
>
> The repository is fairly big, it contains 91 branches, and is
> organized as follows:
>
>  * Branch 'sr' contains the contents of the sip-router/master branch
>    from the main sip-router repository, possibly with some local
>    changes not yet published on the sip-router/master branch. I pull
>    into this branch from the main branch. I also use this branch to do
>    compatibility changes in the sip-router core and those changes are
>    then pushed into sip-router/master when done.
>
>  * Branch 'kcore' contains the contents of sip-router/janakj/kcore
>    branch, I use this branch to do changes in the libkcore stuff. Local
>    changes from this branch are then pushed into
>    sip-router/janakj/kcore
>
>  * Branch 'km_module' contains kamailio modules from kamailio svn
>    trunk, but with the core, tm module and some database drivers
>    removed. I keep this branch synchronized with the git import of
>    kamailio trunk and on top of that there are a few commits that
>    remove everything which would conflict with the sip-router
>    core. This branch must have no local changes except for the commits
>    that remove conflicting files.
>
>  * Branch 'km_sr' contains all three previous branches merged, that is
>    sip-router core + libkcore + kamailio modules. This brach serves as
>    the basis for other per-module branches, module branches base their
>    changes on top of km_sr. 
>
>  * A bunch of module branches, there is one branch per kamailio module
>    that needs to be update, the name of the branch is always the name of
>    the module. You can get full list here:
>
>    http://git.sip-router.org/cgi-bin/gitweb.cgi?p=kamailio-3.0/.git;a=heads
>
>    One thing that is special about module branches is that they use
>    git-rebase to keep local changes on top of all other changes coming
>    from the branch km_sr. In other words, what happens when you merge
>    km_sr into a module branch is this:
>    - All local changes are undone and saved into a temporary area
>    - Changes from km_sr are applied to the branch
>    - Changes from the temporary area are applied back on top of the
>      updated branch
>
>    This keeps local changes in module branches on top of all other
>    changes that might have propagated from the sip-router repository
>    or kamailio svn repository. In the end we will be using the
>    repository to generate a set of patches that will be applied either
>    to the code in the svn repository or in another git repository so I
>    think this is the way to go.
>
> Here is a diagram showing how changes propagate into individual branches:
>
> svn ---> git:km/trunk --(D)----> km_modules -+
> cvs ---> git:sr/master --(L)---> sr ---------+-(O)-> km_sr ---+--(R)-> acc
>          sr/janakj/kcore -(L)--> kcore ------+                +--(R)-> auth
>                                                               +--(R)--> ...
>
> (D) is where the kamailio core and conflicting modules get removed,
> (L) indicates possible local changes to the sip-router core or
> likcore, (O) denotes the place where git octopus merge happends, and
> finally (R) marks places where git-rebase is used instead of the
> default git merge.
>
> Because the process of updating the repository is quite complex, and,
> frankly, brittle, I'd like to ask you that you do not push into this
> repository although it is allowed for anyone who has write access on
> git.sip-router.org. Instead do all the changes that you would like to
> have applied in your local clone and then send patches to the mailing
> list, I will apply them to my master copy and then republish.
>
> This is how my typical workflow looks like:
>
>   Today I want to work on the presence module, so I checkout the
>   presence branch:
>
>   $ git co presence
>
>   I investigate why the module does not compile, do some changes and
>   commit them into the branch. In this step I try hard to make sure
>   that the commits are logically split, because it makes reviewing the
>   changes much easier. A reviewer can typically just decide whether
>   the patch should be applied or thrown away as a whole.
>
>   In the previous step I realized that I might need to do some changes
>   in the sip-router core to make the module work, so I check out the
>   'sr' branch:
>
>   $ git co sr
>
>   and do the changes there. After that I need to propagate the changes
>   I did to the sr core into the presence branch, I do this in two
>   steps, first I pull the changes into the km_sr branch:
>   
>   $ git co km_sr
>   $ git pull
>
>   And secondly I pull the sip-router core change into 'presence' branch:
>
>   $ git co presence
>   $ got pull
>
>   After the last step you will see the rebase taking place. There
>   should be no conflicts because I never modify anything that belongs
>   to the sip-router core or libkcore on the per-module branch. I
>   always use 'sr' and 'kcore' branches for that.
>
> That's it, I should also note that I have a bunch of scripts that help
> me to keep the whole repository up-to-date, so I'd typically just run
> something like km_pull.sh and that updates all branches, also pulling
> changes from svn and cvs in the process. The scripts are currently not
> ready to be published, they are brittle and would most likely work in
> my environment only. But I do offer the service of keeping the
> kamailo-3.0 repository up-to-date, so you can just mirror that one and
> you wouldn't need the scripts.
>
> I'll send a separate email describing the current state of kamailio
> modules.
>
>   Jan.
>
> _______________________________________________
> sr-dev mailing list
> sr-dev at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>
>   

-- 
Daniel-Constantin Mierla
http://www.asipto.com




More information about the sr-dev mailing list