fastlane-plugin-wpmreleasetoolkit 2.3.0 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/an_localize_libs_action.rb +8 -3
  3. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/buildkite_trigger_build_action.rb +90 -0
  4. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/common/gp_downloadmetadata_action.rb +1 -1
  5. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_download_strings_files_from_glotpress.rb +113 -0
  6. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_lint_localizations.rb +5 -5
  7. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_localize_project.rb +2 -2
  8. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_merge_strings_files.rb +75 -0
  9. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_git_helper.rb +0 -20
  10. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/android/android_localize_helper.rb +8 -0
  11. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/git_helper.rb +2 -4
  12. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_git_helper.rb +3 -2
  13. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_l10n_helper.rb +108 -173
  14. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/ios/ios_l10n_linter_helper.rb +207 -0
  15. data/lib/fastlane/plugin/wpmreleasetoolkit/helper/promo_screenshots_helper.rb +3 -3
  16. data/lib/fastlane/plugin/wpmreleasetoolkit/models/file_reference.rb +1 -4
  17. data/lib/fastlane/plugin/wpmreleasetoolkit/version.rb +1 -1
  18. metadata +23 -39
  19. data/bin/drawText +0 -20
  20. data/ext/drawText/drawText/Assets/style.css +0 -1
  21. data/ext/drawText/drawText/CoreTextStack.swift +0 -113
  22. data/ext/drawText/drawText/Helpers/CommandLineHelpers.swift +0 -36
  23. data/ext/drawText/drawText/Helpers/Extensions.swift +0 -27
  24. data/ext/drawText/drawText/Helpers/FileSystemHelper.swift +0 -24
  25. data/ext/drawText/drawText/Stylesheet.swift +0 -48
  26. data/ext/drawText/drawText/TextImage.swift +0 -100
  27. data/ext/drawText/drawText/main.swift +0 -61
  28. data/ext/drawText/drawText Tests/DigitParsingTests.swift +0 -21
  29. data/ext/drawText/drawText Tests/ExtensionsTests.swift +0 -5
  30. data/ext/drawText/drawText Tests/Info.plist +0 -22
  31. data/ext/drawText/drawText Tests/StylesheetTests.swift +0 -31
  32. data/ext/drawText/drawText Tests/Test Cases/default-stylesheet.txt +0 -10
  33. data/ext/drawText/drawText Tests/Test Cases/external-styles-sample.css +0 -3
  34. data/ext/drawText/drawText Tests/Test Cases/external-styles-test.txt +0 -13
  35. data/ext/drawText/drawText Tests/Test Cases/large-text-block.txt +0 -1
  36. data/ext/drawText/drawText Tests/Test Cases/regular-text-block.txt +0 -2
  37. data/ext/drawText/drawText Tests/Test Cases/rtl-text-block.txt +0 -2
  38. data/ext/drawText/drawText Tests/Test Cases/text-size-adjustment-test.txt +0 -10
  39. data/ext/drawText/drawText Tests/TextImageTests.swift +0 -99
  40. data/ext/drawText/drawText Tests/drawText_Tests.swift +0 -14
  41. data/ext/drawText/drawText.xcodeproj/project.pbxproj +0 -508
  42. data/ext/drawText/drawText.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  43. data/ext/drawText/drawText.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  44. data/ext/drawText/drawText.xcodeproj/xcshareddata/xcschemes/drawText Tests.xcscheme +0 -57
  45. data/ext/drawText/drawText.xcodeproj/xcshareddata/xcschemes/drawText.xcscheme +0 -109
  46. data/ext/drawText/extconf.rb +0 -36
  47. data/ext/drawText/makefile.example +0 -8
  48. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_merge_translators_strings.rb +0 -106
  49. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/android/android_update_metadata.rb +0 -52
  50. data/lib/fastlane/plugin/wpmreleasetoolkit/actions/ios/ios_merge_translators_strings.rb +0 -93
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a9f3fcba792147f476a814f8f67f2620b5c6740497754eb033e2919e25dd3168
4
- data.tar.gz: 25077b056c019d26adad929b9fffbf942c23f22a60f66892905de241b624b2bb
3
+ metadata.gz: d2f92b2b90c9f077ad4ea0ae25c5c84f0345ca2fb5e186d1c0cdfab70ea40770
4
+ data.tar.gz: 0c919f8e9ca2af18c3488898efe2fe48f4ca5a3a4c0464991e000681cc6c9546
5
5
  SHA512:
