Skip to content

Commit

Permalink
Merge branch 'main' of github.com:Expensify/App into perf/search-rout…
Browse files Browse the repository at this point in the history
…er-list-only-get-participants-when-needed-2
  • Loading branch information
hannojg committed Mar 7, 2025
2 parents ec5a093 + d414689 commit 850020f
Show file tree
Hide file tree
Showing 1,696 changed files with 53,164 additions and 28,593 deletions.
2 changes: 2 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
ENVIRONMENT=development
NEW_EXPENSIFY_URL=https://new.expensify.com/
SECURE_EXPENSIFY_URL=https://secure.expensify.com.dev/
EXPENSIFY_URL=https://www.expensify.com.dev/
Expand Down Expand Up @@ -30,6 +31,7 @@ EXPENSIFY_ACCOUNT_ID_RECEIPTS=-1
EXPENSIFY_ACCOUNT_ID_REWARDS=-1
EXPENSIFY_ACCOUNT_ID_STUDENT_AMBASSADOR=-1
EXPENSIFY_ACCOUNT_ID_SVFG=-1
EXPENSIFY_ACCOUNT_ID_MANAGER_MCTEST=-1

FB_API_KEY=YOUR_API_KEY
FB_APP_ID=YOUR_APP_ID
Expand Down
2 changes: 1 addition & 1 deletion .env.staging
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,4 @@ EXPENSIFY_PARTNER_PASSWORD=e21965746fd75f82bb66
PUSHER_APP_KEY=268df511a204fbb60884
USE_WEB_PROXY=false
ENVIRONMENT=staging
SEND_CRASH_REPORTS=true
SEND_CRASH_REPORTS=true
1 change: 1 addition & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ web/gtm.js
src/libs/SearchParser/searchParser.js
src/libs/SearchParser/autocompleteParser.js
help/_scripts/**
Mobile-Expensify/**
6 changes: 0 additions & 6 deletions .eslintrc.changed.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,6 @@ module.exports = {
],
},
overrides: [
{
files: ['src/pages/workspace/WorkspaceInitialPage.tsx', 'src/pages/home/report/PureReportActionItem.tsx', 'src/libs/SidebarUtils.ts'],
rules: {
'rulesdir/no-default-id-values': 'off',
},
},
{
files: ['**/libs/**/*.{ts,tsx}'],
rules: {
Expand Down
16 changes: 14 additions & 2 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,10 @@ const restrictedImportPaths = [
importNames: ['memoize'],
message: "Please use '@src/libs/memoize' instead.",
},
{
name: 'react-native-animatable',
message: "Please use 'react-native-reanimated' instead.",
},
];

