[Dev] Problems when external/ and/or internal/ out of sync with chandler/

Heikki Toivonen heikki at osafoundation.org
Mon Mar 6 14:53:38 PST 2006


Mike Taylor wrote:
> On Mar 6, 2006, at 4:47 PM, Heikki Toivonen wrote:
>> 3. Put each of the external and internal libs on a dev branch. By
>> default, the full build would only build trunk. If you passed in DEV=all
>> it would do the dev branches instead (or DEV=lib1,lib2, ... to limit
>> it). Tinderbox could do default build and all tests, including chandler,
>> first. Then do DEV=all build and do only make tests in external/ and
>> internal/. After the developers were happy with the dev branch they
>> could merge into the trunk and simultaneously update chandler/ dir. The
>> only way to update external and internal on trunk would be to merge from
>> a branch, so that the trunk and branch would not differ after a merge.
>> Just pulling from svn would only get root level external/ and internal/,
>> and make sources would then pull the appropriate branches for each of
>> the libs.
> 
> The change I would make is what we started to discuss on #chandler. 
> That there be a environment var that controls what libraries are pulled
> from the branch (heikki suggested something like DEV=m2crypto,zanshin
> which I like.)  This allows a dev to work on the lib they are interested

That's what I was saying (lib1,lib2, ...) so no change at all AFAIK.

Now thinking some more of this, it seems like the makefiles could
automate all or most of the branch wizardry. Let's look at this with an
example:

$ cd internal
$ make DEV=wx

This would pull wx from the dev branch using my current svn settings.
When I go and edit wx, I can use svn diff etc. to see what I have
changed etc. When I commit, it simply goes to the branch.

After I have committed to the dev branch, the full build tboxes
eventually pull those bits, compile them, run tests and upload them to
staging area. What's the wait time? In the best possible case probably
about 2 hours. In the worst, say there are changes both on trunk and dev
branch and you checked in just as the previous cycle started... about 7
hours or more (2h for trunk + 2h for branch + 50 mins tests only trunk
slowest platform + 2h for your branch changes).

When I have changed chandler/ in my tree and I am happy everything is
working, I am ready to get my changes onto the trunk. I first go to
http://builds.osafoundation.org/cgi-bin/tbhelp.cgi copy the binary
tarballs from staging to the real downloads area. Then:

$ cd wx
$ make merge2trunk

This will check that you don't have any uncommitted changes, and if so,
exit. Assuming you didn't, it will svn switch the wx dir to trunk, and
merge from the dev branch. Then:

$ cd ../..          # (i.e. chandler/..)
$ svn commit chandler internal/wx

-- 
  Heikki Toivonen


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 249 bytes
Desc: OpenPGP digital signature
Url : http://lists.osafoundation.org/pipermail/chandler-dev/attachments/20060306/686918de/signature.pgp


More information about the chandler-dev mailing list