Skip to content

Commit 2c5ba7e

Browse files
committed
Merge remote-tracking branch 'origin/main' into fix-report-header-gap-2
2 parents 1f71529 + 53f97da commit 2c5ba7e

354 files changed

Lines changed: 5252 additions & 3099 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/createNewVersion.yml

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,18 @@ jobs:
129129
./iOS/SmartScanExtension/Info.plist \
130130
./iOS/NotificationServiceExtension/Info.plist
131131
git commit -m "Update version to ${{ steps.bumpVersion.outputs.NEW_VERSION }}"
132-
git push origin main
132+
if ! git push origin main; then
133+
echo "Race condition! Mobile-Expensify main was updated while this workflow was running, so push failed. Fetching remote, rebasing, and retrying push once."
134+
git fetch origin main --depth=1
135+
if ! git rebase origin/main; then
136+
echo "::error:: Rebase failed while retrying Mobile-Expensify push"
137+
exit 1
138+
fi
139+
if ! git push origin main; then
140+
echo "::error:: Mobile-Expensify change failed to push after rebase"
141+
exit 1
142+
fi
143+
fi
133144
134145
- name: Commit new E/App version
135146
run: |
@@ -146,7 +157,18 @@ jobs:
146157
run: |
147158
git add Mobile-Expensify
148159
git commit -m "Update Mobile-Expensify submodule version to ${{ steps.bumpVersion.outputs.NEW_VERSION }}"
149-
git push origin main
160+
if ! git push origin main; then
161+
echo "Race condition! E/App main was updated while this workflow was running, so push failed. Fetching remote, rebasing, and retrying push once."
162+
git fetch origin main --depth=1
163+
if ! git rebase origin/main; then
164+
echo "::error:: Rebase failed while retrying Mobile-Expensify push"
165+
exit 1
166+
fi
167+
if ! git push origin main; then
168+
echo "::error:: Mobile-Expensify change failed to push after rebase"
169+
exit 1
170+
fi
171+
fi
150172
151173
- name: Announce failed workflow in Slack
152174
if: ${{ failure() }}

.github/workflows/deploy.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -165,11 +165,13 @@ jobs:
165165
- name: Submit production build for Google Play review and a slow rollout
166166
if: ${{ fromJSON(env.SHOULD_DEPLOY_PRODUCTION) }}
167167
run: |
168-
# The Play Store is slow to review Android releases. To avoid halting production rollouts, we must wait for the previous release to finish rolling out before uploading a new one.
169-
# Skip this release if the current prod release is not fully rolled out.
168+
# Complete the previous version rollout if the current rollout percentage is not -1 (no rollout in progress) or 1 (fully rolled out)
169+
echo "Current rollout percentage: ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }}"
170170
if [[ ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '-1' && ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} != '1' ]]; then
171-
echo "Skipping Android release because the current prod release ${{ steps.getAndroidRolloutPercentage.outputs.CURRENT_ROLLOUT_PERCENTAGE }} has not fully rolled out"
172-
exit 0
171+
echo "Completing the previous version rollout"
172+
bundle exec fastlane android complete_hybrid_rollout
173+
else
174+
echo "Skipping the completion of the previous version rollout"
173175
fi
174176
175177
# Submit the new version for review and slow rollout when it's approved
@@ -599,7 +601,7 @@ jobs:
599601

600602
- name: 🚀 Create release 🚀
601603
run: |
602-
gh release create ${{ needs.prep.outputs.TAG }} ${{ github.ref == 'refs/heads/staging' && '--prerelease' }} \
604+
gh release create ${{ needs.prep.outputs.TAG }} ${{ github.ref == 'refs/heads/staging' && '--prerelease' || '' }} \
603605
--repo ${{ github.repository }} \
604606
--title ${{ needs.prep.outputs.TAG }} \
605607
--generate-notes \

.imgbotconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"ignoredFiles": [
3-
"assets/images/themeDependent/empty-state_background-fade-dark.png", // Caused an issue with colour gradients, https://github.com/Expensify/App/issues/30499
3+
"assets/images/themeDependent/empty-state_background-fade-dark.png", // Caused an issue with color gradients, https://github.com/Expensify/App/issues/30499
44
"assets/images/themeDependent/empty-state_background-fade-light.png"
55
],
66
"aggressiveCompression": "false"

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ ruby ">= 3.3.4"
66
gem "cocoapods", "= 1.15.2"
77
gem 'activesupport', '>= 6.1.7.5', '!= 7.1.0'
88
gem 'xcodeproj', '< 1.26.0'
9-
gem "fastlane", "~> 2", ">= 2.222.0"
9+
gem "fastlane", "~> 2", ">= 2.227.1"
1010
gem "xcpretty", "~> 0"
1111

