Skip to content

Commit a480524

Browse files
committed
Merge branch 'main' of https://github.com/margelo/expensify-app-fork into feat/#Expensify#23220-bidirectional-pagination
2 parents 66483bf + f5b7d5c commit a480524

File tree

129 files changed

+1084
-475
lines changed

Some content is hidden

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

129 files changed

+1084
-475
lines changed

.github/actions/javascript/createOrUpdateStagingDeploy/index.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -207,10 +207,7 @@ function fetchTag(tag) {
207207
console.log(`Running command: ${command}`);
208208
execSync(command);
209209
} catch (e) {
210-
// This can happen if the tag was only created locally but does not exist in the remote. In this case, we'll fetch history of the staging branch instead
211-
const command = `git fetch origin staging --no-tags --shallow-exclude=${previousPatchVersion}`;
212-
console.log(`Running command: ${command}`);
213-
execSync(command);
210+
console.error(e);
214211
}
215212
}
216213

@@ -301,13 +298,14 @@ function getValidMergedPRs(commits) {
301298
* @returns {Promise<Array<Number>>} – Pull request numbers
302299
*/
303300
function getPullRequestsMergedBetween(fromTag, toTag) {
301+
console.log(`Looking for commits made between ${fromTag} and ${toTag}...`);
304302
return getCommitHistoryAsJSON(fromTag, toTag).then((commitList) => {
305303
console.log(`Commits made between ${fromTag} and ${toTag}:`, commitList);
306304

307305
// Find which commit messages correspond to merged PR's
308306
const pullRequestNumbers = getValidMergedPRs(commitList);
309307
console.log(`List of pull requests merged between ${fromTag} and ${toTag}`, pullRequestNumbers);
310-
return pullRequestNumbers;
308+
return _.map(pullRequestNumbers, (prNum) => Number.parseInt(prNum, 10));
311309
});
312310
}
313311

.github/actions/javascript/getDeployPullRequestList/index.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,7 @@ function fetchTag(tag) {
170170
console.log(`Running command: ${command}`);
171171
execSync(command);
172172
} catch (e) {
173-
// This can happen if the tag was only created locally but does not exist in the remote. In this case, we'll fetch history of the staging branch instead
174-
const command = `git fetch origin staging --no-tags --shallow-exclude=${previousPatchVersion}`;
175-
console.log(`Running command: ${command}`);
176-
execSync(command);
173+
console.error(e);
177174
}
178175
}
179176

@@ -264,13 +261,14 @@ function getValidMergedPRs(commits) {
264261
* @returns {Promise<Array<Number>>} – Pull request numbers
265262
*/
266263
function getPullRequestsMergedBetween(fromTag, toTag) {
264+
console.log(`Looking for commits made between ${fromTag} and ${toTag}...`);
267265
return getCommitHistoryAsJSON(fromTag, toTag).then((commitList) => {
268266
console.log(`Commits made between ${fromTag} and ${toTag}:`, commitList);
269267

270268
// Find which commit messages correspond to merged PR's
271269
const pullRequestNumbers = getValidMergedPRs(commitList);
272270
console.log(`List of pull requests merged between ${fromTag} and ${toTag}`, pullRequestNumbers);
273-
return pullRequestNumbers;
271+
return _.map(pullRequestNumbers, (prNum) => Number.parseInt(prNum, 10));
274272
});
275273
}
276274

.github/libs/GitUtils.js

+3-5
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,7 @@ function fetchTag(tag) {
2222
console.log(`Running command: ${command}`);
2323
execSync(command);
2424
} catch (e) {
25-
// This can happen if the tag was only created locally but does not exist in the remote. In this case, we'll fetch history of the staging branch instead
26-
const command = `git fetch origin staging --no-tags --shallow-exclude=${previousPatchVersion}`;
27-
console.log(`Running command: ${command}`);
28-
execSync(command);
25+
console.error(e);
2926
}
3027
}
3128

