Commit Graph

124 Commits

Author SHA1 Message Date
jayssj11
c269e66f10 Feat/push to dev main (#767)
* feat: add version management system with build number tracking

- Add version.json to track iOS/Android build numbers separately
- Create version.cjs script for build number management
- Add Fastlane version_manager.rb helper
- Keep npm version for semver, version.json for build tracking

* feat: integrate version.json with Fastlane deployment process

## What Changed
- Updated iOS and Android Fastlane lanes to use version.json for build number management
- Added automatic build number increment on deployment
- Added deployment timestamp tracking

## How It Works

### iOS Deployment
1. Reads current build number from version.json
2. Increments iOS build number (e.g., 148 → 149)
3. Updates Xcode project with new build number via increment_build_number
4. Proceeds with TestFlight deployment
5. Updates lastDeployed timestamp on successful upload

### Android Deployment
1. Reads current build number from version.json
2. Increments Android build number (e.g., 82 → 83)
3. Updates build.gradle with new version code via increment_version_code
4. Proceeds with Play Store deployment
5. Updates lastDeployed timestamp on successful upload

## Why This Change
- Eliminates manual version/build number entry
- Prevents version conflicts between deployments
- Provides single source of truth for build numbers
- Enables automatic deployments without human intervention
- Tracks deployment history with timestamps

## Dependencies
- Requires version.json file (already created in previous commit)
- Uses existing Fastlane plugins:
  - increment_build_number (iOS - built-in)
  - increment_version_code (Android - from plugin)
- Version numbers still managed by npm version command

* feat: enhance deploy confirmation with version.json info

* fix: use ENV variable directly in increment_build_number to avoid secret masking

* fix: correct xcodeproj path for GitHub Actions workflow

* feat: add test mode to workflow for safe testing

- Skip store uploads when test_mode is true
- Test version bumps and builds without deployment
- Prevent accidental pushes to TestFlight/Play Store

* fix: use gradle_file_path instead of gradle_file for increment_version_code

* fix: use gsub to remove ../ prefix for CI compatibility

* chore: remove accidentally committed files

- Remove .cursor/mcp.json
- Remove .cursorignore
- Remove deployment-automation-summary.md
- Remove deployment-meeting-questions.md
- Remove pipeline.md

* feat: auto-commit version.json after successful deployment

- Commits version.json changes back to repository
- Only runs when test_mode is false
- Uses [skip ci] to prevent infinite loops
- Checks for actual changes before committing

* feat : update package.json in build step using npm version

* feat: add comprehensive caching to mobile deployment workflow

- Add caching for Yarn dependencies, Ruby gems, CocoaPods, Gradle, and Android NDK
- Implement cache versioning strategy for easy cache invalidation
- Fix cache order: caches now restored after checkout but before dependency installation
- Update mobile-setup action to skip installs when dependencies are cached
- Add cache size monitoring to track usage against GitHub's 10GB limit
- Fix Slack notification bug: skip notifications in test_mode
- Add detailed logging for package.json version updates (show from/to versions)

Expected performance improvement: ~50% faster builds (from ~15min to ~7-10min)

* fix: move bundler config after Ruby setup in mobile-setup action

* fix: rename cache env vars to avoid Yarn conflicts

Yarn was interpreting YARN_CACHE_VERSION as its own config setting.
Prefixed all cache version env vars with GH_ to avoid conflicts.

* fix: remove bundler deployment mode to allow Gemfile updates

The deployment mode was causing bundler to fail when Gemfile
changed (nokogiri was removed). CI should be able to update
the lockfile as needed.

* feat: implement strict lock file enforcement (Option 1)

- Re-enable bundler deployment mode for strict Gemfile.lock checking
- Use yarn install --immutable for strict yarn.lock checking
- Add clear error messages when lock files are out of date
- Add pre-checks to verify lock files exist
- This ensures reproducible builds and makes caching maximally effective

When developers change dependencies, they must now:
1. Run yarn install or bundle install locally
2. Commit the updated lock files
3. CI will fail with helpful instructions if they forget

* fix: update Gemfile.lock for CI environment

Remove nokogiri from Gemfile.lock since it's excluded in CI
environments (GITHUB_ACTIONS=true). This allows the strict
lock file checks to pass in CI.

* fix: correct yarn.lock path for monorepo workspace

The project uses Yarn workspaces with yarn.lock at the repository
root, not in the app directory. Updated paths to check for yarn.lock
at workspace root and use it for cache keys.

* fix: handle both boolean and string test_mode parameter

The test_mode parameter was only checking for string 'true' but
could be passed as boolean true from command line. Now handles both
cases to ensure test mode works correctly for iOS and Android.

* fix: address code review feedback for mobile deployment workflow

- Replace jq with Node.js for version extraction (jq not available on macOS runners)
- Fix concurrent commit race condition by creating separate update-version job
- Add platform validation to version_manager.rb and version.cjs scripts
- Use POSIX-compatible single = for shell string comparisons
- Ensure single atomic commit when deploying to both platforms

* fix: formatting and linting issues

- Remove trailing spaces from workflow YAML file
- Fix prettier formatting in JavaScript files
- Add -y flag to yarn version command for non-interactive mode
- Address all lint warnings from CI

* feat: implement automated branch-based mobile deployments

- Add mobile-deploy-auto.yml workflow that triggers on PR merges to dev/main
- Update mobile-deploy.yml to support workflow_call for reusability
- Add deployment_track, version_bump, and auto_deploy parameters
- Create new Fastlane lanes (deploy_auto) for iOS and Android
- Implement smart version bumping based on PR labels (major/minor/patch)
- Add graceful error handling for Play Store permission issues
- Enhance Slack notifications with deployment track information

This enables automatic deployments when PRs are merged:
- dev branch → internal testing track
- main branch → production track
- Skip deployment with [skip-deploy] in PR or no-deploy label

* feat: add automated git tagging and release system

- Add automatic git tagging for production deployments (v2.5.5, platform-specific tags)
- Create GitHub releases with changelogs for production deployments
- Add manual release script (yarn release) for version bumping and tagging
- Implement simple changelog generation from git history
- Add comprehensive deployment documentation in .github/MOBILE_DEPLOYMENT.md
- Update app/README.md with deployment commands and workflows

This completes the release automation system requested in the ticket for
manual tagging and versioning with automated changelogs and release notes.

---------

Co-authored-by: Jayaditya Gupta <nightmare@Jayadityas-MacBook-Pro.local>
2025-07-29 12:42:39 +08:00
jayssj11
62883dc075 fix: bump app version to 2.6.3 for iOS release 2025-07-28 07:09:06 +00:00
Justin Hernandez
bf3ef98c9d SEL-269: Update ESLint rules & lock prettier config (#781)
* Update ESLint config and lock prettier config

* Refine ESLint config and fix lint issues

* Apply eslint fixes

* Use socketIo alias (#782)

* move gesture handler

* save wip updates

* fix svg imports

* update tsconfig

* eslint updates

* eslint fixes

* improve ignore folders

* coderabbit feedback

* Fix style prop shorthands (#787)

* Expand view style props

* Expand remaining style props

* update types

* fix pipeline

* fix test env check

* nicer casting

* fix booleans

* update deeplink url handling and make it more robust

* add socket error handler
2025-07-24 21:17:54 -07:00
Justin Hernandez
18d25c392e Release new build v2.6.2 (#779)
* bump version and build

* ignore podfile
2025-07-21 22:08:08 -07:00
Aaron DeRuvo
83d016e4da lets start with coverage for app (#763)
* lets start with coverage for app

* lint

* better setup
2025-07-16 11:17:39 +02:00
Aaron DeRuvo
252f1ba1ef Start of Web App (#689) 2025-07-11 14:07:40 +02:00
Justin Hernandez
f98beea498 SEL-496: Add Firebase Remote Config and dev feature flag screen (#735)
* feat: add remote config support

* update lock

* tweak config logic. add feature flag viewing screen

* add tests

* allow for local overriding of feature flags

* save local override work

* save wip

* clean up ui

* update screen to handle multi value types

* fix tests

* cr feedback and fix tests

* remote config upates. fix tests, codex feedback
2025-07-05 17:29:26 -07:00
Justin Hernandez
223fe9e0de bump version (#743) 2025-07-05 10:06:22 -07:00
Justin Hernandez
b841b19d96 Improve manual mobile deploy workflow and docs (#728)
* Add basic Fastlane helper tests

* Upgrade fastlane and enhance helper tests (#738)

* simplify mobile deploy pipelines and make them manual. update readme

* update fastlane dev readme

* update tests and add helper script

* cr feedback, update tests, revert circuits package.json sort change

* tweaks

* fix slack

* cr feedback and fixes

* add better cjs eslint support

* save wip. add confirmation check script. update scripts

* remove auto increment feature

* migrate readme items over to DEV due to fastlane auto regen docs flow

* use regular xcode

* fix hermes compiler path

* coderabbit feedback

* reinstall when on local dev

* fix upload

* simplify

* simplify confirmation feedback with tests

* fix mobile deploys

* cr feedback

* test iOS building

* fix trigger logic

* cr feedback

* updates

* fix env var

* fix order

* re-enable upload to testflight for ios

* updated notes
2025-07-03 22:32:14 -07:00
Justin Hernandez
601cad5b48 Chore: new build for v2.6.0 ios 145 android 81 (#737)
* bump version and build

* properly bump app

* bump build
2025-07-03 12:50:12 -07:00
Seshanth.S🐺
f99f11a823 SEL-486: Fix unwrap DO (#718)
* update podfile: unwrapDO

* update lock

* bump version and builds

* bump build; forgot to enable logs

* fix version to not interfere with release

---------

Co-authored-by: Justin Hernandez <transphorm@gmail.com>
2025-07-03 11:04:05 -07:00
Justin Hernandez
f77cd80663 Temporarily disable recovery redirect and reminder prompts (#733)
* Revert "SEL-487: Prompt user to backup recovery phrase before registering (#715)"

This reverts commit fe14ac655e.

* revert update

* fix safe area context pkg

* Revert "SEL-487: Prompt user to backup recovery phrase before registering (#715)"

This reverts commit fe14ac655e.

* fix old flow

* more silent tests

* update lock files

* hard code return
2025-07-03 11:01:43 -07:00
Justin Hernandez
195688ddd9 update version to 2.6.0 and bump build numbers (#721) 2025-07-01 12:31:13 -07:00
Justin Hernandez
5435190199 SEL-444: Fix android cloud backup (#697)
* feat(android): migrate google backup

* update lock and google services config

* add bulk format command

* backup fixes

* working drive settings!!!!!!!!

* remove unneeded intent filter

* add tests

* coderabbit feedback

* coderabbit feedback

* abstract google method

* coderabbit feedback and fix test

* more coderabbit suggestions and tests fixes
2025-06-29 02:54:07 -07:00
Justin Hernandez
4e3f764f09 SEL-473: Add lint rule for BUSL headers (#698)
* chore(app): enforce license header via eslint

* update lock and order

* fix formatting
2025-06-29 02:09:12 -07:00
Justin Hernandez
9e74f11111 bump ios build and version (#669) 2025-06-23 15:42:21 -07:00
turnoffthiscomputer
0468719f9f App/eu id updates (#638)
* fix build issues

* generate disclosure proof with euids

* generate disclosure proof with euids

* Eu id updates 2 (#648)

* update vc_and_disclose_id test (dev branch) (#641)

* fix: vc_and_disclose_id test

* chore: yarn prettier

* Show modal on NFC scan error (#642)

* Add help button and error modal actions

* fix the screen management

* yarn nice

* Bump build v2.5.4: ios 132; android 71 (#631)

* bump version and build numbers

* remove tamagui/toast

* fix marketing version

* fix: update TD1 and TD3 checks (#643)

* bum yarn.lock

* add version and user defined data

---------

Co-authored-by: Vishalkulkarni45 <109329073+Vishalkulkarni45@users.noreply.github.com>
Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz>
Co-authored-by: Seshanth.S🐺 <35675963+seshanthS@users.noreply.github.com>

* remove the mock user define data

* get the useridentifier as a hash from the user defined data

* chore: add version and userDefinedData

* feat: use the version in register / dsc proofs as well

* update calculateUserIdentifierHash

* yarn nice

* refactor: consolidate user context data handling and update payload structure

* fix typing issues on sha1

* remove console.log(sha1)

* fix sha1 import

* refactor: streamline userDefinedData handling and adjust payload type for circuit

* refactor: update sha1 usage and enhance logging in calculateUserIdentifierHash

* yarn nice

* yarn lint common

* use ts-ignore for sha1 import

* fix app ci tests

* fix typing issue

* remove unused ts-ignore

* cast uuid before calling generateinputs

* bump qrcode version

* add tsup on the qrcode sdk

* fix: exports on selfxyz/qrcode

* update how we define config.version

* fix yarn imports

* yarn format

---------

Co-authored-by: Vishalkulkarni45 <109329073+Vishalkulkarni45@users.noreply.github.com>
Co-authored-by: Justin Hernandez <justin.hernandez@self.xyz>
Co-authored-by: Seshanth.S🐺 <35675963+seshanthS@users.noreply.github.com>
Co-authored-by: Ayman <aymanshaik1015@gmail.com>
2025-06-23 13:01:23 +02:00
Justin Hernandez
ae0dca3c38 Bump build: ios 133; android 72 and build fixes (#654)
* update gesture version and bump android build

* bump and fix ios build

* update lock files

* fixes

* fix fotoapparat library source
2025-06-21 09:55:50 -07:00
Justin Hernandez
e4541a831a Bump build v2.5.4: ios 132; android 71 (#631)
* bump version and build numbers

* remove tamagui/toast

* fix marketing version
2025-06-18 07:52:38 -07:00
Aaron DeRuvo
d7871cd091 remove tamagui toast as we dont use and remove burnt as it was just a peer dep of toast (#610) 2025-06-12 11:13:37 -07:00
Justin Hernandez
5b6a2535bf Bump version 2.5.3: build ios 129; android 69 (#609)
* bump builds

* update lock

* bump version

* commit lock

* bump build

* bump ios build
2025-06-11 15:09:51 -07:00
turnoffthiscomputer
7a8678b72d add euid support in app (#559)
* add euid support in app

* yarn nice

* add euid support to proving machine

* update provingMachine and add id endpoints

* fix circuitsDNSmapping

* fix proving

* fix validateDocument

* add todo comment

* add the skip PCR0 option

* set multiple passportData types

* allow storing different id documents

* fix wording

* use goback on the passportOboardingScreen

* update tamagui version

* update yarn.lock

* remove logs in mockdata screen

* remove SKIP_PRC0_CHECK const

* refactor passport data keychain storage

* update project.pbxproj

* yarn nice

* yarn nice

* fix imports

* yarn nice

* add ManageDocuments screen to tests

* update name of the ManageDocument screen in the settings

* run linter in common repo

* clean mrz before doing the length check on android
2025-06-11 13:19:49 -07:00
Justin Hernandez
65b5f8a389 Bump build ios 128 android 67 (#601)
* bump build

* update clean commands

* add notification tracking provider, and update provider paths

* request permission for firebase cloud messaging

* since the app asks for permissions, let's enable this after configuring the APN

* remove monorepo building as it doesn't affect app build success

* add flags to expose build issues

* fix hermes path

* fix hermes path for emulator and bundle build
2025-06-07 07:36:06 -07:00
Justin Hernandez
6d27b365c7 Bump build to test PACE polling (ios 127; android 66) (#591)
* bump builds

* update env.sample with new env vars, and add _NFC to mixpanel nfc var

* remove NDEF so we can keep target sdk version at 15

* add sort package json command

* sort all project package.json files

* enable hermes

* disable hermes

* revert disabling

* remove hermes
2025-06-06 07:29:26 -07:00
Aaron DeRuvo
0e9c59c0fb SEL-56: Setup Yarn Workspaces (#584) 2025-06-04 11:37:32 +02:00
Justin Hernandez
dfb009b167 Bump build version 2.5.2 to test react native keychain (#572)
* bump build and version

* bump version 2.5.2

* don't downgrade react native keychain
2025-05-27 08:29:05 -07:00
Justin Hernandez
c6c4b35684 SEL-181 & SEL-252: Update mobile app events (#570)
* improve analytics handling

* add error boundary that flushes segment events before error occurs

* upgrade segment analytics package

* flush analytics when user encounters error screen

* track all click events

* add tracking to loading screen

* better init and click event names

* track cloud backup and modal actions

* use __DEV__ for debugging

* add tracking to account recovery, auth, mock data

* return false instead of throwing

* add more tracking events

* save wip event updating

* abstract analytic event names

* update click events

* clean up

* move reasons comment

* add unsupported passport event
2025-05-26 09:08:40 -07:00
Justin Hernandez
5c7caeafcd update react native keychain to fix could not recover issue (#564) 2025-05-19 09:39:39 -07:00
Justin Hernandez
e059f06e84 Bump v2.5.1: ios 122; android 60 (#561)
* increment build to 120

* bump builds for 2.5.1. ios 121; android 60

* clean up logic

* upgrade react native firebase for privacy manifests
2025-05-16 13:15:35 -07:00
nicoshark
3db25aa469 Push notification (#536)
* add push notification feature

* merge new app impl

* change dsc key

* import

* reverse mock dsc

* worked in the ios

* checked in android

* update url and delete console

* delete small changes

* lint

* add yarn.lock

* fix warning message

* add mock notification service for test code

* fix path for the mock implementation

* add mock deeplink to the test code

* nice notificationServiceMock.js

* delete unused firebase related implementation

* fix wording and UI related to notification service

* hotfix on mockdatascreen

---------

Co-authored-by: turnoffthiscomputer <colin.remi07@gmail.com>
2025-05-15 23:46:21 +02:00
Justin Hernandez
a08904b50c Clean up navigation and setup Jest (#549)
* remove dupe account screens and prefer the term home

* organize screen loading better

* sort keys

* rename screen files wip

* fix deleted directory issues

* rename folders

* fix paths and naming

* save working jest import test

* save base working jest navigation test

* finalize navigation refactor and jest test

* update test name and podfile lock

* remove unused packages

* use the correct version of react test renderer
2025-05-09 10:17:12 -07:00
turnoffthiscomputer
cc169061bd add common sdk (#537)
* add common sdk

* remove sdk backend api

* remove registry

* regenerate sha256 rsa dsc each time

* download ski-pem dynamically on staging, refactor initpassportDataParsing

* add state machine for button on prove screen, improve ux on splash screen

* fetch ski-pem in production

* fix linter issues

* fix prove screen button bugs

* update podfile.lock and yarn.lock

* run linter in circuits repo

* bump build

* bump version for sentry debugging

* bump ios to version 118

---------

Co-authored-by: Justin Hernandez <transphorm@gmail.com>
2025-05-07 11:45:21 +02:00
Seshanth.S🐺
7e89698e74 feat: Add Disclose history (#533)
* feat: Add Disclose history

* fix: Duplicate history in list

* fix: Outdated disclosures

* Delete app/ios/Self copy-Info.plist
2025-05-02 13:53:27 +02:00
Justin Hernandez
b1b6c201b4 New bug fix build for v2.5.1 (#540)
* bump new build for dev fixes

* update lock

* reinstall before running local deploy
2025-04-28 15:22:45 -07:00
turnoffthiscomputer
0bf324e639 Feat/extend id support (#517)
* refactor proving impleting xstate, speedup proving

* add disclosure proof support

* keep refactoring provingMachine, clean old implementation

* call init method when switching from dsc to register

* rebase with dev to display why the proof verification failed

* refactor ws connexion between front-end and mobile to retrieve self-app

* update the webclient at proofVerification and use selfAppStore in provingMachine

* fix provintStore.init in ProveScreen

* yarn nice

* fetch data correctly in splash screen
2025-04-24 05:55:47 -07:00
Justin Hernandez
3c51feafdf DX: Auto format on save (#526)
* save wip

* use elint instead of prettier to sort imports

* set imports to warn

* sync prettier settigns

* update prettier settings

* save working version

* fix export and disable mobile pipeline for now

* limit auto formatting to the app folder
2025-04-21 22:10:56 +02:00
Justin Hernandez
7297659a30 Bump version to 2.5.1 (#522)
* bump version

* update fastlane

* fix bump version

* bump build and add todo

* disable commit for now
2025-04-17 21:09:40 +02:00
Justin Hernandez
a3dc3bcfd1 feat: automated mobile deployments rd2 (#498)
* migrate build logic from previous branch

* fix command

* move .actrc file

* clean up

* use env vars

* setup provisioning profile path within action

* fix flow

* fix fastfile flow and update react native

* disable play store uploading

* hard code xcode version

* fixes

* more provisioning debugging

* fix keychain path

* set keychain to what was created by the github action

* attempt to build again

* test fix

* print xcode build settings

* debug ios build

* fix xcargs path

* use manual code signing

* save wip

* fix building locally

* fix variable

* save wip

* clean up long comand

* clean up

* install bundle and gems

* install pods

* fix pod installation

* sort

* better naming

* fix android issues

* update lock

* clean up artifacts

* format

* save wip slack upload logic

* prettier

* fix indent

* save wip

* save wip

* save wip

* save wip

* save wip

* clean up

* simplify slack calls

* revert slack logic

* save working slack upload example

* make title nicer

* clean up slack upload

* upload paths

* enable github commit

* fix path

* fix commit step

* fix git committing

* update markdown

* fix git commit rule

* better commit message

* chore: incrementing ios build number for version 2.4.9 [skip ci]

* better name

---------

Co-authored-by: Self GitHub Actions <action@github.com>
2025-04-11 19:51:02 +02:00
turnoffthiscomputer
a0672cc574 bump version to 2.5.0 (#476)
* bump versions

* bump version

* bump android version

* fix deeplinking on android

* don't open the android app when the phone is nearby an RFID chip

* add build apk command

* add intent filter

* bump version

---------

Co-authored-by: Justin Hernandez <transphorm@gmail.com>
2025-03-27 18:42:49 +01:00
Justin Hernandez
d03c9556a8 Create release build 2.4.9, lower deployment target to iOS 15.0 (#393)
* bump version

* lower target iOS version to 11

* bump version

* lower ios deployment target to 15.0

* increment build

* bump build

* increment build

* bump build

* update podlock
2025-03-21 13:50:11 -07:00
turboblitz
02f3f6b070 2.4.1 iOS release (#197)
Co-authored-by: Justin Hernandez <transphorm@gmail.com>
2025-02-23 06:31:47 -08:00
turnoffthiscomputer
1fce20c573 Sentry (#204) 2025-02-23 06:42:19 +01:00
Nicolas Brugneaux
2155bf95a5 Fix: recovery phrase (#201) 2025-02-21 22:49:38 +01:00
Aaron DeRuvo
5d9e959444 Clean Stores (#199) 2025-02-21 16:05:57 +01:00
Justin Hernandez
f2e5f76076 Self app release 2.3 version rd 2 (#189) 2025-02-20 14:19:59 -08:00
Justin Hernandez
65d1f74c10 bump build to new release candidate (#163)
Co-authored-by: Aaron DeRuvo <aaron.deruvo@clabs.co>
2025-02-20 07:36:26 -08:00
Aaron DeRuvo
d6882ca7cf remove orientation locker (#140) 2025-02-19 13:44:30 +01:00
Justin Hernandez
4365f4a277 last minute optimizations (#142) 2025-02-18 13:58:57 -08:00
Aaron DeRuvo
4a6d1824e6 Android Icons + Connection Modal (#141)
Co-authored-by: Nicolas Brugneaux <nicolas.brugneaux@gmail.com>
Co-authored-by: Justin Hernandez <transphorm@gmail.com>
2025-02-18 12:34:21 -08:00
Justin Hernandez
99d81d5c92 Feat: Deprecate amplitude, remove unused packages (#126) 2025-02-17 07:50:52 -08:00