Closed Bug 1211957 Opened 9 years ago Closed 9 years ago

mach build faster doesn't update resource:///modules/MigrationUtils.jsm

Categories

(Firefox Build System :: General, defect)

Unspecified
macOS
defect
Not set
normal

Tracking

(firefox44 fixed)

RESOLVED FIXED
mozilla44
Tracking Status
firefox44 --- fixed

People

(Reporter: Gijs, Assigned: glandium)

Details

Attachments

(2 files)

STR:

1. ./mach build
2. ./mach build faster
3. edit browser/components/migration/MigrationUtils.jsm
4. ./mach build faster
5. open resource:///modules/MigrationUtils.jsm in a tab

ER:
see updated version

AR:
see old version

Mike, any idea what's going on here?
Flags: needinfo?(mh+mozilla)
(in case it's relevant, this is on OS X 10.10, with hg 3.5.1)
Gijs: did you restart the browser?  I wonder if you're seeing caching.  When I was mucking with the Fennec bootstrapper, I had to basically disable the browser cache.
(In reply to Nick Alexander :nalexander from comment #2)
> Gijs: did you restart the browser?  I wonder if you're seeing caching.  When
> I was mucking with the Fennec bootstrapper, I had to basically disable the
> browser cache.

Yes, the browser was not running when I ran ./mach build faster.

It works if I run:

./mach build browser/modules browser/components/migration


maybe a jar.mn/manifest thing is being missed as part of the jar.mn/moz.build/makefile DAG linearization?
I've verified that ./mach build faster does not create the .purgecaches file, which e.g. ./mach build browser/modules does.
Although touching the file manually didn't fix this problem.

I'm on OSX and did:
mach build faster
touch ../ff-opt/dist/Nightly.app/Contents/Resources/browser/.purgecaches
mach run

on launch, that file gets deleted as expected, but MigrationUtils was still not updated
If you apply the following patch, what does `mach build -X faster/install-dist/bin/browser` output?

diff --git a/python/mozbuild/mozpack/files.py b/python/mozbuild/mozpack/files.py
index 7203918..ddb0742 100644
--- a/python/mozbuild/mozpack/files.py
+++ b/python/mozbuild/mozpack/files.py
@@ -457,24 +457,26 @@ class PreprocessedFile(BaseFile):
             # assume that the preprocessor needs to be rerun. That will
             # regenerate the dependency file.
             if self.depfile and not os.path.exists(self.depfile):
                 skip = False
             else:
                 skip = not BaseFile.any_newer(dest.path, pp_deps)
 
         if skip:
+            print('skipping %s' % dest.path)
             return False
 
         deps_out = None
         if self.depfile:
             deps_out = FileAvoidWrite(self.depfile)
         pp = Preprocessor(defines=self.defines, marker=self.marker)
         pp.setSilenceDirectiveWarnings(self.silence_missing_directive_warnings)
 
+        print('preprocessing %s' % dest.path)
         with open(self.path, 'rU') as input:
             pp.processFile(input=input, output=dest, depfile=deps_out)
 
         dest.close()
         if self.depfile:
             deps_out.close()
 
         return True
Flags: needinfo?(mh+mozilla)
Flags: needinfo?(gijskruitbosch+bugs)
Flags: needinfo?(felipc)
Updated the tree and got:

> $ mach build -X faster/install-dist/bin/browser
>  0:00.19 /usr/bin/make -C /Users/felipe/moz/mozilla-central/ff-opt -j8 -s backend.RecursiveMakeBackend
>  0:00.44 /usr/bin/make -C faster -j8 -s install-dist/bin/browser
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/components/BrowserComponents.> manifest
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/components/BrowserProfileMigrators.> manifest
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/components/ChromeProfileMigrator.js
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/components/FeedWriter.js
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/components/SafariProfileMigrator.js
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/components/browsermodules.manifest
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/components/fuelApplication.js
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/components/nsBrowserGlue.js
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/defaults/preferences/firefox-> branding.js
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/defaults/preferences/firefox.js
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/defaults/preferences/webide-prefs.> js
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/modules/CustomizableUI.jsm
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/modules/CustomizableWidgets.jsm
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/modules/CustomizeMode.jsm
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/modules/MigrationUtils.jsm
>  0:00.84 preprocessing /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser/modules/PanelWideWidgetTracker.jsm
>  0:00.84 From /Users/felipe/moz/mozilla-central/ff-opt/dist/bin/browser: Kept 321 existing; Added/updated 16; > Removed 0 files and 0 directories.
>  0:00.90 Your build was successful!

So MigrationUtils is there in the preprocessing, but it doesn't get picked up
Flags: needinfo?(felipc)
I did a `mach build faster` and then a `mach build browser/app` and the changes get picked up. So is it just a matter of faster not rebuilding the .app package on OSX?
Ah yes, that would be it.
Assignee: nobody → mh+mozilla
Attachment #8670561 - Flags: review?(gps)
OS: Unspecified → Mac OS X
Works for me with this patch
Flags: needinfo?(gijskruitbosch+bugs)
Comment on attachment 8670561 [details] [diff] [review]
Add the repackage step at the end of a faster build on Mac

Review of attachment 8670561 [details] [diff] [review]:
-----------------------------------------------------------------

I question the necessity of this build step now that we have install manifests. But that's for another bug.
Attachment #8670561 - Flags: review?(gps) → review+
https://hg.mozilla.org/mozilla-central/rev/993c6f004f39
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 44
Component: Build Config → General
Product: Firefox → Firefox Build System
Target Milestone: Firefox 44 → mozilla44
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: