Gentoo Archives: gentoo-soc

From: Fabian Groffen <grobian@g.o>
To: gentoo-soc@l.g.o
Subject: Re: [gentoo-soc] Configuration managment system
Date: Thu, 26 Mar 2009 15:21:11
Message-Id: 20090326152104.GJ15265@gentoo.org
In Reply to: Re: [gentoo-soc] Configuration managment system by Jonas Bernoulli
1 On 26-03-2009 16:01:52 +0100, Jonas Bernoulli wrote:
2 > >> this may be true of you, but it's also likely to introduce unneeded
3 > >> complexity into the program depending on exactly how it's set up.
4 > >> actually I think it'd be best if it were mostly transparent to the
5 > >> user, like cfg-update.
6 > >
7 > > then you loose the entire asset of this proposal, I think ;)
8 >
9 > These plumbing commands can be used to implement alternative
10 > porceclain, which has happened in the past. This is also what I would
11 > do with confsink. This is not exclusive however - one can still use
12 > the git porceclain to operate on the configuration files maintained by
13 > confsink. Or one can use the plumbing commands where necessary.
14 >
15 > So most people would not have to use git (plumbing and/or porceclain)
16 > directly they just use an extended emerge which will take care of
17 > automating things that can be automated and the confsink command-line
18 > utilities (cfs) to commit changes.
19
20 Your original approach (or as I recall it) mentioned the benefit of
21 people already being accustomed to $VCS. If you hide away the $VCS bits
22 again, you lose this valuable point.
23
24 One could wonder why one would need a version history for config files
25 at all in this case, and if not we better revive/finish libconf[1].
26
27 > Next step would be to get used to 'merge', 'branch', 'checkout',
28 > 'commit' (deliberatly leaving 'add' out :-). These might have
29 > different names in different vcs but it's hardly to much to ask to
30 > learn another name for a command. Also git can be customized to define
31 > aliases for it's commands. So confsink could be distributed with some
32 > sets of commands whose names are specially tailored the the names
33 > these command have in the prevered vcs.
34
35 Basically, it seems to me you just make it hard for yourself, and for a
36 user. If I am used to say git, why not provide me with all of git's
37 magic so I can do whatever voodoo to my config files like I want, when I
38 have to "merge updates"? Adding your layer might be nicer from a tool
39 perspective, but it doesn't add anything, IMO. Leaving the merging up
40 to what $USER is used to, also better integrates with me wanting to use
41 $VCS for the entire stuff. Eventually you'll just end up creating a
42 etc-update backend that instead of (re)moving files, just commits them.
43
44 > >> > I for one can much easier mess around with CVS and SVN,
45 > >> > then with bzr, git, hg, etc.
46 >
47 > Coming back to this. While I agree that it might be desirable to
48 > support alternative distributed vcs as backend I think that:
49 >
50 > 1. Only git is truely suitable for the task.
51
52 Depends how you look at it :)
53
54 > 2. Non-distributed vc is absolutely not suited. Especially when it
55 > comes to sharing configuration between users.
56
57 Well, ehm... a PORTAGE_BINHOST is a master/slave thinghy, if not sole
58 master. SYNC, idem. What's wrong with a nice central VCS storage where
59 the administrator makes changes which are then rolled out to the entire
60 cluster? I would even prefer the hosts not to be able to make any
61 changes because that is a maintenance nightmare.
62 I can imagine cases where you would like to have that though, but just
63 to illustrate that distributed vc is not heaven or something.
64
65 > 3. Supporting multiple backends adds unnecessary complexity...
66
67 Yeah, but what if git becomes out of fashion (which it seems to be at
68 the moment)? Rewrite the entire thing, or get stuck with it? Also,
69 consider who would benefit the most from something like this, probably
70 the more advanced user who is familiar with some $VCS.
71
72 > 4. ... and would limit confsink to the least common denominator of the
73 > various backends.
74
75 Depends how you interface it. I'd say, don't! Just define how the
76 updates are pushed and where you can merge diffs in from.
77
78 > 5. git porceclain has improved a lot, it is not hard to learn, and you
79 > should learn it (and or other dvcs).
80
81 This is not about me messing around with $VCS, I think.
82
83
84 [1] http://savannah.nongnu.org/projects/libconf/
85
86
87 --
88 Fabian Groffen
89 Gentoo on a different level

Replies

Subject Author
Re: [gentoo-soc] Configuration managment system Fabian Groffen <grobian@g.o>