@@ -116,13 +113,14 @@ function getValidMergedPRs(commits) {
116113
* @returns {Promise<Array<Number>>} – Pull request numbers
117114
*/
118115
function getPullRequestsMergedBetween(fromTag, toTag) {
116+
console.log(`Looking for commits made between ${fromTag} and ${toTag}...`);
119117
return getCommitHistoryAsJSON(fromTag, toTag).then((commitList) => {
120118
console.log(`Commits made between ${fromTag} and ${toTag}:`, commitList);
121119

122120
// Find which commit messages correspond to merged PR's
123121
const pullRequestNumbers = getValidMergedPRs(commitList);
124122
console.log(`List of pull requests merged between ${fromTag} and ${toTag}`, pullRequestNumbers);
125-
return pullRequestNumbers;
123+
return _.map(pullRequestNumbers, (prNum) => Number.parseInt(prNum, 10));
126124
});
127125
}
128126

.github/workflows/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ The GitHub workflows require a large list of secrets to deploy, notify and test
8585
1. `LARGE_SECRET_PASSPHRASE` - decrypts secrets stored in various encrypted files stored in GitHub repository. To create updated versions of these encrypted files, refer to steps 1-4 of [this encrypted secrets help page](https://docs.github.com/en/actions/reference/encrypted-secrets#limits-for-secrets) using the `LARGE_SECRET_PASSPHRASE`.
8686
1. `android/app/my-upload-key.keystore.gpg`
8787
1. `android/app/android-fastlane-json-key.json.gpg`
88-
1. `ios/chat_expensify_adhoc.mobileprovision.gpg`
88+
1. `ios/expensify_chat_adhoc.mobileprovision.gpg`
8989
1. `ios/chat_expensify_appstore.mobileprovision.gpg`
9090
1. `ios/Certificates.p12.gpg`
9191
1. `SLACK_WEBHOOK` - Sends Slack notifications via Slack WebHook https://expensify.slack.com/services/B01AX48D7MM

.github/workflows/finishReleaseCycle.yml

-28
Original file line numberDiff line numberDiff line change
@@ -119,31 +119,3 @@ jobs:
119119
uses: Expensify/App/.github/actions/composite/announceFailedWorkflowInSlack@main
120120
with:
121121
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
122-
123-
# Create a new StagingDeployCash for the next release cycle.
124-
createNewStagingDeployCash:
125-
runs-on: ubuntu-latest
126-
needs: [updateStaging, createNewPatchVersion]
127-
steps:
128-
- uses: actions/checkout@v3
129-
with:
130-
ref: staging
131-
token: ${{ secrets.OS_BOTIFY_TOKEN }}
132-
133-
# Create a local git tag so that GitUtils.getPullRequestsMergedBetween can use `git log` to generate a
134-
# list of pull requests that were merged between this version tag and another.
135-
# NOTE: This tag is only used locally and shouldn't be pushed to the remote.
136-
# If it was pushed, that would trigger the staging deploy which is handled in a separate workflow (deploy.yml)
137-
- name: Tag version
138-
run: git tag ${{ needs.createNewPatchVersion.outputs.NEW_VERSION }}
139-
140-
- name: Create new StagingDeployCash
141-
uses: Expensify/App/.github/actions/javascript/createOrUpdateStagingDeploy@main
142-
with:
143-
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
144-
NPM_VERSION: ${{ needs.createNewPatchVersion.outputs.NEW_VERSION }}
145-
146-
- if: ${{ failure() }}
147-
uses: Expensify/App/.github/actions/composite/announceFailedWorkflowInSlack@main
148-
with:
149-
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}

.github/workflows/lint.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515

1616
- uses: Expensify/App/.github/actions/composite/setupNode@main
1717

18-
- name: Lint JavaScript with ESLint
18+
- name: Lint JavaScript and Typescript with ESLint
1919
run: npm run lint
2020
env:
2121
CI: true

.github/workflows/platformDeploy.yml

+19
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,25 @@ jobs:
2828
env:
2929
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
3030

31+
# Note: we're updating the checklist before running the deploys and assuming that it will succeed on at least one platform
32+
deployChecklist:
33+
name: Create or update deploy checklist
34+
runs-on: ubuntu-latest
35+
needs: validateActor
36+
steps:
37+
- uses: actions/checkout@v3
38+
- uses: Expensify/App/.github/actions/composite/setupNode@main
39+
40+
- name: Set version
41+
id: getVersion
42+
run: echo "VERSION=$(npm run print-version --silent)" >> "$GITHUB_ENV"
43+
44+
- name: Create or update staging deploy
45+
uses: Expensify/App/.github/actions/javascript/createOrUpdateStagingDeploy@main
46+
with:
47+
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
48+
NPM_VERSION: ${{ steps.getVersion.outputs.VERSION }}
49+
3150
android:
3251
name: Build and deploy Android
3352
needs: validateActor

.github/workflows/preDeploy.yml

-19
Original file line numberDiff line numberDiff line change
@@ -98,25 +98,6 @@ jobs:
9898
# Force-update the remote staging branch
9999
git push --force origin staging
100100
101-
# Create a local git tag on staging so that GitUtils.getPullRequestsMergedBetween can use `git log` to generate a
102-
# list of pull requests that were merged between this version tag and another.
103-
# NOTE: This tag is only used locally and shouldn't be pushed to the remote.
104-
# If it was pushed, that would trigger the staging deploy which is handled in a separate workflow (deploy.yml)
105-
- name: Tag staging
106-
run: git tag ${{ needs.createNewVersion.outputs.NEW_VERSION }}
107-
108-
- name: Update StagingDeployCash
109-
uses: Expensify/App/.github/actions/javascript/createOrUpdateStagingDeploy@main
110-
with:
111-
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
112-
NPM_VERSION: ${{ needs.createNewVersion.outputs.NEW_VERSION }}
113-
114-
- name: Find open StagingDeployCash
115-
id: getStagingDeployCash
116-
run: echo "STAGING_DEPLOY_CASH=$(gh issue list --label StagingDeployCash --json number --jq '.[0].number')" >> "$GITHUB_OUTPUT"
117-
env:
118-
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
119-
120101
- if: ${{ failure() }}
121102
uses: Expensify/App/.github/actions/composite/announceFailedWorkflowInSlack@main
122103
with:

android/app/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ android {
9090
minSdkVersion rootProject.ext.minSdkVersion
9191
targetSdkVersion rootProject.ext.targetSdkVersion
9292
multiDexEnabled rootProject.ext.multiDexEnabled
93-
versionCode 1001036400
94-
versionName "1.3.64-0"
93+
versionCode 1001036702
94+
versionName "1.3.67-2"
9595
}
9696

9797
flavorDimensions "default"

android/app/src/development/assets/airshipconfig.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,4 @@ developmentLogLevel = VERBOSE
55

66
# Notification Customization
77
notificationIcon = ic_notification
8-
notificationAccentColor = #2EAAE2
8+
notificationAccentColor = #03D47C

android/app/src/main/assets/airshipconfig.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ inProduction = true
44

55
# Notification Customization
66
notificationIcon = ic_notification
7-
notificationAccentColor = #2EAAE2
7+
notificationAccentColor = #03D47C
Loading
Loading
Loading
Loading
Loading
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
3-
<bool name="portrait_only">false</bool>
3+
<bool name="portrait_only">true</bool>
44
</resources>
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
3-
<bool name="portrait_only">false</bool>
3+
<bool name="portrait_only">true</bool>
44
</resources>

contributingGuides/FORMS.md

+1
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,7 @@ Form.js will automatically provide the following props to any input with the inp
274274
- onBlur: An onBlur handler that calls validate.
275275
- onTouched: An onTouched handler that marks the input as touched.
276276
- onInputChange: An onChange handler that saves draft values and calls validate for that input (inputA). Passing an inputID as a second param allows inputA to manipulate the input value of the provided inputID (inputB).
277+
- onFocus: An onFocus handler that marks the input as focused.
277278

278279
## Dynamic Form Inputs
279280

docs/assets/images/insights-chart.png

-67.3 KB
Loading

fastlane/Fastfile

+5-5
Original file line numberDiff line numberDiff line change
@@ -224,11 +224,11 @@ platform :ios do
224224
contact_phone: ENV["APPLE_CONTACT_PHONE"],
225225
demo_account_name: ENV["APPLE_DEMO_EMAIL"],
226226
demo_account_password: ENV["APPLE_DEMO_PASSWORD"],
227-
notes: "1. Log into the Expensify app using the provided email
228-
2. Now, you have to log in to this gmail account on https://mail.google.com/ so you can retrieve a One-Time-Password
229-
3. To log in to the gmail account, use the password above (That's NOT a password for the Expensify app but for the Gmail account)
230-
4. At the Gmail inbox, you should have received a one-time 6 digit magic code
231-
5. Use that to sign in"
227+
notes: "1. In the Expensify app, enter the email '[email protected]'. This will trigger a sign-in link to be sent to '[email protected]'
228+
2. Navigate to https://account.proton.me/login, log into Proton Mail using '[email protected]' as email and the password associated with '[email protected]', provided above
229+
3. Once logged into Proton Mail, navigate to your inbox and locate the email triggered in step 1. The email subject should be 'Your magic sign-in link for Expensify'
230+
4. Open the email and copy the 6-digit sign-in code provided within
231+
5. Return to the Expensify app and enter the copied 6-digit code in the designated login field"
232232
}
233233
)
234234
rescue Exception => e

