Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Automatic tree clobbering is coming

20 views
Skip to first unread message

Gregory Szorc

unread,
Mar 29, 2013, 1:29:41 PM3/29/13
to dev-pl...@lists.mozilla.org, dev-pl...@lists.mozilla.org, dev-b...@lists.mozilla.org
The CLOBBER file landed a few months ago to help us detect and prevent
known build bustage. Since then, a lot of people (myself included) have
pushed to trees not knowing they needed to force a clobber first,
causing burnage. Others have been frustrated that |hg pull -u && mach
build| followed by a coffee break didn't always result in a complete build.

Well, that's about to change. In bug 837323 we are changing the default
build system behavior to auto clobber. If CLOBBER has been updated, the
tree will automatically clobber (the object directory will be completely
deleted) unless 1 of the following is true:

* Your mozconfig contains |mk_add_options NO_AUTOCLOBBER=1| or your
environment contains NO_AUTOCLOBBER.
* The current working directory is under the topobjdir (e.g.
objdir/browser). cwd == topobjdir will still clobber.
* You invoke make or pymake directly from the objdir (you don't use mach
or client.mk to build).

If clobber is required and isn't automatically performed or encounters
an error, you'll see a large message indicating what's going on and what
you'll need to do to fix the issue.

If you notice any problems, please report them immediately via bugs
(Core :: Build Config) and/or IRC pings (#build is preferred).

Expect the change to land on inbound by the end of the day.

Gregory

Paddlefoot

unread,
Mar 29, 2013, 1:56:36 PM3/29/13
to
Gregory Szorc wrote:
> The CLOBBER file landed a few months ago to help us detect and prevent
> known build bustage. Since then, a lot of people (myself included) have
> pushed to trees not knowing they needed to force a clobber first,
> causing burnage. Others have been frustrated that |hg pull -u && mach
> build| followed by a coffee break didn't always result in a complete build.

Thank you. The above situation has become an unwelcome routine here.
I've rewritten my build script to automatically rm -rf comm-central/ and
suite_objdir/ and start with an hg clone. Requires more time than a
coffee break ;-)

> Well, that's about to change. In bug 837323 we are changing the default
> build system behavior to auto clobber. If CLOBBER has been updated, the
> tree will automatically clobber (the object directory will be completely
> deleted) unless 1 of the following is true:
>
> * Your mozconfig contains |mk_add_options NO_AUTOCLOBBER=1| or your
> environment contains NO_AUTOCLOBBER.
> * The current working directory is under the topobjdir (e.g.
> objdir/browser). cwd == topobjdir will still clobber.
> * You invoke make or pymake directly from the objdir (you don't use mach
> or client.mk to build).
>
> If clobber is required and isn't automatically performed or encounters
> an error, you'll see a large message indicating what's going on and what
> you'll need to do to fix the issue.
>
> If you notice any problems, please report them immediately via bugs
> (Core :: Build Config) and/or IRC pings (#build is preferred).
>
> Expect the change to land on inbound by the end of the day.
>
> Gregory
>


--
Carbon: Father of the elements.

Gregory Szorc

unread,
Mar 29, 2013, 2:47:22 PM3/29/13
to Emanuel Hoogeveen, dev-b...@lists.mozilla.org, dev-pl...@lists.mozilla.org, dev-pl...@lists.mozilla.org
On 3/29/2013 11:29 AM, Emanuel Hoogeveen wrote:
> How are things looking with regards to using hg purge (bug 851270)?
>

As far as I'm concerned, that's in RelEng's court. I hope they solve it
soon because not using hg purge is adding huge delays (15+ minutes for
some Windows builds) for all clobber builds (all try builds are clobber
builds). This is a massive build machine capacity win waiting to be
realized.

Brian Teh

unread,
Mar 30, 2013, 2:51:07 AM3/30/13
to dev-b...@lists.mozilla.org
Hi Gregory,

Currently, if I build the Thunderbird using comm-central codebases in
Windows (MozillaBuild), and after I update the source code tree using

python client.py checkout

and I do a incremental build using pymake (to re-build files that have
been added / removed since last build), can it still be supported? Or I
will have to remove the OBJDIR entirely and perform a clean build? I
have noticed this problem that requires me to perform clobbering of
OBJDIR for quite sometime. Kindly advise.

Regards,
Brian Teh, Singapore

Gregory Szorc

unread,
Apr 3, 2013, 12:52:46 PM4/3/13
to Brian Teh, dev-b...@lists.mozilla.org
comm-central will need to port the auto clobber logic from m-c's
client.mk for auto clobbering to work. Until this is ported, when m-c
top Makefile is invoked, it will error out if a clobber is needed. At
least that's how I think it will work: I haven't actually tested it!

0 new messages