autobuild now building samba with cluster support! (Re: [SCM] Samba Shared Repository - branch master updated)

Michael Adam obnox at samba.org
Fri Jun 22 07:01:58 MDT 2012


simo wrote:
> On Fri, 2012-06-22 at 11:42 +0200, Michael Adam wrote: 
> > 
> > (2) In the long run I want to propose to move ctdb master into
> > the samba repo, so that samba and ctdb can easily be tested
> > togehter and both ctdb and samba commits can't get pushed
> > unless the clustered build and runtime tests survive.
> > The releases should of course stay independent, just as
> > tdb, talloc, tevent and friends are released independently.
> 
> Michael I am quite against adding even more stuff in the samba git tree.

I understand that some people (not only you) see it as
problematic to integrate more components in the samba git
tree. But I don't really understand, why.

Having samba, tdb, ldb, talloc, tevent, and then also ctdb
in one tree would have a couple of advantages:

* We can very easily test these components against each other.

* For the development it is very useful to have everything that
  is developed by us autonomously in one tree.

* It would in particular be made much easier to also turn ctdb
  to use common components (tdb, talloc, tevent...), hence
  reducing code duplication and duplicate maintenance efforts.

* The additional costs of maintaining separate trees for the
  projects is reduced. (We have discussed this for tdb and
  talloc in the past and the main reason to not split off a
  separate repo was, iirc, that nobody wanted to (or could) do
  the additional maintenance work.)

Looked at it the other way round, it would be much more
cumbersome to set up a test and develpment environment for the
current samba development.

Likewise, it _is_ pretty cumbersome to have development and
in particular test environment for clustered samba... And the
testing of ctdb proper is insufficient: ctdb itself has no
autobuild mechanism, and its own selftest does not test samba's
ctdb-client code (dbwrap_ctdb), but some other (incomplete)
client implementation in ctdb.


I would like to see it that way: Having several projects
in the samba.git repo that are developed in tight collaboration
with the samba development does not mean per se that these
projects are "a part of samba", if we look at it from the
software release point of view. But they have their own
release cycles independent of the samba releases. In that respect
I would like to see the samba.git repository more like a
common source control system and test integration platform for
multiple closely related individual projects.

> Let autobuild have a copy of the ctdb git tree and use it as a
> dependency for the build instead.

Err well: autobuild is a part of the samba git tree.
How should it have a copy? The autobuild script is universally
useful. You can run autobuild.py in any checkout anywhere!
I would like to keep it like that.

For what you sketch above, we would need to establish a separate
autobuild environment on our build server. This external
autobuild system would pull in samba and ctdb and set up builds
and test runs for these. The disadvantage I see is that it would
be yet another separate system to be maintained.
But it would certainly be possible.
We could then with this samba-ctdb-cross-build-and-runtime-test system
establish a mechanism that prevented pushes to ctdb master or samba
master if the cross tests fail. Also possible, but probably quite
some additional effort.

Cheers - Michael

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 206 bytes
Desc: not available
URL: <http://lists.samba.org/pipermail/samba-technical/attachments/20120622/45952cf1/attachment.pgp>


More information about the samba-technical mailing list