ios/Certificates.p12.gpg

-44 Bytes
Binary file not shown.

ios/NewExpensify/Info.plist

+4-4
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
<key>CFBundlePackageType</key>
2020
<string>APPL</string>
2121
<key>CFBundleShortVersionString</key>
22-
<string>1.3.64</string>
22+
<string>1.3.67</string>
2323
<key>CFBundleSignature</key>
2424
<string>????</string>
2525
<key>CFBundleURLTypes</key>
@@ -40,7 +40,7 @@
4040
</dict>
4141
</array>
4242
<key>CFBundleVersion</key>
43-
<string>1.3.64.0</string>
43+
<string>1.3.67.2</string>
4444
<key>ITSAppUsesNonExemptEncryption</key>
4545
<false/>
4646
<key>LSApplicationQueriesSchemes</key>
@@ -108,6 +108,8 @@
108108
<array>
109109
<string>armv7</string>
110110
</array>
111+
<key>UIRequiresFullScreen</key>
112+
<true/>
111113
<key>UISupportedInterfaceOrientations</key>
112114
<array>
113115
<string>UIInterfaceOrientationPortrait</string>
@@ -117,8 +119,6 @@
117119
<array>
118120
<string>UIInterfaceOrientationPortrait</string>
119121
<string>UIInterfaceOrientationPortraitUpsideDown</string>
120-
<string>UIInterfaceOrientationLandscapeRight</string>
121-
<string>UIInterfaceOrientationLandscapeLeft</string>
122122
</array>
123123
<key>UIUserInterfaceStyle</key>
124124
<string>Dark</string>

