[rt-devel] hacking on rt.
Joshua Johnson
joshua.johnson at ftlsys.com
Fri Feb 8 15:01:33 EST 2002
I have worked on and off with aegis for about 2 years now. I have been a
careful watcher of the mailing list for 1.5 yrs.
I am in the process of moving a substantial project onto it. 3/4M LOC. 16
builds on 5 architectures etc. etc.
I will say it takes an investment, but it can be well worth it depending on
your goals.
I'm not sure exactly what your problems are with the remote development
issues but there seem to be a lot of people making it work with aegis.
aedist seems to be what most people use
So, under one possible scenario you (Jesse) would set up an aegis project,
release some version of RT 2.0.X and place for public download: the tar
installer as well as the .ae (aedist file from "aedist -send -baseline") of
your COMPLETE repository. If someone has a change they can grab your
baseline aedistfile (and any external dependencies perl, etc) and set up an
aegis build environment of their own. Then they (the contributor) can
start a new change (or branch) and modify the code as they see fit. Go
through some amount of process..(testing ;-)..and eventually end the change
(or branch). They (the contributor) can then wrap up that change, JUST the
change(or branch), and send that back to you via "aedist -send -p xxxx" .
Then you (Jesse) can do an "aedist -receive" that will create a new change
for you (number will be different than the change number of originator)
that you can look over and then choose to integrate into your "golden"
baseline.
After making all of your internal changes and possibly accepting external
changes (via "aedist -receive") you can then end the branch that
corresponds to the next release, and release the new version of RT (2.0.Y).
It's tar installer, .ae of the entire project ("aedist -send -baseline")
and a .ae of the differences since the last version of RT("aedist -send -p
xxxxxx") can then be posted for everyone to consume.
Hot fixes can be done in the same way, just aedist the change that includes
the hotfix.
Anyway this is just a re-iteration of what is already in the Users Guide
(Section 11) Geographically distributed development.
One advantage to aegis's change "package" is that you do not need to be
connected to the repository to obtain updates. I.E. company X keeps a copy
of a source repository behind a firewall, doing a CVSUP is impossible (so
say-Eth the Sys-Admin anyway ;). With the "package" files, the person
running the main repository can just E-Mail,HTTP download,FTP
download,Sneaker-Net the .ae files to the client. Basically, however you
could send a patchfile you can send a "smarter" patchfile, the aedist file.
I don't know of a really strong reason that anyone would need to have
direct access to the repository. The only two I can think of right now is
if you want someone outside of BPS (Best Prac...) to be an "integrator", or
be able to create change requests. I am making a HUGE assumption that you
(Jesse) or a BPS employee would be doing ALL of the go/no-go integration
decisions. As well as deciding what reported bugs get assigned to aegis
change requests.
Otherwise, let everyone maintain their own aegis project that mirrors yours
through the use of the .ae (baseline) and .ae (updates), this is similar to
doing a CVS get and CVSUP. You can keep everyone on the bleeding edge by
sending a .ae for each change that you complete, heck send that to the
rt-devel list instead of/along with patchfiles. Others that are
contributing can do the same (post .ae's to the list) and everyone can
choose to stay on edge or "pick and choose", whatever.
This is a bit different paradigm than CVS and patchfiles, but I don't think
its all that much different/worse.
Aegis seems a bit to wrangle with at first, the price you pay for all of
it's checks-and -balances I guess, and it is primarily UNIX, don't know how
this affects the community. But it can do a lot to help enforce "rules" of
development and can do even more to keep from shooting yourself in the foot
(figure of speech) if you set it up to do so. Let me also mention you can
configure it to be as "loose" as you want as well. For instance I have
personal projects where I play all of the aegis roles and do none of the
testing etc. but I get all of the metrics collection, reports, etc. etc.
There has been lots of traffic about aegis and distributed devel. Many,
many different ideas, I think Peter mentioned he had an idea about making
aegis look like a CVS server so people could get the code with a CVS
client, but I don't know if any work is being done or will be done. But I
think with the kind of quality people there are in the aegis community
something will come about.
There is also lots of work being/been done with making aegis work in
co-operation with CVS.
If CVS just isn't cutting it, but you want a solution that is similar. I
think the next best answer is Perforce http://www.perforce.com. It at
least groups many of the logical things together that CVS doesn't. But
there again, at some point you'll need to connect to a repository directly.
Sorry this is so long.
Anyway, these are just my rambling thoughts.
Others may have much more elegant solutions.
I hope it helps answer a question or two or, more importantly, spurs a
question or two.
Jesse, thanks again for RT.
Joshua Johnson
--On Friday, February 08, 2002 12:20:48 PM -0500 Jesse Vincent
<jesse at bestpractical.com> wrote:
>
> On Fri, Feb 08, 2002 at 11:02:02AM +0200, Fabian Ritzmann wrote:
>> Two open-source systems you might want to consider:
>>
>> Aegis: http://aegis.sourceforge.net/
>> - Mature, complete configuration management system. Unix only, but WWW
>> interface.
>
> *nod* I actually spent a bit of time with aegis a while ago and decided
> that its manual was too obtuse and it was too process-bound. The fact
> that it doesn't have a way of allowing remote developers to interact with
> a repository without local shell access also bothered me. But over the
> past day or two, I've been re-familiarizing myself with the package and
> think I see ways around most of my major issues with a little bit of
> scripting.
>
>>
>> Subversion: http://subversion.tigris.org/
>> - Very interesting architecture, but still pre-alpha.
>
> A friend of mine hacks on subversion. It looks very interesting, but still
> isn't quite ready for primetime and it doesn't have one of the two
> features that I really really want: the ability to do distributed
> repositories cleanly, so I can work on a branch on my laptop (without
> net) , checking in every time I hit a micro-milestone and then merge up
> to the "main" repository when I finish.
>
>
> I'm currently leaning toward spending a couple days playing with an aegis
> repository and the RT 2.1 codebase. The basic plan would be to leave the
> 2.0 branch in CVS, but to do new development in the new VCS. Has anyone
> here worked with aegis?
>
> -j
>
> --
> http://www.bestpractical.com/products/rt -- Trouble Ticketing. Free.
>
> _______________________________________________
> rt-devel mailing list
> rt-devel at lists.fsck.com
> http://lists.fsck.com/mailman/listinfo/rt-devel
More information about the Rt-devel
mailing list