Closed
Bug 927672
Opened 11 years ago
Closed 11 years ago
Use mozmake for some windows builds
Categories
(Release Engineering :: General, defect)
Release Engineering
General
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: glandium, Assigned: glandium)
References
Details
(Keywords: feature)
Attachments
(2 files, 3 obsolete files)
1.17 KB,
patch
|
mshal
:
review+
|
Details | Diff | Splinter Review |
1.41 KB,
patch
|
gps
:
review+
|
Details | Diff | Splinter Review |
Once a new mozillabuild is deployed, we'll be able to switch off pymake to mozmake. This however will need to ride the trains, since it relies on build system changes.
Assignee | ||
Comment 1•11 years ago
|
||
I've done this more or less blindly, since i don't really know how this all works. The intent here is to add a tristate make_type holding either make, mozmake or pymake, allowing to switch between any of those. enable_pymake is kept for compatibility with what currently is in buildbot-configs, allowing for smoother updates.
Note, I'm not sure how we should handle try. Switching to mozmake really makes a world of difference on turnaround times, but pushing anything that doesn't have the patches required for that to work would fail (think, pushing aurora to try, or something like that)
Also note this is just preparative work, we're not going to switch to mozmake just yet. Heck, a new MozillaBuild with it hasn't even been built yet, let alone deployed.
Attachment #818158 -
Flags: review?(catlee)
Assignee | ||
Updated•11 years ago
|
Assignee: nobody → mh+mozilla
Status: NEW → ASSIGNED
Comment 2•11 years ago
|
||
Try can branch on whether the current tip is a descendant of the changeset that added mozmake support.
$ hg contains -c tip afae5911a1e0
http://mercurial.selenic.com/wiki/ContainsExtension
(We should do this for practically everything that diverges over time if possible.)
When enabled, this flag will cause windows binaries to be created using a new make process. RelEng wants to be sure there aren't any hidden issues with the changes, especially those not easily visible to developers (such as l10n repacks).
Setting the "feature" keyword to ensure visibility to QA
Keywords: feature
Comment 4•11 years ago
|
||
Comment on attachment 818158 [details] [diff] [review]
Add a tristate make_type value
Review of attachment 818158 [details] [diff] [review]:
-----------------------------------------------------------------
looks good to me. have you run this through checkconfig or dump masters yet?
note that we can't examine hg ancestry from within the build factory, so for try, we won't know which make to use.
try is generally considered to be a mozilla-central-like repo, so whenever we make changes to m-c and project branches, we also change try's configuration. this does make it hard if you want to push aurora/beta/other code to try. I don't think we should try and solve that problem in general here, but if there are some workarounds we can do for make, I'm open to ideas!
Attachment #818158 -
Flags: review?(catlee) → review+
Assignee | ||
Comment 5•11 years ago
|
||
(In reply to Chris AtLee [:catlee] from comment #4)
> looks good to me. have you run this through checkconfig or dump masters yet?
How do I do that?
Assignee | ||
Comment 6•11 years ago
|
||
So, I have another idea, which would avoid the try problem:
- Add an environment variable to the buildbot config. Say, PYMAKE_IS_MOZMAKE=1. On every branch, twig, try, etc. That's not going to affect anything that doesn't have what follows.
- Patch pymake's make.py to invoke mozmake.exe when PYMAKE_IS_MOZMAKE is set. Except for the environment variable part, that's what I'm using on birch to make it use mozmake.
[The reason for the environment variable thing is to keep pymake a normally working pymake when people invoke it manually.]
Thoughts?
Comment 7•11 years ago
|
||
Why do we need to patch pymake? Can't we add something to config.mk and have make reinvoke self if it's launched with a suboptimal make implementation?
Assignee | ||
Comment 8•11 years ago
|
||
(In reply to Gregory Szorc [:gps] from comment #7)
> Why do we need to patch pymake? Can't we add something to config.mk and have
> make reinvoke self if it's launched with a suboptimal make implementation?
That still leaves pymake as the middle man.
Assignee | ||
Comment 9•11 years ago
|
||
(In reply to Mike Hommey [:glandium] from comment #8)
> (In reply to Gregory Szorc [:gps] from comment #7)
> > Why do we need to patch pymake? Can't we add something to config.mk and have
> > make reinvoke self if it's launched with a suboptimal make implementation?
>
> That still leaves pymake as the middle man.
It's also hard to make that work for every invocation of make/pymake the buildbots do.
Assignee | ||
Comment 10•11 years ago
|
||
This more or less implements the idea from comment 6, except it relies on the existing TINDERBOX_OUTPUT variable instead of adding a new one. I know this is a hack, but it is also:
- easier to backout than a buildbot-side change
- way less tricky than trying to reexecute the right thing from config.mk
- lessens the risk of running mozmake for some commands and pymake for others in the same builds.
Attachment #8396166 -
Flags: review?(gps)
Assignee | ||
Updated•11 years ago
|
Attachment #818158 -
Attachment is obsolete: true
Comment 11•11 years ago
|
||
Comment on attachment 8396166 [details] [diff] [review]
Force pymake to fall back to mozmake when run on build slaves
Review of attachment 8396166 [details] [diff] [review]:
-----------------------------------------------------------------
I don't feel all cozy about hacking up make.py to do this. But it is the easiest solution and is progress.
::: build/pymake/make.py
@@ +11,5 @@
>
> import gc
>
> if __name__ == '__main__':
> + if 'TINDERBOX_OUTPUT' in os.environ:
Please add a comment here about what this code path is used for.
Attachment #8396166 -
Flags: review?(gps) → review+
Assignee | ||
Comment 12•11 years ago
|
||
Attachment #8398169 -
Flags: review?(gps)
Assignee | ||
Updated•11 years ago
|
Attachment #8396166 -
Attachment is obsolete: true
Comment 13•11 years ago
|
||
Comment on attachment 8398169 [details] [diff] [review]
Force pymake to fall back to mozmake when run on build slaves
Review of attachment 8398169 [details] [diff] [review]:
-----------------------------------------------------------------
r+++
Attachment #8398169 -
Flags: review?(gps) → review+
Assignee | ||
Comment 14•11 years ago
|
||
Attachment #8398172 -
Flags: review?(mshal)
Comment 15•11 years ago
|
||
Comment on attachment 8398172 [details] [diff] [review]
Get mozmake from tooltool
This looks fine. We still need to get mozmake.exe itself reviewed for tooltool, though I'm not sure how we would review an exe...
Attachment #8398172 -
Flags: review?(mshal) → review+
Assignee | ||
Comment 16•11 years ago
|
||
B2G and c-c don't have tooltool yet, so that still needs to be conditional :(
Attachment #8398210 -
Flags: review?(gps)
Assignee | ||
Updated•11 years ago
|
Attachment #8398169 -
Attachment is obsolete: true
Assignee | ||
Comment 17•11 years ago
|
||
(In reply to Michael Shal [:mshal] from comment #15)
> Comment on attachment 8398172 [details] [diff] [review]
> Get mozmake from tooltool
>
> This looks fine. We still need to get mozmake.exe itself reviewed for
> tooltool, though I'm not sure how we would review an exe...
That executable was built as per bug 944649, so in practice, we can consider it reviewed.
Updated•11 years ago
|
Attachment #8398210 -
Flags: review?(gps) → review+
Assignee | ||
Comment 18•11 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/b8e21f2401a8
https://hg.mozilla.org/mozilla-central/rev/e3d67b56a9e8
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Comment 20•11 years ago
|
||
I attempted to land this on comm-central, but it didn't go so well.
https://tbpl.mozilla.org/php/getParsedLog.php?id=37325971&tree=Thunderbird-Trunk
What needs to be done in addition to adding the tooltool manifests?
Comment 21•11 years ago
|
||
Oh, that's right, tooltool is explicitly disabled there. Wonderful. So if and when we land pymake-breaking patches on m-c, we're going to break c-c?
Assignee | ||
Comment 22•11 years ago
|
||
The first thing that needs happening on cc is ccrework. Without that, cc can't build with anything but pymake. We can, however, start removing pymake support from mach.
You need to log in
before you can comment on or make changes to this bug.
Description
•