cluster-devel.redhat.com archive mirror
 help / color / mirror / Atom feed
From: Christine Caulfield <ccaulfie@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [RFC] Splitting cluster.git into separate	projects/trees
Date: Fri, 14 Nov 2008 09:33:48 +0000	[thread overview]
Message-ID: <491D45FC.4090909@redhat.com> (raw)
In-Reply-To: <1226654293.4022.56.camel@daitarn-fedora.int.fabbione.net>

Fabio M. Di Nitto wrote:
> Hi everybody,
> 
> as discussed and agreed at the Cluster Summit we need to split our tree
> to make life easier in the long run (etc. etc.).
> 
> We need to decide how we want to do it and there are different
> approaches to that. I was able to think of 3. There might be more and I
> might not have taken everything into consideration so comments and ideas
> are welcome.
> 
> At this point we haven't really settled how many (sub) project will be
> created out of this split. This will come once we agree how to split.
> 
> = first approach =
> 
> We maintain cluster.git as single entity with all source code in one
> place. We change the build system in such a way each single component
> can be released standalone (similar to how it was done in the RHEL*
> branches).
> 
> Pro:
>  - preserve current development model.
>  - allow release of separate tarball for each (sub) project.
>  - external users don't need to build the whole tree for one (sub)
> project.
> 
> Cons:
>  - move all the burden to the build system (by duplicating tons of
> stuff, maybe solvable but needs investigation) and release manager.
>  - tagging for releases will require changes as it's not possible to tag
> only one (sub) project.
> 
> = second approach =
> 
> We maintain cluster.git as single entity. Each (sub) project would
> become a separate branch.
> 
> So for example all the gnbd code will be branched into master-gnbd (and
> so on for all the others).
> 
> Checking out one specific HEAD will only show the code for that project.
> 
> Pro:
>  - cleaner look at the tree.
>  - partially preserve current development model (still easy to cherry
> pick changes between branches)
>  - external users don't need to build the whole tree.
> 
> Cons:
>  - more expensive branch management.
>  - tagging for releases will require small changes.
> 
> = third approach =
> 
> We copy cluster.git N times for each (sub) project, clean the master
> branch to match only that (sub)project.
> 
> Pro:
>  - very clean tree from checkout
>  - each (sub) project is really separated and will have its own
> identity.
>  - external users don't need to build the whole tree.
>  - easier to fine tune access to each single component (for example we
> can allow user foo to access dlm but not gfs... or whatever combination)
> 
> Cons:
>  - more complex process to perform cherry-pick between branches.
>  - higher risk to commit fixes in one branch and forget in another.
>  - requires a lot more developer attention.


I think I would votes for 3, 1, 2 in that order.

3 is definitely the best option IMHO. The cons don't make much
difference really - as I understand it, we're not splitting branches but
projects so there will be no, or very little, need to copy fixes across
git trees. Even for the few occasions when it might be necessary, git is
quite capable of generating usable patches.

2 is an inholy mess and an abuse of git's branching system I think.
Please don't do this!

1 is more trouble than it sounds - speaking from experience with the old
RHEL4 tree. You have a tree that looks like it's self-contained, but you
still have to install bits of it to make things build properly. That's
just confusing and annoying.

Chrissie



  parent reply	other threads:[~2008-11-14  9:33 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-14  9:18 [Cluster-devel] [RFC] Splitting cluster.git into separate projects/trees Fabio M. Di Nitto
2008-11-14  9:29 ` Steven Whitehouse
2008-11-14  9:33 ` Christine Caulfield [this message]
2008-11-17 23:36   ` [Pacemaker] " Mark Fasheh
     [not found] ` <26ef5e70811140150l7e789e8blc9df3de904a20a3c@mail.gmail.com>
2008-11-14 10:06   ` [Cluster-devel] Re: [Pacemaker] " Fabio M. Di Nitto
     [not found]     ` <26ef5e70811140333v480b8c05v1e448b525c48279f@mail.gmail.com>
     [not found]       ` <Pine.LNX.4.64.0811141304030.7841@trider-g7>
     [not found]         ` <26ef5e70811140418s32d38a22ta7b9693c2df13f08@mail.gmail.com>
2008-11-14 12:40           ` Fabio M. Di Nitto
2008-11-14 17:25 ` [Cluster-devel] " David Teigland
2008-11-14 17:37   ` Joel Becker
     [not found]     ` <26ef5e70811141311u54f5c2d6j873e5fd3977336ea@mail.gmail.com>
2008-11-14 21:57       ` [Ocfs2-devel] " David Teigland
2008-11-14 22:33         ` Subhendu Ghosh
2008-11-17  5:52         ` Fabio M. Di Nitto
     [not found]           ` <26ef5e70811170052j11c6ee94od6a5588288c13a0b@mail.gmail.com>
2008-11-17 10:02             ` Fabio M. Di Nitto
     [not found]               ` <26ef5e70811170225m203fda49ubba54857c8c8cffd@mail.gmail.com>
2008-11-17 10:37                 ` Fabio M. Di Nitto
2008-11-17  5:46       ` Fabio M. Di Nitto
2008-11-17  5:45   ` Fabio M. Di Nitto

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=491D45FC.4090909@redhat.com \
    --to=ccaulfie@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).