Skip to content

Commit

Permalink
Merge branch 'main' into 289Adam289/57074-57071-fix-deploy-blockers
Browse files Browse the repository at this point in the history
  • Loading branch information
289Adam289 committed Feb 19, 2025
2 parents 92407fb + 7b66f1c commit 4ff12ca
Show file tree
Hide file tree
Showing 40 changed files with 370 additions and 90 deletions.
32 changes: 32 additions & 0 deletions .github/ISSUE_TEMPLATE/ExpertContributorChangeRequest.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
---
name: Add or remove expert contributor from the team
about: In order to get access to the HybridApp setup, expert contributors need to be added to our Github Organization. They also need to be added to the necessary rooms in Slack
title: "Expert Contributor Change Request - <insert-name>"
labels: Daily, Task, ring0
---

### Expert Contributor Details

- Name:
- Github handle (or Github profile link):
- Email:
- Slack post in your team channel with this request for visibility:
- Team (check your team):
- [ ] Callstack
- [ ] Margelo
- [ ] Software Mansion

Do you want to remove this developer from the team? YES/NO

### Tasks for ring0 assignee

- [ ] Add to the appropriate GitHub child team of [external-expert-contributors](https://github.com/orgs/Expensify/teams/external-expert-contributors/teams) (each agency must have its own child team)
- [ ] Add to Slack channels using Slack Connect:
- [ ] [#quality](https://expensify.enterprise.slack.com/archives/C05LX9D6E07)
- [ ] [#convert](https://expensify.enterprise.slack.com/archives/C07HPDRELLD)
- [ ] [#retain](https://expensify.enterprise.slack.com/archives/C07NZ8B1VTQ)
- [ ] [#migrate](https://expensify.enterprise.slack.com/archives/C07NMDKEFMH)
- [ ] [#expense](https://expensify.enterprise.slack.com/archives/C06ML6X0W9L)
- [ ] [#expensify-bugs](https://expensify.enterprise.slack.com/archives/C049HHMV9SM)
- [ ] [#expensify-open-source](https://expensify.enterprise.slack.com/archives/C01GTK53T8Q)
- [ ] [#expert-contributors](https://expensify.enterprise.slack.com/archives/C08CZDJFJ77)
97 changes: 93 additions & 4 deletions .github/workflows/compareNDandODbuilds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,111 @@ name: Build and profile Android apps

on:
workflow_dispatch:
inputs:
PULL_REQUEST_NUMBER:
description: Pull request number to build the app from
required: false
default: ''
OLD_DOT_PULL_REQUEST_NUMBER:
description: Old Dot Pull request number to build the app from
required: false
default: ''

jobs:
getBranchRef:
runs-on: ubuntu-latest
outputs:
REF: ${{ steps.getHeadRef.outputs.REF }}
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Get NewDot PR commit SHA
id: getHeadRef
run: |
set -e
if [[ -z "${{ github.event.inputs.PULL_REQUEST_NUMBER }}" ]]; then
echo "REF=" >> "$GITHUB_OUTPUT"
else
echo "REF=$(gh pr view ${{ github.event.inputs.PULL_REQUEST_NUMBER }} --json headRefOid --jq '.headRefOid')" >> "$GITHUB_OUTPUT"
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

getOldDotBranchRef:
runs-on: ubuntu-latest
outputs:
OLD_DOT_REF: ${{ steps.getHeadRef.outputs.REF }}
steps:
- name: Get OD PR commit SHA
id: getHeadRef
run: |
set -e
if [[ -z "${{ github.event.inputs.OLD_DOT_PULL_REQUEST_NUMBER }}" ]]; then
echo "REF=" >> "$GITHUB_OUTPUT"
else
echo "REF=$(gh pr view ${{ github.event.inputs.OLD_DOT_PULL_REQUEST_NUMBER }} -R Expensify/Mobile-Expensify --json headRefOid --jq '.headRefOid')" >> "$GITHUB_OUTPUT"
fi
env:
GITHUB_TOKEN: ${{ secrets.OS_BOTIFY_TOKEN }}


postGitHubCommentBuildStarted:
runs-on: ubuntu-latest
needs: [getBranchRef, getOldDotBranchRef]
steps:
- name: Add comment to ND PR
if: ${{ github.event.inputs.PULL_REQUEST_NUMBER != ''}}
uses: actions/github-script@v7
with:
github-token: ${{ github.token }}
script: |
const workflowURL = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`;
github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: ${{ github.event.inputs.PULL_REQUEST_NUMBER }},
body: `🚧 @${{ github.actor }} has triggered build profiling. You can view the [workflow run here](${workflowURL}).`
});
- name: Add comment to OD PR
if: ${{ github.event.inputs.OLD_DOT_PULL_REQUEST_NUMBER != '' }}
uses: actions/github-script@v7
with:
github-token: ${{ secrets.OS_BOTIFY_TOKEN }}
script: |
const workflowURL = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}`;
github.rest.issues.createComment({
owner: context.repo.owner,
repo: 'Mobile-Expensify',
issue_number: ${{ github.event.inputs.OLD_DOT_PULL_REQUEST_NUMBER }},
body: `🚧 @${{ github.actor }} has triggered build profiling. You can view the [workflow run here](${workflowURL}).`
});
buildHybridAppAndroid:
name: Build HybridApp Android
needs: [getBranchRef, getOldDotBranchRef]
runs-on: ubuntu-latest-xl
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: true
ref: ${{ needs.getBranchRef.outputs.REF || 'main' }}
token: ${{ secrets.OS_BOTIFY_TOKEN }}
fetch-depth: 0

- name: Update submodule to match main
run: |
git submodule update --init --remote
- name: Checkout OldDot if PR specified
if: ${{ needs.getOldDotBranchRef.outputs.OLD_DOT_REF != '' }}
run: |
cd Mobile-Expensify
git fetch
git checkout main
git fetch origin ${{ needs.getOldDotBranchRef.outputs.OLD_DOT_REF }}
git checkout ${{ needs.getOldDotBranchRef.outputs.OLD_DOT_REF }}
- name: Configure MapBox SDK
run: ./scripts/setup-mapbox-sdk.sh ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }}
Expand Down Expand Up @@ -58,7 +145,7 @@ jobs:
OP_SERVICE_ACCOUNT_TOKEN: ${{ secrets.OP_SERVICE_ACCOUNT_TOKEN }}
run: |
op read "op://${{ vars.OP_VAULT }}/android-fastlane-json-key.json/android-fastlane-json-key.json" --force --out-file ./android-fastlane-json-key.json
op read "op://${{ vars.OP_VAULT }}/New Expensify my-upload-key.keystore/my-upload-key.keystore" --force --out-file ./my-upload-key.keystore
op read "op://${{ vars.OP_VAULT }}/upload-key.keystore/upload-key.keystore" --force --out-file ./upload-key.keystore
# Copy the keystore to the Android directory for Fullstory
cp ./upload-key.keystore Mobile-Expensify/Android
Expand Down Expand Up @@ -90,12 +177,14 @@ jobs:
buildStandaloneAndroid:
name: Build Standalone Android
needs: [getBranchRef]
runs-on: ubuntu-latest-xl
steps:
- name: Checkout
uses: actions/checkout@v4
with:
token: ${{ secrets.OS_BOTIFY_TOKEN }}
ref: ${{ needs.getBranchRef.outputs.REF || 'main' }}

- name: Configure MapBox SDK
run: ./scripts/setup-mapbox-sdk.sh ${{ secrets.MAPBOX_SDK_DOWNLOAD_TOKEN }}
Expand All @@ -105,7 +194,7 @@ jobs:
uses: ./.github/actions/composite/setupNode
with:
IS_HYBRID_BUILD: 'false'

- name: Install 1Password CLI
uses: 1password/install-cli-action@v1

Expand Down
3 changes: 3 additions & 0 deletions .github/workflows/testBuildHybrid.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,9 @@ jobs:
prep:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Validate that user is an Expensify employee
uses: ./.github/actions/composite/validateActor
with:
Expand Down
2 changes: 1 addition & 1 deletion Mobile-Expensify
4 changes: 2 additions & 2 deletions android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -114,8 +114,8 @@ android {
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
multiDexEnabled rootProject.ext.multiDexEnabled
versionCode 1009010100
versionName "9.1.1-0"
versionCode 1009010103
versionName "9.1.1-3"
// Supported language variants must be declared here to avoid from being removed during the compilation.
// This also helps us to not include unnecessary language variants in the APK.
resConfigs "en", "es"
Expand Down
11 changes: 10 additions & 1 deletion assets/images/document.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
15 changes: 15 additions & 0 deletions assets/images/simple-illustration__report-receipt.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions docs/redirects.csv
Original file line number Diff line number Diff line change
Expand Up @@ -642,3 +642,4 @@ https://help.expensify.com/articles/expensify-classic/travel/Book-with-Expensify
https://help.expensify.com/articles/expensify-classic/travel/Configure-travel-policy-and-preferences.md,https://help.expensify.com/articles/new-expensify/travel/Configure-travel-policy-and-preferences
https://help.expensify.com/articles/expensify-classic/travel/Track-Travel-Analytics.md,https://help.expensify.com/articles/new-expensify/travel/Track-Travel-Analytics
https://help.expensify.com/articles/expensify-classic/connections/ADP,https://help.expensify.com/articles/expensify-classic/connections/Connect-to-ADP
https://help.expensify.com/articles/expensify-classic/travel,https://help.expensify.com/new-expensify/hubs/travel/
2 changes: 1 addition & 1 deletion ios/NewExpensify/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
<string>9.1.1.0</string>
<string>9.1.1.3</string>
<key>FullStory</key>
<dict>
<key>OrgId</key>
Expand Down
2 changes: 1 addition & 1 deletion ios/NewExpensifyTests/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>9.1.1.0</string>
<string>9.1.1.3</string>
</dict>
</plist>
2 changes: 1 addition & 1 deletion ios/NotificationServiceExtension/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
<key>CFBundleShortVersionString</key>
<string>9.1.1</string>
<key>CFBundleVersion</key>
<string>9.1.1.0</string>
<string>9.1.1.3</string>
<key>NSExtension</key>
<dict>
<key>NSExtensionPointIdentifier</key>
Expand Down
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "new.expensify",
"version": "9.1.1-0",
"version": "9.1.1-3",
"author": "Expensify, Inc.",
"homepage": "https://new.expensify.com",
"description": "New Expensify is the next generation of Expensify: a reimagination of payments based atop a foundation of chat.",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/node_modules/react-native-reanimated/Common/cpp/reanimated/NativeModules/NativeReanimatedModule.cpp b/node_modules/react-native-reanimated/Common/cpp/reanimated/NativeModules/NativeReanimatedModule.cpp
index 08d65fe..68d41c9 100644
--- a/node_modules/react-native-reanimated/Common/cpp/reanimated/NativeModules/NativeReanimatedModule.cpp
+++ b/node_modules/react-native-reanimated/Common/cpp/reanimated/NativeModules/NativeReanimatedModule.cpp
@@ -244,7 +244,7 @@ jsi::Value NativeReanimatedModule::createWorkletRuntime(
jsQueue_,
jsScheduler_,
name.asString(rt).utf8(rt),
- false /* supportsLocking */,
+ true /* supportsLocking */,
valueUnpackerCode_);
auto initializerShareable = extractShareableOrThrow<ShareableWorklet>(
rt, initializer, "[Reanimated] Initializer must be a worklet.");
3 changes: 3 additions & 0 deletions src/CONST.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6173,6 +6173,9 @@ const CONST = {
ASC: 'asc',
DESC: 'desc',
},
GROUP_BY: {
REPORTS: 'reports',
},
STATUS: {
EXPENSE: {
ALL: 'all',
Expand Down
11 changes: 9 additions & 2 deletions src/ROUTES.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,9 @@ const ROUTES = {

SEARCH_ROOT: {
route: 'search',
getRoute: ({query, name}: {query: SearchQueryString; name?: string}) => `search?q=${encodeURIComponent(query)}${name ? `&name=${name}` : ''}` as const,
getRoute: ({query, name, groupBy}: {query: SearchQueryString; name?: string; groupBy?: string}) => {
return `search?q=${encodeURIComponent(query)}${groupBy ? `&groupBy=${groupBy}` : ''}${name ? `&name=${name}` : ''}` as const;
},
},
SEARCH_SAVED_SEARCH_RENAME: {
route: 'search/saved-search/rename',
Expand Down Expand Up @@ -2112,7 +2114,12 @@ const ROUTES = {
},
DEBUG_REPORT_ACTION: {
route: 'debug/report/:reportID/actions/:reportActionID',
getRoute: (reportID: string, reportActionID: string) => `debug/report/${reportID}/actions/${reportActionID}` as const,
getRoute: (reportID: string | undefined, reportActionID: string) => {
if (!reportID) {
Log.warn('Invalid reportID is used to build the DEBUG_REPORT_ACTION route');
}
return `debug/report/${reportID}/actions/${reportActionID}` as const;
},
},
DEBUG_REPORT_ACTION_CREATE: {
route: 'debug/report/:reportID/actions/create',
Expand Down
2 changes: 2 additions & 0 deletions src/components/Icon/Illustrations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ import TeleScope from '@assets/images/product-illustrations/telescope.svg';
import ThreeLeggedLaptopWoman from '@assets/images/product-illustrations/three_legged_laptop_woman.svg';
import ToddBehindCloud from '@assets/images/product-illustrations/todd-behind-cloud.svg';
import ToddWithPhones from '@assets/images/product-illustrations/todd-with-phones.svg';
import ReportReceipt from '@assets/images/simple-illustration__report-receipt.svg';
import BigVault from '@assets/images/simple-illustrations/emptystate__big-vault.svg';
import Puzzle from '@assets/images/simple-illustrations/emptystate__puzzlepieces.svg';
import Abacus from '@assets/images/simple-illustrations/simple-illustration__abacus.svg';
Expand Down Expand Up @@ -306,4 +307,5 @@ export {
WellsFargoCompanyCardDetailLarge,
Flash,
ExpensifyMobileApp,
ReportReceipt,
};
12 changes: 10 additions & 2 deletions src/components/Search/SearchPageHeader/SearchPageHeader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,11 +39,18 @@ import ROUTES from '@src/ROUTES';
import type DeepValueOf from '@src/types/utils/DeepValueOf';
import SearchPageHeaderInput from './SearchPageHeaderInput';

type SearchPageHeaderProps = {queryJSON: SearchQueryJSON; searchName?: string; searchRouterListVisible?: boolean; hideSearchRouterList?: () => void; onSearchRouterFocus?: () => void};
type SearchPageHeaderProps = {
queryJSON: SearchQueryJSON;
searchName?: string;
searchRouterListVisible?: boolean;
hideSearchRouterList?: () => void;
onSearchRouterFocus?: () => void;
shouldGroupByReports?: boolean;
};

type SearchHeaderOptionValue = DeepValueOf<typeof CONST.SEARCH.BULK_ACTION_TYPES> | undefined;

function SearchPageHeader({queryJSON, searchName, searchRouterListVisible, hideSearchRouterList, onSearchRouterFocus}: SearchPageHeaderProps) {
function SearchPageHeader({queryJSON, searchName, searchRouterListVisible, hideSearchRouterList, onSearchRouterFocus, shouldGroupByReports}: SearchPageHeaderProps) {
const {translate} = useLocalize();
const theme = useTheme();
const styles = useThemeStyles();
Expand Down Expand Up @@ -417,6 +424,7 @@ function SearchPageHeader({queryJSON, searchName, searchRouterListVisible, hideS
searchName={searchName}
hideSearchRouterList={hideSearchRouterList}
inputRightComponent={InputRightComponent}
shouldGroupByReports={shouldGroupByReports}
/>
<ConfirmModal
isVisible={isDeleteExpensesConfirmModalVisible}
Expand Down
Loading

0 comments on commit 4ff12ca

Please sign in to comment.