Skip to content

Commit 1bfc996

Browse files
committed
Merge remote-tracking branch 'origin/main' fix-622372
2 parents 5553239 + 40dea10 commit 1bfc996

423 files changed

Lines changed: 12789 additions & 7166 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.

.claude/scripts/createInlineComment.sh

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,12 @@ readonly LINE_ARG="${3:-}"
4747
validate_rule "$BODY_ARG"
4848
echo "Comment approved: $COMMENT_STATUS_REASON"
4949

50-
readonly FOOTER=$'\n\n---\n\nPlease rate this suggestion with 👍 or 👎 to help us improve! Reactions are used to monitor reviewer efficiency.'
51-
readonly COMMENT_BODY="${BODY_ARG}${FOOTER}"
52-
5350
COMMIT_ID=$(gh api "/repos/$GITHUB_REPOSITORY/pulls/$PR_NUMBER" --jq '.head.sha')
5451
readonly COMMIT_ID
52+
readonly SHORT_SHA="${COMMIT_ID:0:7}"
53+
54+
readonly FOOTER=$'\n\n---\n\n'"Reviewed at: [${SHORT_SHA}](https://github.com/${GITHUB_REPOSITORY}/commit/${COMMIT_ID}) | Please rate this suggestion with 👍 or 👎 to help us improve! Reactions are used to monitor reviewer efficiency."
55+
readonly COMMENT_BODY="${BODY_ARG}${FOOTER}"
5556

5657
PAYLOAD=$(jq -n \
5758
--arg body "$COMMENT_BODY" \

.github/workflows/buildAndroid.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,8 @@ jobs:
178178
sign: true
179179
re-sign: true
180180
ad-hoc: ${{ inputs.variant == 'Adhoc' }}
181+
# We don't need Rock to setup java, because we already ran the setup-java action above
182+
setup-java: false
181183
keystore-file: './upload-key.keystore'
182184
keystore-store-file: 'upload-key.keystore'
183185
keystore-store-password: ${{ steps.load-credentials.outputs.ANDROID_UPLOAD_KEYSTORE_PASSWORD }}

.github/workflows/cherryPick.yml

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,34 @@ concurrency:
3434
cancel-in-progress: false
3535

3636
jobs:
37+
validate:
38+
runs-on: blacksmith-2vcpu-ubuntu-2404
39+
steps:
40+
- name: Validate pull request URL
41+
if: ${{ inputs.PULL_REQUEST_URL != '' }}
42+
run: |
43+
REPO_FULL_NAME=$(echo '${{ inputs.PULL_REQUEST_URL }}' | sed -E 's|https?://github.com/([^/]+/[^/]+)/pull/.*|\1|')
44+
if [[ "$REPO_FULL_NAME" != ${{ github.repository }} ]] && [[ ! "$REPO_FULL_NAME" =~ Expensify/Mobile-Expensify* ]]; then
45+
echo "::error::❌ Cherry picks are only supported for the Expensify/App and Expensify/Mobile-Expensify repositories. Found: $REPO_FULL_NAME"
46+
exit 1
47+
fi
48+
49+
- name: Verify PR is merged
50+
if: ${{ inputs.PULL_REQUEST_URL != '' }}
51+
env:
52+
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}
53+
run: |
54+
if gh pr view "${{ inputs.PULL_REQUEST_URL }}" --json mergedAt | jq --exit-status '.mergedAt'; then
55+
echo "PR is merged: ${{ inputs.PULL_REQUEST_URL }}"
56+
else
57+
echo "::error::❌ PR is not merged: ${{ inputs.PULL_REQUEST_URL }}"
58+
exit 1
59+
fi
60+
3761
createNewVersion:
3862
uses: ./.github/workflows/createNewVersion.yml
3963
secrets: inherit
64+
needs: [validate]
4065
with:
4166
# In order to submit a new build for production review, it must have a higher PATCH version than the previously-submitted build.
4267
# The typical case is that with each staging deploy, we bump the BUILD version, and with each prod deploy we bump the PATCH version.
@@ -59,14 +84,6 @@ jobs:
5984
echo "REPO_FULL_NAME=$(echo '${{ inputs.PULL_REQUEST_URL }}' | sed -E 's|https?://github.com/([^/]+/[^/]+)/pull/.*|\1|')" >> "$GITHUB_OUTPUT"
6085
echo "PR_NUMBER=$(echo '${{ inputs.PULL_REQUEST_URL }}' | sed -E 's|.*/pull/([0-9]+).*|\1|')" >> "$GITHUB_OUTPUT"
6186
62-
- name: Verify pull request URL
63-
if: ${{ inputs.PULL_REQUEST_URL != '' }}
64-
run: |
65-
if [[ "${{ steps.getPRInfo.outputs.REPO_FULL_NAME }}" != ${{ github.repository }} ]] && [[ ! "${{ steps.getPRInfo.outputs.REPO_FULL_NAME }}" =~ Expensify/Mobile-Expensify* ]]; then
66-
echo "::error::❌ Cherry picks are only supported for the Expensify/App and Expensify/Mobile-Expensify repositories. Found: ${{ steps.getPRInfo.outputs.REPO_FULL_NAME }}"
67-
exit 1
68-
fi
69-
7087
- name: Set conflict branch name
7188
if: ${{ inputs.PULL_REQUEST_URL != '' }}
7289
id: getBranchName

