New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 625578 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Jul 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: iOS , Mac
Pri: 3
Type: Bug



Sign in to add a comment

GN: copy_bundle_data should not care about converting .strings files

Project Member Reported by sdefresne@chromium.org, Jul 4 2016

Issue description

Instead the conversion should be done before declaring the bundle_data target referencing the .strings file (this will make the copy_bundle_data target faster as it will remove an extra test).
 
Project Member

Comment 1 by bugdroid1@chromium.org, Jul 4 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2e4013a84448cf8e714034e3d9d49d11cdf03227

commit 2e4013a84448cf8e714034e3d9d49d11cdf03227
Author: sdefresne <sdefresne@chromium.org>
Date: Mon Jul 04 14:15:39 2016

Generate localizable strings in binary1 property list format.

Instead of converting the generated files from the old legacy format
to binary1 property list format when creating the application bundle,
directly generate them in the correct format.

BUG= 625578 

Review-Url: https://codereview.chromium.org/2121773002
Cr-Commit-Position: refs/heads/master@{#403679}

[modify] https://crrev.com/2e4013a84448cf8e714034e3d9d49d11cdf03227/ios/chrome/tools/strings/generate_localizable_strings.mm

Cc: brettw@chromium.org
So, I've taken a look at converting the .strings file to binary1 format before packing them into the application bundle. The problem is that there are 832 such file in the final bundle and the only way to convert them is to use "convert_plist" template.

This boils down to an action target that invokes "//build/config/mac/xcrun.py plutil -convert binary1 $in $out". Since the majority of those files are in the repository (and not generated), they have no dependencies, and ninja tries to run all targets at the same time when using a large number of jobs (e.g when building with "ninja -j 1000" when using goma). And we are back to the IO contention that I fixed by introducing "pool" support to tools.

I can probably extend the pool support to also work for "action" targets, but I'm wondering whether it is worth removing a bash conditional (that I expect to be relatively cheap) and trade it for roughly 1000 python invocation.

rsesek: how important do you think it is to remove the "case" statement in "copy_bundle_data" command?

brettw: what do you think of adding pool property to "action" targets like there is for "tool" in toolchain? what about having "native_action" that run a native command instead of a python script?
Project Member

Comment 3 by bugdroid1@chromium.org, Jul 5 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/46e4613bc67b1fea0fc34893a51b88ad6b276ab3

commit 46e4613bc67b1fea0fc34893a51b88ad6b276ab3
Author: jif <jif@chromium.org>
Date: Tue Jul 05 12:09:03 2016

Revert of Generate localizable strings in binary1 property list format. (patchset #2 id:20001 of https://codereview.chromium.org/2121773002/ )

Reason for revert:
This breaks the iOS gyp build (gn build works fine).
 https://crbug.com/625819 

Original issue's description:
> Generate localizable strings in binary1 property list format.
>
> Instead of converting the generated files from the old legacy format
> to binary1 property list format when creating the application bundle,
> directly generate them in the correct format.
>
> BUG= 625578 
>
> Committed: https://crrev.com/2e4013a84448cf8e714034e3d9d49d11cdf03227
> Cr-Commit-Position: refs/heads/master@{#403679}

TBR=stkhapugin@chromium.org,sdefresne@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= 625578 

Review-Url: https://codereview.chromium.org/2127553002
Cr-Commit-Position: refs/heads/master@{#403770}

[modify] https://crrev.com/46e4613bc67b1fea0fc34893a51b88ad6b276ab3/ios/chrome/tools/strings/generate_localizable_strings.mm

> rsesek: how important do you think it is to remove the "case" statement in "copy_bundle_data" command?

I don't think it needs to block the transition, but it's something we should definitely clean up.
Project Member

Comment 5 by bugdroid1@chromium.org, Jul 6 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3f5cafaf4b809d08cbf98fef048942c5fb4aaf60

commit 3f5cafaf4b809d08cbf98fef048942c5fb4aaf60
Author: sdefresne <sdefresne@chromium.org>
Date: Wed Jul 06 17:06:22 2016

Roll gyp to bac4680ec9a5c55ab692490b6732999648ecf1e9.

This is to bring the following changes:
  bac4680 Only call CopyStringsFile if convert_to_binary is False.
  35eafcd Ignore more Xcode stderr logging information.

BUG= 625578 

Review-Url: https://codereview.chromium.org/2123963002
Cr-Commit-Position: refs/heads/master@{#403922}

[modify] https://crrev.com/3f5cafaf4b809d08cbf98fef048942c5fb4aaf60/DEPS

Project Member

Comment 6 by bugdroid1@chromium.org, Jul 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2f2a23432cde68446a2f9ee4f14b533bbcdbdecd

commit 2f2a23432cde68446a2f9ee4f14b533bbcdbdecd
Author: sdefresne <sdefresne@chromium.org>
Date: Thu Jul 07 09:15:46 2016

Reland of Generate localizable strings in binary1 property list format.

Instead of converting the generated files from the old legacy format
to binary1 property list format when creating the application bundle,
directly generate them in the correct format.

This is a reland of http://crrev.com/2121773002 without any change. The
CL was reverted because gyp compilation failed copying the .strings file
to the application bundle when they were in binary format. This was
fixed by http://crrev.com/2117353002 (rolled as http://crrev/2123963002).

BUG= 625578 

Review-Url: https://codereview.chromium.org/2130703002
Cr-Commit-Position: refs/heads/master@{#404104}

[modify] https://crrev.com/2f2a23432cde68446a2f9ee4f14b533bbcdbdecd/ios/chrome/tools/strings/generate_localizable_strings.mm

Project Member

Comment 7 by bugdroid1@chromium.org, Jul 7 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/02416e8ab9a11f44eba47d269cd0aa5fb843895b

commit 02416e8ab9a11f44eba47d269cd0aa5fb843895b
Author: sdefresne <sdefresne@chromium.org>
Date: Thu Jul 07 13:05:03 2016

Convert .strings to binary before declaring bundle_data.

Add a template "bundle_data_strings" to convert a .strings file to
binary1 property list format and declare it in a bundle_data target
(similar to "bundle_data_xib" template).

This is added in preparation of removing the automatic conversion
of .strings file to binary1 format by the "copy_bundle_data" tool
in build/toolchain/mac/BUILD.gn. There are no client upstream yet.

BUG= 625578 

Review-Url: https://codereview.chromium.org/2130743002
Cr-Commit-Position: refs/heads/master@{#404142}

[modify] https://crrev.com/02416e8ab9a11f44eba47d269cd0aa5fb843895b/build/config/ios/rules.gni

Project Member

Comment 8 by bugdroid1@chromium.org, Jul 7 2016

The following revision refers to this bug:
  https://chrome-internal.googlesource.com/chrome/ios_internal.git/+/aead4dee7d0ba89f7741d46db7f55a8bedd56433

commit aead4dee7d0ba89f7741d46db7f55a8bedd56433
Author: sdefresne <sdefresne@google.com>
Date: Thu Jul 07 15:55:10 2016

Project Member

Comment 9 by bugdroid1@chromium.org, Jul 11 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f52c49dc18851aaf7ca4f3a78b5312350193f5ba

commit f52c49dc18851aaf7ca4f3a78b5312350193f5ba
Author: sdefresne <sdefresne@chromium.org>
Date: Mon Jul 11 09:26:53 2016

[iOS] Remove conversion of .strings to binary1 by copy_bundle_data tool.

All .strings files that need to be in binary1 format are now
converted by using the "bundle_data_strings" template so the
conversion can be remove from "copy_bundle_data" tool.

BUG= 625578 

Review-Url: https://codereview.chromium.org/2130813002
Cr-Commit-Position: refs/heads/master@{#404621}

[modify] https://crrev.com/f52c49dc18851aaf7ca4f3a78b5312350193f5ba/build/toolchain/mac/BUILD.gn

Status: Fixed (was: Assigned)

Sign in to add a comment