1212

Gemfile.lock

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ GEM
8181
highline (~> 2.0.0)
8282
concurrent-ruby (1.3.3)
8383
declarative (0.0.20)
84-
digest-crc (0.6.5)
84+
digest-crc (0.7.0)
8585
rake (>= 12.0.0, < 14.0.0)
8686
domain_name (0.6.20240107)
8787
dotenv (2.8.1)
@@ -118,8 +118,8 @@ GEM
118118
faraday-retry (1.0.3)
119119
faraday_middleware (1.2.1)
120120
faraday (~> 1.0)
121-
fastimage (2.3.1)
122-
fastlane (2.225.0)
121+
fastimage (2.4.0)
122+
fastlane (2.227.1)
123123
CFPropertyList (>= 2.3, < 4.0.0)
124124
addressable (>= 2.8, < 3.0.0)
125125
artifactory (~> 3.0)
@@ -159,7 +159,7 @@ GEM
159159
tty-spinner (>= 0.8.0, < 1.0.0)
160160
word_wrap (~> 1.0.0)
161161
xcodeproj (>= 1.13.0, < 2.0.0)
162-
xcpretty (~> 0.3.0)
162+
xcpretty (~> 0.4.1)
163163
xcpretty-travis-formatter (>= 0.0.3, < 2.0.0)
164164
fastlane-plugin-aws_s3 (2.1.0)
165165
apktools (~> 0.7)
@@ -197,12 +197,12 @@ GEM
197197
google-apis-core (>= 0.11.0, < 2.a)
198198
google-apis-storage_v1 (0.31.0)
199199
google-apis-core (>= 0.11.0, < 2.a)
200-
google-cloud-core (1.7.1)
200+
google-cloud-core (1.8.0)
201201
google-cloud-env (>= 1.0, < 3.a)
202202
google-cloud-errors (~> 1.0)
203203
google-cloud-env (1.6.0)
204204
faraday (>= 0.17.3, < 3.0)
205-
google-cloud-errors (1.4.0)
205+
google-cloud-errors (1.5.0)
206206
google-cloud-storage (1.47.0)
207207
addressable (~> 2.8)
208208
digest-crc (~> 0.4)
@@ -218,7 +218,7 @@ GEM
218218
os (>= 0.9, < 2.0)
219219
signet (>= 0.16, < 2.a)
220220
highline (2.0.3)
221-
http-cookie (1.0.7)
221+
http-cookie (1.0.8)
222222
domain_name (~> 0.5)
223223
httpclient (2.8.3)
224224
i18n (1.14.5)
@@ -241,9 +241,9 @@ GEM
241241
naturally (2.2.1)
242242
netrc (0.11.0)
243243
nkf (0.2.0)
244-
optparse (0.5.0)
244+
optparse (0.6.0)
245245
os (1.1.4)
246-
plist (3.7.1)
246+
plist (3.7.2)
247247
public_suffix (4.0.7)
248248
rake (13.2.1)
249249
representable (3.2.0)
@@ -252,7 +252,7 @@ GEM
252252
uber (< 0.2.0)
253253
retriable (3.1.2)
254254
rexml (3.3.9)
255-
rouge (2.0.7)
255+
rouge (3.28.0)
256256
ruby-macho (2.5.1)
257257
ruby2_keywords (0.0.5)
258258
rubyzip (2.3.2)
@@ -288,8 +288,8 @@ GEM
288288
colored2 (~> 3.1)
289289
nanaimo (~> 0.3.0)
290290
rexml (>= 3.3.6, < 4.0)
291-
xcpretty (0.3.0)
292-
rouge (~> 2.0.7)
291+
xcpretty (0.4.1)
292+
rouge (~> 3.28.0)
293293
xcpretty-travis-formatter (1.0.1)
294294
xcpretty (~> 0.2, >= 0.0.7)
295295

@@ -303,7 +303,7 @@ PLATFORMS
303303
DEPENDENCIES
304304
activesupport (>= 6.1.7.5, != 7.1.0)
305305
cocoapods (= 1.15.2)
306-
fastlane (~> 2, >= 2.222.0)
306+
fastlane (~> 2, >= 2.227.1)
307307
fastlane-plugin-aws_s3
308308
fastlane-plugin-firebase_app_distribution
309309
xcodeproj (< 1.26.0)

Mobile-Expensify