const restrictedImportPatterns = [
Expand Down Expand Up @@ -118,7 +122,7 @@ module.exports = {
'plugin:@typescript-eslint/recommended-type-checked',
'plugin:@typescript-eslint/stylistic-type-checked',
'plugin:you-dont-need-lodash-underscore/all',
'plugin:prettier/recommended',
'prettier',
],
plugins: ['@typescript-eslint', 'jsdoc', 'you-dont-need-lodash-underscore', 'react-native-a11y', 'react', 'testing-library', 'eslint-plugin-react-compiler', 'lodash', 'deprecation'],
parser: '@typescript-eslint/parser',
Expand Down Expand Up @@ -146,8 +150,14 @@ module.exports = {
{
selector: ['variable', 'property'],
format: ['camelCase', 'UPPER_CASE', 'PascalCase'],
// This filter excludes variables and properties that start with "private_" to make them valid.
//
// Examples:
// - "private_a" → valid
// - "private_test" → valid
// - "private_" → not valid
filter: {
regex: '^private_[a-z][a-zA-Z0-9]+$',
regex: '^private_[a-z][a-zA-Z0-9]*$',
match: false,
},
},
Expand Down Expand Up @@ -193,6 +203,7 @@ module.exports = {
'es/no-nullish-coalescing-operators': 'off',
'es/no-optional-chaining': 'off',
'deprecation/deprecation': 'off',
'arrow-body-style': 'off',

// Import specific rules
'import/consistent-type-specifier-style': ['error', 'prefer-top-level'],
Expand Down Expand Up @@ -298,6 +309,7 @@ module.exports = {
'jsdoc/no-types': 'off',
'react/jsx-filename-extension': 'off',
'rulesdir/no-default-props': 'off',
'prefer-arrow-callback': 'off',
},
},
{
Expand Down
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)
4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ PROPOSAL:


<!---
If you want to trigger adhoc build of hybrid app from specific Mobile-Expensify PR please specify it like follows:
If you want to trigger adhoc build of hybrid app from specific Mobile-Expensify PR please link it like this:
MOBILE-EXPENSIFY: PR number
MOBILE-EXPENSIFY: https://github.com/Expensify/Mobile-Expensify/pull/<PR-number>
--->

Expand Down
10 changes: 9 additions & 1 deletion .github/actionlint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,13 @@ self-hosted-runner:
- ubuntu-latest-xl
- macos-15-large
- macos-15-xlarge
- ubuntu-latest-reassure-tests
- macos-12
- ubuntu-24.04-v4

paths:
'**/*':
ignore:
# This is meant to be a temporary workaround for a bug in actionslint. Upstream:
# - issue: https://github.com/rhysd/actionlint/issues/511
# - PR: https://github.com/rhysd/actionlint/pull/513
- '"env" is not allowed in "runs" section because .* is a Composite action.*'
31 changes: 0 additions & 31 deletions .github/actions/composite/setupGitForOSBotify/action.yml

This file was deleted.

73 changes: 0 additions & 73 deletions .github/actions/composite/setupGitForOSBotifyApp/action.yml

This file was deleted.

11 changes: 8 additions & 3 deletions .github/actions/composite/setupNode/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ inputs:
description: "Indicates if node is set up for hybrid app"
required: false
default: 'false'
IS_DESKTOP_BUILD:
description: "Indicates if node is set up for desktop app"
required: false
default: 'false'

outputs:
cache-hit:
Expand All @@ -31,8 +35,8 @@ runs:
uses: actions/cache@v4
with:
path: node_modules
key: ${{ runner.os }}-node-modules-${{ hashFiles('package-lock.json', 'patches/**') }}

key: ${{ inputs.IS_HYBRID_BUILD == 'true' && format('{0}-node-modules-{1}', runner.os, hashFiles('package-lock.json', 'patches/**', 'Mobile-Expensify/patches/**')) || format('{0}-node-modules-{1}', runner.os, hashFiles('package-lock.json', 'patches/**'))}}
- id: cache-old-dot-node-modules
if: inputs.IS_HYBRID_BUILD == 'true'
uses: actions/cache@v4
Expand All @@ -41,6 +45,7 @@ runs:
key: ${{ runner.os }}-node-modules-${{ hashFiles('Mobile-Expensify/package-lock.json', 'Mobile-Expensify/patches/**') }}

- id: cache-desktop-node-modules
if: inputs.IS_DESKTOP_BUILD == 'true'
uses: actions/cache@v4
with:
path: desktop/node_modules
Expand All @@ -60,7 +65,7 @@ runs:
command: npm ci

- name: Install node packages for desktop submodule
if: steps.cache-desktop-node-modules.outputs.cache-hit != 'true'
if: inputs.IS_DESKTOP_BUILD == 'true' && steps.cache-desktop-node-modules.outputs.cache-hit != 'true'
uses: nick-fields/retry@3f757583fb1b1f940bc8ef4bf4734c8dc02a5847
with:
timeout_minutes: 30
Expand Down
45 changes: 45 additions & 0 deletions .github/actions/composite/validateActor/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: Validate actor
description: Validate the the current actor has the permissions they need. By default, it validates that the user has write permissions.

inputs:
# If `REQUIRE_APP_DEPLOYER` is true, we check that they're an app deployer. If not, we just check that they have write access.
REQUIRE_APP_DEPLOYER:
description: Should this action require the actor to be an app deployer?
required: false
default: 'true'
OS_BOTIFY_TOKEN:
description: OSBotify token. Needed to access certain API endpoints the regular github.token can't
required: true

runs:
using: composite
steps:
- name: Get user permissions
if: ${{ !fromJSON(inputs.REQUIRE_APP_DEPLOYER) }}
id: getUserPermissions
shell: bash
run: |
PERMISSION=$(gh api /repos/${{ github.repository }}/collaborators/${{ github.actor }}/permission | jq -r '.permission')
if [[ "$PERMISSION" == 'write' || "$PERMISSION" == 'admin' ]]; then
echo "::notice::✅ Actor ${{ github.actor }} has write permission"
else
echo "::error::❌ Actor ${{ github.actor }} does not have write permission"
exit 1
fi
env:
GITHUB_TOKEN: ${{ inputs.OS_BOTIFY_TOKEN }}

- name: Check if user is deployer
id: isUserDeployer
if: fromJSON(inputs.REQUIRE_APP_DEPLOYER)
shell: bash
run: |
if [[ "${{ github.actor }}" == "OSBotify" || "${{ github.actor }}" == "os-botify[bot]" ]] || \
gh api /orgs/Expensify/teams/mobile-deployers/memberships/${{ github.actor }} --silent; then
echo "::notice::✅ Actor ${{ github.actor }} is an app deployer"
else
echo "::error::❌ Actor ${{ github.actor }} is not an app deployer"
exit 1
fi
env:
GITHUB_TOKEN: ${{ inputs.OS_BOTIFY_TOKEN }}
11 changes: 6 additions & 5 deletions .github/actions/javascript/authorChecklist/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17242,8 +17242,9 @@ exports["default"] = newComponentCategory;
Object.defineProperty(exports, "__esModule", ({ value: true }));
const GITHUB_BASE_URL_REGEX = new RegExp('https?://(?:github\\.com|api\\.github\\.com)');
const GIT_CONST = {
GITHUB_OWNER: 'Expensify',
APP_REPO: 'App',
GITHUB_OWNER: process.env.GITHUB_REPOSITORY_OWNER,
APP_REPO: process.env.GITHUB_REPOSITORY.split('/').at(1) ?? '',
MOBILE_EXPENSIFY_REPO: 'Mobile-Expensify',
};
const CONST = {
...GIT_CONST,
Expand Down Expand Up @@ -17532,7 +17533,7 @@ class GithubUtils {
const sortedDeployBlockers = [...new Set(deployBlockers)].sort((a, b) => GithubUtils.getIssueOrPullRequestNumberFromURL(a) - GithubUtils.getIssueOrPullRequestNumberFromURL(b));
// Tag version and comparison URL
// eslint-disable-next-line max-len
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/Expensify/App/compare/production...staging\r\n`;
let issueBody = `**Release Version:** \`${tag}\`\r\n**Compare Changes:** https://github.com/${process.env.GITHUB_REPOSITORY}/compare/production...staging\r\n`;
// PR list
if (sortedPRList.length > 0) {
issueBody += '\r\n**This release contains changes from the following pull requests:**\r\n';
Expand Down Expand Up @@ -17570,9 +17571,9 @@ class GithubUtils {
// eslint-disable-next-line max-len
issueBody += `\r\n- [${isTimingDashboardChecked ? 'x' : ' '}] I checked the [App Timing Dashboard](https://graphs.expensify.com/grafana/d/yj2EobAGz/app-timing?orgId=1) and verified this release does not cause a noticeable performance regression.`;
// eslint-disable-next-line max-len
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) for **this release version** and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/ios:com.expensify.expensifylite/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **this release version** and verified that this release does not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;
// eslint-disable-next-line max-len
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-chat/crashlytics/app/android:com.expensify.chat/issues?state=open&time=last-seven-days&tag=all) for **the previous release version** and verified that the release did not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;
issueBody += `\r\n- [${isFirebaseChecked ? 'x' : ' '}] I checked [Firebase Crashlytics](https://console.firebase.google.com/u/0/project/expensify-mobile-app/crashlytics/app/android:org.me.mobiexpensifyg/issues?state=open&time=last-seven-days&types=crash&tag=all&sort=eventCount) for **the previous release version** and verified that the release did not introduce any new crashes. More detailed instructions on this verification can be found [here](https://stackoverflowteams.com/c/expensify/questions/15095/15096).`;
// eslint-disable-next-line max-len
issueBody += `\r\n- [${isGHStatusChecked ? 'x' : ' '}] I checked [GitHub Status](https://www.githubstatus.com/) and verified there is no reported incident with Actions.`;
issueBody += '\r\n\r\ncc @Expensify/applauseleads\r\n';
Expand Down
Loading

0 comments on commit 850020f

Please sign in to comment.