Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index



Following on to this, I suggest that it should not be hard to configure a Windows machine with 16G 
of RAM, and set aside
most of that memory as a RAM-drive. Then run the Windows build on the RAM-drive. That should speed 
things up.
I do that here for some of my builds, and it makes a massive difference.

In fact, I could probably get permission to host such a machine here at work, provided that the 
build slave does not
soak up too much network bandwidth (I'm in South Africa, bandwidth is expensive).

Regards, Noel Grandin

Noel Grandin wrote:
It seems like Windows builds in particular would benefit from either (a) tons and tons of RAM or 
(b) an SSD.
Who owns the hardware? Perhaps I (or the company I work for) can contribute to the cost of (a) or 
(b).

Regards, Noel Grandin

Norbert Thiebaud wrote:
2011/10/7 Marc-André Laverdière <marc-andre@atc.tcs.com>:
Wow, I really missed the 'big debate' :)
[...]
- I agree that an email to 200 people is not super interesting. I think
we should run git bisect to try building for every commit until we hit
one that breaks, or build on each commit.
On linux and Mac we build fast enough that this is not a problem.
the reason we get to 200 people, is that one commit break things, and
200 distinct people commit on top of that,
there is no way for a tinderboxes to decided who to send emails to.
you can't just send it to the original aithor because you can (and do)
get the seuqnce

A push commit 1 that break
B push commit 2 that break
A push fix to the commit 1 breakage

In that case how do you make a tinderbox realize that it should send
an email to B only ?

However, that is not so great
if we  have commits for which the thing is fixed in the next commit. I
am not expecting everyone to be comfortable with git rebase to the point
I am expecting them to be, that comes with the responsibility of being
a committer, and I do think that keeping the history bisectable is a
very good and important thing.

of merging commits all the time. But if we put such a policy in place,
it would help people learn very very fast :)
- Can we have some intermediary branch then? Or some 'proofed' branch?
That is call 'your local directory'

[snipped section essentially describing 'gerrit' workflow. we are
working on that... ]

- I don't think we can expect developers to run a build before each
push,
Yes we absolutely can expect that. it is actually a bare minimum !!!!!
pushing to the main repo is not a game of 'throw mud at the wall and
see what stick'

This would massively slow them down IMHO.
Well that would massively speed up everybody else.

We have a relatively high rate
of commits.
about 50 a day, and that is not 50 distinct push

the tinderboxes do 20 to 30 iteration a day
that is very close to an iteration per push.

It does happen from time to time that a commits comes in
just after you do your ./g pull -r ; make.
So ? the issue is very rarely a conflict. the issue is new code not building.
So if you successfully did a make before git pull -r, that cover 95%+
of the breakages

So you have to repeat the process, and that isn't so nice.
Breaking master is not nice for the others.. because now they can
really check that thei change are ok, sometime they can't even get
to compile their change at all because to build can't even get there,
so they have to bring locally master back to a 'older good point'
(which require _them_ to 'repeat the proces'


Now, if I have to build something a gazillion times slower before I can
push, will I _ever_ be able to push? I'm not asking rhetorically by the way.
Then don't push every 5 minutes.
you only need make clean; make after a pull.
so pull -r. make clean; make
now you have a tree you can wok in. (provided master has not been
broken... see how that brokenness is contagious ?)
code, make, fix, make, fix, make.. commit, git status (to veryfy that
you did not miss anything in the commit, if necessary:git commit
--amend)

Note that the 'make' above do not have to be global make... except for
a last one when you ar ready to pull -r, you can make the module you
changed (if it is a old-dmake module you need to build and deliver)

Then pull -r
if you have conflict resolve them and definitely make
if you have no conflict, eyeball the change that got in and make a
call about the likelihood of a 'silent' conflict.

At that point, if you want to be very safe: make clean/autogen/make
again... but if you don't an push, you still will be very unlikely to
have broken master.

Push ... AND keep an eye on the tinderboxes. usually within 20 minutes
you should have the result of a tinderbox run with your pushed change
in it (except windows so far).

http://tinderbox.libreoffice.org/MASTER/status.html

Norbert
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice



Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.