Mobile-Expensify

android/app/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -111,8 +111,8 @@ android {
111111
minSdkVersion rootProject.ext.minSdkVersion
112112
targetSdkVersion rootProject.ext.targetSdkVersion
113113
multiDexEnabled rootProject.ext.multiDexEnabled
114-
versionCode 1009035403
115-
versionName "9.3.54-3"
114+
versionCode 1009035800
115+
versionName "9.3.58-0"
116116
// Supported language variants must be declared here to avoid from being removed during the compilation.
117117
// This also helps us to not include unnecessary language variants in the APK.
118118
resConfigs "en", "es"

assets/images/camera-flip.svg

Lines changed: 0 additions & 1 deletion
This file was deleted.
Lines changed: 1 addition & 1 deletion
Loading

contributingGuides/NAVIGATION.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -702,7 +702,7 @@ A dynamic route is a URL suffix (e.g. `verify-account`) that can be appended to
702702

703703
Do not use dynamic routes when:
704704
- Your use case falls under the [current limitations](#current-limitations-work-in-progress):
705-
- You need path parameters in dynamic suffixes (e.g. `a/:reportID`).
705+
- You need optional path parameters in dynamic suffixes (e.g. `a/:reportID?`).
706706
- The screen has a single, fixed entry and a fixed back destination. In this case, use a normal static route instead.
707707

708708
### Dynamic routes configuration
@@ -751,9 +751,9 @@ KEYBOARD_SHORTCUTS: {
751751

752752
### Current limitations (work in progress)
753753

754-
- **Path parameters:** Suffixes must not include path params (e.g. `a/:reportID`). Query parameters are supported - see [Dynamic routes with query parameters](#dynamic-routes-with-query-parameters).
754+
- **Optional path parameters:** Suffixes must not include optional path params (e.g. `a/:reportID?`). Required path parameters (e.g. `flag/:reportActionID`) and query parameters are supported - see [Dynamic routes with query parameters](#dynamic-routes-with-query-parameters).
755755

756-
If you try to use dynamic routes for this case now, you will either fail to navigate to the page at all or end up on a non-existent page, and the navigation will be broken.
756+
If you try to use dynamic routes with optional path parameters now, you will either fail to navigate to the page at all or end up on a non-existent page, and the navigation will be broken.
757757

758758
### Multi-segment dynamic routes
759759

@@ -892,9 +892,7 @@ and [`src/pages/settings/Profile/PersonalDetails/DynamicCountrySelectionPage.tsx
892892
### How to add a new dynamic route
893893

894894
1. Add to `DYNAMIC_ROUTES` in [`src/ROUTES.ts`](../src/ROUTES.ts): define `path` and
895-
`entryScreens` (screen names that may open this route).
896-
If the suffix needs query parameters, also define `getRoute`
897-
and `queryParams` - see
895+
`entryScreens` (screen names that may open this route). If the suffix needs path parameters, define `path` with `:param` placeholders and a `getRoute` function. If the suffix needs query parameters, also define `getRoute` and `queryParams` - see
898896
[Dynamic routes with query parameters](#dynamic-routes-with-query-parameters).
899897
2. Add a screen constant in [`src/SCREENS.ts`](../src/SCREENS.ts).
900898
The name must start with the `DYNAMIC_` prefix

cspell.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -554,6 +554,7 @@
554554
"picklists",
555555
"PINATM",
556556
"PINGPONG",
557+
"PINATM",
557558
"pkill",
558559
"Pluginfile",
559560
"pluralrules",

docs/_config.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ defaults:
1515
layout: "default"
1616
image: /assets/images/og-preview-image.png
1717

18-
exclude: [README.md, TEMPLATE.md, vendor]
18+
exclude: [README.md, TEMPLATE.md, vendor, Gemfile, Gemfile.lock]
1919

2020
plugins:
2121
- jekyll-seo-tag

0 commit comments

Comments
 (0)