README.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -458,20 +458,21 @@ You can only build HybridApp if you have been granted access to [`Mobile-Expensi
458458
## Getting started with HybridApp
459459
460460
1. If you haven't, please follow [these instructions](https://github.com/Expensify/App?tab=readme-ov-file#getting-started) to setup the NewDot local environment.
461-
2. Run `git submodule update --init --progress --depth 100` to download the `Mobile-Expensify` sourcecode.
462-
- If you have access to `Mobile-Expensify` and the command fails, add this to your `~/.gitconfig` file:
461+
2. In the root directory, run `git submodule init`
462+
3. Run `git submodule update`
463+
- If this takes too long, try `git submodule update --init --progress --depth 100` (Note: this makes it difficult to checkout remote branches in the submodule)
464+
- If you have access to `Mobile-Expensify` and the command fails, add this to your `~/.gitconfig` file:
463465

464466
```
465467
[url "https://github.com/"]
466468
insteadOf = ssh://git@github.com/
467469
```
468-
- To prevent `Mobile-Expensify` submodule commit hash changes from appearing in `git status`, configure Git to ignore them by adding this to your local `.git/config`:
470+
- To prevent `Mobile-Expensify` submodule commit hash changes from appearing in `git status`, configure Git to ignore them by adding this to your local `.git/config` (This ensures that submodule changes are ignored unless you deliberately update them):
469471
```
470472
[submodule "Mobile-Expensify"]
471473
ignore = all
472474
```
473-
This ensures that submodule changes are ignored unless you deliberately update them.
474-
3. Run `git config --global submodule.recurse true` in order to have the submodule updated when you pull App
475+
4. Run `git config --global submodule.recurse true` in order to have the submodule updated when you pull App
475476

476477

477478
> [!Note]
@@ -560,7 +561,7 @@ If you'd like to add HybridApp-specific patches, use the `--patch-dir` flag:
560561

561562
### Additional information and troubleshooting
562563

563-
If you seek some addtional information you can always refer to the [extended version](contributingGuides/HYBRID_APP.md) of the docs for HybridApp. You can find there extended explanation of some of the concepts, pro tips, and most common errors.
564+
If you seek some additional information you can always refer to the [extended version](contributingGuides/HYBRID_APP.md) of the docs for HybridApp. You can find there extended explanation of some of the concepts, pro tips, and most common errors.
564565

565566
----
566567

@@ -939,4 +940,4 @@ Onyx derived values are special Onyx keys which contain values derived from othe
939940
940941
3. **Document derived values**
941942
- Explain the purpose and dependencies
942-
- Document any special cases or performance considerations
943+
- Document any special cases or performance considerations
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import type {FileToCopy} from '@react-native-documents/picker';
2+
3+
const keepLocalCopy = jest.fn();
4+
const pick = jest.fn();
5+
const types = Object.freeze({
6+
allFiles: 'public.item',
7+
audio: 'public.audio',
8+
csv: 'public.comma-separated-values-text',
9+
doc: 'com.microsoft.word.doc',
10+
docx: 'org.openxmlformats.wordprocessingml.document',
11+
images: 'public.image',
12+
json: 'public.json',
13+
pdf: 'com.adobe.pdf',
14+
plainText: 'public.plain-text',
15+
ppt: 'com.microsoft.powerpoint.ppt',
16+
pptx: 'org.openxmlformats.presentationml.presentation',
17+
video: 'public.movie',
18+
xls: 'com.microsoft.excel.xls',
19+
xlsx: 'org.openxmlformats.spreadsheetml.sheet',
20+
zip: 'public.zip-archive',
21+
});
22+
23+
export type {FileToCopy};
24+
export {keepLocalCopy, pick, types};

__mocks__/@react-navigation/native/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ const useFocusEffect = isJestEnv ? realReactNavigation.useFocusEffect : (callbac
4848
const UNSTABLE_usePreventRemove = isJestEnv ? jest.fn() : () => {};
4949

5050
export {
51-
// Overriden modules
51+
// Overridden modules
5252
useIsFocused,
5353
useTheme,
5454
useNavigation,

__mocks__/Illustrations.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ const PinkBill = 'PinkBill';
4646
const CreditCardsNew = 'CreditCardsNew';
4747
const CreditCardsNewGreen = 'CreditCardsNewGreen';
4848
const InvoiceBlue = 'InvoiceBlue';
49-
const LaptopwithSecondScreenandHourglass = 'LaptopwithSecondScreenandHourglass';
49+
const LaptopWithSecondScreenAndHourglass = 'LaptopWithSecondScreenAndHourglass';
5050
const LockOpen = 'LockOpen';
5151
const Luggage = 'Luggage';
5252
const MoneyIntoWallet = 'MoneyIntoWallet';
@@ -200,7 +200,7 @@ export {
200200
CreditCardsNew,
201201
CreditCardsNewGreen,
202202
InvoiceBlue,
203-
LaptopwithSecondScreenandHourglass,
203+
LaptopWithSecondScreenAndHourglass,
204204
LockOpen,
205205
Luggage,
206206
MoneyIntoWallet,

0 commit comments

Comments
 (0)