ios/NewExpensifyTests/Info.plist

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
<key>CFBundlePackageType</key>
1616
<string>BNDL</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>1.3.64</string>
18+
<string>1.3.67</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>
22-
<string>1.3.64.0</string>
22+
<string>1.3.67.2</string>
2323
</dict>
2424
</plist>

ios/Podfile.lock

+2-2
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,7 @@ PODS:
591591
- React-Core
592592
- react-native-pager-view (6.2.0):
593593
- React-Core
594-
- react-native-pdf (6.6.2):
594+
- react-native-pdf (6.7.1):
595595
- React-Core
596596
- react-native-performance (4.0.0):
597597
- React-Core
@@ -1254,7 +1254,7 @@ SPEC CHECKSUMS:
12541254
react-native-key-command: c2645ec01eb1fa664606c09480c05cb4220ef67b
12551255
react-native-netinfo: ccbe1085dffd16592791d550189772e13bf479e2
12561256
react-native-pager-view: 0ccb8bf60e2ebd38b1f3669fa3650ecce81db2df
1257-
react-native-pdf: 33c622cbdf776a649929e8b9d1ce2d313347c4fa
1257+
react-native-pdf: 7c0e91ada997bac8bac3bb5bea5b6b81f5a3caae
12581258
react-native-performance: 224bd53e6a835fda4353302cf891d088a0af7406
12591259
react-native-plaid-link-sdk: 9eb0f71dad94b3bdde649c7a384cba93024af46c
12601260
react-native-quick-sqlite: bcc7a7a250a40222f18913a97cd356bf82d0a6c4
-10.8 KB
Binary file not shown.
2 Bytes
Binary file not shown.
29 Bytes
Binary file not shown.
-10.8 KB
Binary file not shown.

0 commit comments

Comments
 (0)