6
- metadata.gz: d81b6b46eb930e0d15922c08eeea4314e9af06ef356b8dad207a6c76bec0793c1cf4e3c00507c16666170d3f6fe56960c9b3883ca567890e867fb1b50d064adf
7
- data.tar.gz: a92daf218f3ec9094a0d26edd0f6be4a6062c83609618ccdae26980afe9efd8b10ec6e4192f73290526106f93b6b352c94e55e3944053806ea0d06548ed155c7
6
+ metadata.gz: f0c0797c28da54495d995d856edb238631b70bf0126ae1516638a75e300717dd51a7f97f6fedd5cc3f9e7eef4e9cf328043c9fffcd34233a057338da8055307d
7
+ data.tar.gz: 17c8536dc94ab2ea0f3b394d3d9768c248683ba78fa4558d7c10ed1cc7fe81fc0aebd1390691282db601297b6f48e67af2dbd546daa3b0a13d16ffacd8c34f4c
@@ -36,12 +36,17 @@ module Fastlane
36
36
  FastlaneCore::ConfigItem.new(key: :app_strings_path,
37
37
  description: 'The path of the main strings file',
38
38
  optional: false,
39
- is_string: true),
39
+ type: String),
40
+ # The name of this parameter is a bit misleading due to legacy. In practice it's expected to be an Array of Hashes, each describing a library to merge.
41
+ # See `Fastlane::Helper::Android::LocalizeHelper.merge_lib`'s YARD doc for more details on the keys expected for each Hash.
40
42
  FastlaneCore::ConfigItem.new(key: :libs_strings_path,
41
43
  env_name: 'LOCALIZE_LIBS_STRINGS_PATH',
42
- description: 'The list of libs to merge',
44
+ description: 'The list of libs to merge. ' \
45
+ + 'Each item in the provided array must be a Hash with the keys `:library` (The library display name),' \
46
+ + '`:strings_path` (The path to the `strings.xml` file of the library) and ' \
47
+ + '`:exclusions` (Array of string keys to exclude from merging)',
43
48
  optional: false,
44
- is_string: false),
49
+ type: Array),
45
50
  ]
46
51
  end
47
52
 
@@ -0,0 +1,90 @@
1
+ module Fastlane
2
+ module Actions
3
+ class BuildkiteTriggerBuildAction < Action
4
+ def self.run(params)
5
+ require 'buildkit'
6
+
7
+ UI.message "Triggering build on branch #{params[:branch]}, commit #{params[:commit]}, using pipeline from #{params[:pipeline_file]}"
8
+
9
+ pipeline_name = {
10
+ PIPELINE: params[:pipeline_file]
11
+ }
12
+
13
+ client = Buildkit.new(token: params[:buildkite_token])
14
+ response = client.create_build(
15
+ params[:buildkite_organization],
16
+ params[:buildkite_pipeline],
17
+ {
18
+ branch: params[:branch],
19
+ commit: params[:commit],
20
+ env: params[:environment].merge(pipeline_name)
21
+ }
22
+ )
23
+
24
+ response.state == 'scheduled' ? UI.message('Done!') : UI.crash!("Failed to start job\nError: [#{response}]")
25
+ end
26
+
27
+ #####################################################
28
+ # @!group Documentation
29
+ #####################################################
30
+
31
+ def self.description
32
+ 'Triggers a job on Buildkite'
33
+ end
34
+
35
+ def self.available_options
36
+ [
37
+ FastlaneCore::ConfigItem.new(
38
+ key: :buildkite_token,
39
+ env_name: 'BUILDKITE_TOKEN',
40
+ description: 'Buildkite Personal Access Token',
41
+ type: String,
42
+ sensitive: true
43
+ ),
44
+ FastlaneCore::ConfigItem.new(
45
+ key: :buildkite_organization,
46
+ env_name: 'BUILDKITE_ORGANIZTION',
47
+ description: 'The Buildkite organization that contains your pipeline',
48
+ type: String
49
+ ),
50
+ FastlaneCore::ConfigItem.new(
51
+ key: :buildkite_pipeline,
52
+ env_name: 'BUILDKITE_PIPELINE',
53
+ description: %(The Buildkite pipeline you'd like to build),
54
+ type: String
55
+ ),
56
+ FastlaneCore::ConfigItem.new(
57
+ key: :branch,
58
+ description: 'The branch you want to build',
59
+ type: String
60
+ ),
61
+ FastlaneCore::ConfigItem.new(
62
+ key: :commit,
63
+ description: 'The commit hash you want to build',
64
+ type: String,
65
+ default_value: 'HEAD'
66
+ ),
67
+ FastlaneCore::ConfigItem.new(
68
+ key: :pipeline_file,
69
+ description: 'The name of the pipeline file in the project',
70
+ type: String
71
+ ),
72
+ FastlaneCore::ConfigItem.new(
73
+ key: :environment,
74
+ description: 'Any additional environment variables to provide to the job',
75
+ type: Hash,
76
+ default_value: {}
77
+ ),
78
+ ]
79
+ end
80
+
81
+ def self.authors
82
+ ['Automattic']
83
+ end
84
+
85
+ def self.is_supported?(platform)
86
+ true
87
+ end
88
+ end
89
+ end
90
+ end
@@ -58,7 +58,7 @@ module Fastlane
58
58
  is_string: false),
59
59
  FastlaneCore::ConfigItem.new(key: :locales,
60
60
  env_name: 'FL_DOWNLOAD_METADATA_LOCALES',
61
- description: 'The hash with the GLotPress locale and the project locale association',
61
+ description: 'The hash with the GlotPress locale and the project locale association',
62
62
  is_string: false),
63
63
  FastlaneCore::ConfigItem.new(key: :source_locale,
64
64
  env_name: 'FL_DOWNLOAD_METADATA_SOURCE_LOCALE',
@@ -0,0 +1,113 @@
1
+ module Fastlane
2
+ module Actions
3
+ class IosDownloadStringsFilesFromGlotpressAction < Action
4
+ def self.run(params)
5
+ # TODO: Once we introduce the `Locale` POD via #296, check if the param is an array of locales and if so convert it to Hash{glotpress=>lproj}
6
+ locales = params[:locales]
7
+ download_dir = params[:download_dir]
8
+
9
+ UI.user_error!("The parent directory `#{download_dir}` (which contains all the `*.lproj` subdirectories) must already exist") unless Dir.exist?(download_dir)
10
+
11
+ locales.each do |glotpress_locale, lproj_name|
12
+ # Download the export in the proper `.lproj` directory
13
+ lproj_dir = File.join(download_dir, "#{lproj_name}.lproj")
14
+ destination = File.join(lproj_dir, "#{params[:table_basename]}.strings")
15
+ FileUtils.mkdir(lproj_dir) unless Dir.exist?(lproj_dir)
16
+
17
+ Fastlane::Helper::Ios::L10nHelper.download_glotpress_export_file(
18
+ project_url: params[:project_url],
19
+ locale: glotpress_locale,
20
+ filters: params[:filters],
21
+ destination: destination
22
+ )
23
+ # Do a quick check of the downloaded `.strings` file to ensure it looks valid
24
+ validate_strings_file(destination) unless params[:skip_file_validation]
25
+ end
26
+ end
27
+
28
+ # Validate that a `.strings` file downloaded from GlotPress seems valid and does not contain empty translations
29
+ def self.validate_strings_file(destination)
30
+ return unless File.exist?(destination) # If the file failed to download, don't try to validate an non-existing file. We'd already have a separate error for the download failure anyway.
31
+
32
+ translations = Fastlane::Helper::Ios::L10nHelper.read_strings_file_as_hash(path: destination)
33
+ empty_keys = translations.select { |_, value| value.nil? || value.empty? }.keys.sort
34
+ unless empty_keys.empty?
35
+ UI.error(
36
+ "Found empty translations in `#{destination}` for the following keys: #{empty_keys.inspect}.\n" \
37
+ + "This is likely a GlotPress bug, and will lead to copies replaced by empty text in the UI.\n" \
38
+ + 'Please report this to the GlotPress team, and fix the file locally before continuing.'
39
+ )
40
+ end
41
+ rescue StandardError => e
42
+ UI.error("Error while validating the file exported from GlotPress (`#{destination}`) - #{e.message.chomp}")
43
+ end
44
+
45
+ #####################################################
46
+ # @!group Documentation
47
+ #####################################################
48
+
49
+ def self.description
50
+ 'Downloads the `.strings` files from GlotPress for the various locales'
51
+ end
52
+
53
+ def self.details
54
+ <<~DETAILS
55
+ Downloads the `.strings` files from GlotPress for the various locales,
56
+ validates them, and saves them in the relevant `*.lproj` directories for each locale
57
+ DETAILS
58
+ end
59
+
60
+ def self.available_options
61
+ [
62
+ FastlaneCore::ConfigItem.new(key: :project_url,
63
+ env_name: 'FL_IOS_DOWNLOAD_STRINGS_FILES_FROM_GLOTPRESS_PROJECT_URL',
64
+ description: 'URL to the GlotPress project',
65
+ type: String),
66
+ FastlaneCore::ConfigItem.new(key: :locales,
67
+ env_name: 'FL_IOS_DOWNLOAD_STRINGS_FILES_FROM_GLOTPRESS_LOCALES',
68
+ description: 'The map of locales to download, each entry of the Hash corresponding to a { glotpress-locale-code => lproj-folder-basename } pair',
69
+ type: Hash), # TODO: also support an Array of `Locale` POD/struct type when we introduce it later (see #296)
70
+ FastlaneCore::ConfigItem.new(key: :download_dir,
71
+ env_name: 'FL_IOS_DOWNLOAD_STRINGS_FILES_FROM_GLOTPRESS_DOWNLOAD_DIR',
72
+ description: 'The parent directory containing all the `*.lproj` subdirectories in which the downloaded files will be saved',
73
+ type: String),
74
+ FastlaneCore::ConfigItem.new(key: :table_basename,
75
+ env_name: 'FL_IOS_DOWNLOAD_STRINGS_FILES_FROM_GLOTPRESS_TABLE_BASENAME',
76
+ description: 'The basename to save the `.strings` files under',
77
+ type: String,
78
+ optional: true,
79
+ default_value: 'Localizable'),
80
+ FastlaneCore::ConfigItem.new(key: :filters,
81
+ env_name: 'FL_IOS_DOWNLOAD_STRINGS_FILES_FROM_GLOTPRESS_FILTERS',
82
+ description: 'The GlotPress filters to use when requesting the translations export',
83
+ type: Hash,
84
+ optional: true,
85
+ default_value: { status: 'current' }),
86
+ FastlaneCore::ConfigItem.new(key: :skip_file_validation,
87
+ env_name: 'FL_IOS_DOWNLOAD_STRINGS_FILES_FROM_GLOTPRESS_SKIP_FILE_VALIDATION',
88
+ description: 'If true, skips the validation of `.strings` files after download',
89
+ type: Fastlane::Boolean,
90
+ optional: true,
91
+ default_value: false),
92
+ ]
93
+ end
94
+
95
+ def self.return_type
96
+ # Describes what type of data is expected to be returned
97
+ # see RETURN_TYPES in https://github.com/fastlane/fastlane/blob/master/fastlane/lib/fastlane/action.rb
98
+ end
99
+
100
+ def self.return_value
101
+ # Textual description of what the return value is
102
+ end
103
+
104
+ def self.authors
105
+ ['Automattic']
106
+ end
107
+
108
+ def self.is_supported?(platform)
109
+ [:ios, :mac].include?(platform)
110
+ end
111
+ end
112
+ end
113
+ end
@@ -17,8 +17,8 @@ module Fastlane
17
17
  def self.run_linter(params)
18
18
  UI.message 'Linting localizations for parameter placeholders consistency...'
19
19
 
20
- require_relative '../../helper/ios/ios_l10n_helper'
21
- helper = Fastlane::Helper::Ios::L10nHelper.new(
20
+ require_relative '../../helper/ios/ios_l10n_linter_helper'
21
+ helper = Fastlane::Helper::Ios::L10nLinterHelper.new(
22
22
  install_path: resolve_path(params[:install_path]),
23
23
  version: params[:version]
24
24
  )
@@ -92,7 +92,7 @@ module Fastlane
92
92
  description: 'The path where to install the SwiftGen tooling needed to run the linting process. If a relative path, should be relative to your repo_root',
93
93
  type: String,
94
94
  optional: true,
95
- default_value: "vendor/swiftgen/#{Fastlane::Helper::Ios::L10nHelper::SWIFTGEN_VERSION}"
95
+ default_value: "vendor/swiftgen/#{Fastlane::Helper::Ios::L10nLinterHelper::SWIFTGEN_VERSION}"
96
96
  ),
97
97
  FastlaneCore::ConfigItem.new(
98
98
  key: :version,
@@ -100,7 +100,7 @@ module Fastlane
100
100
  description: 'The version of SwiftGen to install and use for linting',
101
101
  type: String,
102
102
  optional: true,
103
- default_value: Fastlane::Helper::Ios::L10nHelper::SWIFTGEN_VERSION
103
+ default_value: Fastlane::Helper::Ios::L10nLinterHelper::SWIFTGEN_VERSION
104
104
  ),
105
105
  FastlaneCore::ConfigItem.new(
106
106
  key: :input_dir,
@@ -115,7 +115,7 @@ module Fastlane
115
115
  description: 'The language that should be used as the base language that every other language will be compared against',
116
116
  type: String,
117
117
  optional: true,
118
- default_value: Fastlane::Helper::Ios::L10nHelper::DEFAULT_BASE_LANG
118
+ default_value: Fastlane::Helper::Ios::L10nLinterHelper::DEFAULT_BASE_LANG
119
119
  ),
120
120
  FastlaneCore::ConfigItem.new(
121
121
  key: :only_langs,
@@ -16,11 +16,11 @@ module Fastlane
16
16
  #####################################################
17
17
 
18
18
  def self.description
19
- 'Gathers the string to localise'
19
+ 'Gathers the strings to localise. Deprecated'
20
20
  end
21
21
 
22
22
  def self.details
23
- 'Gathers the string to localise. Deprecated in favor of the new `ios_generate_strings_file_from_code`'
23
+ 'Gathers the strings to localise. Deprecated in favor of the new `ios_generate_strings_file_from_code`'
24
24
  end
25
25
 
26
26
  def self.category
@@ -0,0 +1,75 @@
1
+ module Fastlane
2
+ module Actions
3
+ class IosMergeStringsFilesAction < Action
4
+ def self.run(params)
5
+ UI.message "Merging strings files: #{params[:paths].inspect}"
6
+
7
+ duplicates = Fastlane::Helper::Ios::L10nHelper.merge_strings(paths: params[:paths], output_path: params[:destination])
8
+ duplicates.each do |dup_key|
9
+ UI.important "Duplicate key found while merging the `.strings` files: `#{dup_key}`"
10
+ end
11
+ duplicates
12
+ end
13
+
14
+ #####################################################
15
+ # @!group Documentation
16
+ #####################################################
17
+
18
+ def self.description
19
+ 'Merge multiple `.strings` files into one'
20
+ end
21
+
22
+ def self.details
23
+ <<~DETAILS
24
+ Merge multiple `.strings` files into one.
25
+
26
+ Especially useful to prepare a single `.strings` file merging strings from both `Localizable.strings` from
27
+ the app code — typically previously extracted from `ios_generate_strings_file_from_code` —
28
+ and string files like `InfoPlist.strings` — which values may not be generated from the codebase but
29
+ manually maintained by developers.
30
+
31
+ The action only supports merging files which are in the OpenStep (`"key" = "value";`) text format (which is
32
+ the most common format for `.strings` files, and the one generated by `genstrings`), but can handle the case
33
+ of different files using different encodings (UTF8 vs UTF16) and is able to detect and report duplicates.
34
+ It does not handle `.strings` files in XML or binary-plist formats (which are valid but more rare)
35
+ DETAILS
36
+ end
37
+
38
+ def self.available_options
39
+ [
40
+ FastlaneCore::ConfigItem.new(
41
+ key: :paths,
42
+ env_name: 'FL_IOS_MERGE_STRINGS_FILES_PATHS',
43
+ description: 'The paths of all the `.strings` files to merge together',
44
+ type: Array,
45
+ optional: false
46
+ ),
47
+ FastlaneCore::ConfigItem.new(
48
+ key: :destination,
49
+ env_name: 'FL_IOS_MERGE_STRINGS_FILES_DESTINATION',
50
+ description: 'The path of the merged `.strings` file to generate. If nil, the merge will happen in-place in the first file in the `paths:` list',
51
+ type: String,
52
+ optional: true,
53
+ default_value: nil
54
+ ),
55
+ ]
56
+ end
57
+
58
+ def self.return_type
59
+ :array_of_strings
60
+ end
61
+
62
+ def self.return_value
63
+ 'The list of duplicate keys found while merging the various `.strings` files'
64
+ end
65
+
66
+ def self.authors
67
+ ['automattic']
68
+ end
69
+
70
+ def self.is_supported?(platform)
71
+ [:ios, :mac].include? platform
72
+ end
73
+ end
74
+ end
75
+ end
@@ -27,26 +27,6 @@ module Fastlane
27
27
  )
28
28
  end
29
29
  end
30
-
31
- # Calls the `tools/update-translations.sh` script from the project repo, then lint them using the provided gradle task
32
- #
33
- # Deprecated. Use the `android_download_translations` action instead.
34
- #
35
- # @env PROJECT_ROOT_FOLDER The path to the git root of the project
36
- # @env PROJECT_NAME The name of the directory containing the project code (especially containing the `build.gradle` file)
37
- #
38
- # @param [String] validate_translation_command The name of the gradle task to run to validate the translations
39
- #
40
- # @todo Remove this once every client has migrated to `android_download_translations` and we got rid of that legacy action.
41
- #
42
- def self.update_metadata(validate_translation_command)
43
- Action.sh('./tools/update-translations.sh')
44
- Action.sh('git', 'submodule', 'update', '--init', '--recursive')
45
- Action.sh('./gradlew', validate_translation_command)
46
-
47
- res_dir = File.join(ENV['PROJECT_ROOT_FOLDER'], ENV['PROJECT_NAME'], 'src', 'main', 'res')
48
- Fastlane::Helper::GitHelper.commit(message: 'Update translations', files: res_dir, push: true)
49
- end
50
30
  end
51
31
  end
52
32
  end
@@ -92,6 +92,14 @@ module Fastlane
92
92
  UI.user_error!("String #{string_name} [#{string_content}] was found in library #{library[:library]} but not in the main file.")
93
93
  end
94
94
 
95
+ # Merge strings from a library into the strings.xml of the main app
96
+ #
97
+ # @param [String] main Path to the main strings.xml file (something like `…/res/values/strings.xml`)
98
+ # @param [Hash] library Hash describing the library to merge. The Hash should contain the following keys:
99
+ # - `:library`: The human readable name of the library, used to display in console messages
100
+ # - `:strings_path`: The path to the strings.xml file of the library to merge into the main one
101
+ # - `:exclusions`: An array of strings keys to exclude during merge. Any of those keys from the library's `strings.xml` will be skipped and won't be merged into the main one.
102
+ # @return [Boolean] True if at least one string from the library has been added to (or has updated) the main strings file.
95
103
  def self.merge_lib(main, library)
96
104
  UI.message("Merging #{library[:library]} strings into #{main}")
97
105
  main_strings = File.open(main) { |f| Nokogiri::XML(f, nil, Encoding::UTF_8.to_s) }
@@ -5,10 +5,8 @@ module Fastlane
5
5
  # Helper methods to execute git-related operations
6
6
  #
7
7
  module GitHelper
8
- # Fallback default branch of the client repository. It's currently set to 'develop' for
9
- # backwards compatibility.
10
- # TODO: Set to 'trunk' for the next major release.
11
- DEFAULT_GIT_BRANCH = 'develop'.freeze
8
+ # Fallback default branch of the client repository.
9
+ DEFAULT_GIT_BRANCH = 'trunk'.freeze
12
10
 
13
11
  # Checks if the given path, or current directory if no path is given, is
14
12
  # inside a Git repository
@@ -35,8 +35,9 @@ module Fastlane
35
35
  # @env PROJECT_ROOT_FOLDER The path to the git root of the project
36
36
  # @env PROJECT_NAME The name of the directory containing the project code (especially containing the `build.gradle` file)
37
37
  #
38
- # @todo Migrate the scripts, currently in each host repo and called by this method, to be helpers and actions
39
- # in the release-toolkit instead, and move this code away from `ios_git_helper`.
38
+ # @deprecated This method is only used by the `ios_localize_project` action, which is itself deprecated
39
+ # in favor of the new `ios_generate_strings_file_from_code` action
40
+ # @todo [Next Major] Remove this method once we fully remove `ios_localize_project`
40
41
  #
41
42
  def self.localize_project
42
43
  Action.sh("cd #{get_from_env!(key: 'PROJECT_ROOT_FOLDER')} && ./Scripts/localize.py")