Skip to content

Conversation

@tobi-legan
Copy link
Contributor

@tobi-legan tobi-legan commented Dec 17, 2025

Description

This PR pins all dependencies and devDependencies to exact versions by removing all version range prefixes (^ and ~). All packages are now locked to their exact installed versions to ensure reproducible builds across different environments and installations.

Motivation and Context

Using version ranges (caret ^ and tilde ~) allows npm to install newer patch/minor versions during npm install, which can lead to:

  • Inconsistent builds across different machines and CI/CD environments
  • Unexpected behavior due to subtle version differences
  • Difficulty reproducing bugs that only occur with specific dependency versions
  • Potential security issues from automatically pulling in newer versions

By pinning all dependencies to exact versions, we ensure that every developer and CI system installs the exact same dependency tree, leading to more predictable and reproducible builds.

Related Issue

N/A - This is a proactive maintenance improvement to ensure build reproducibility.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Note: This is a maintenance/chore change that improves build reproducibility. It does not change functionality but ensures consistent dependency versions across all environments.

Changes Made

  • Removed all ^ (caret) prefixes from 54 dependencies
  • Removed all ~ (tilde) prefixes from Expo packages and other dependencies
  • Updated all dependencies and devDependencies to exact versions based on currently installed packages
  • Regenerated package-lock.json to reflect the pinned versions

Testing

  • Verified npm install completes successfully with pinned versions
  • Confirmed all dependencies resolve to exact versions (no ranges)
  • No breaking changes to existing functionality

- Introduced E2E testing framework in the `e2e` directory, including configuration files and test scripts.
- Added `HomeOnboardingScreen` page object for managing onboarding screen interactions.
- Implemented initial test for wallet app onboarding, verifying UI elements and welcome messages.
- Updated `.gitignore` to exclude E2E test artifacts and configuration files.
- Modified `app.json` to disable development client for production builds.
- Added `package-lock.json` and `package.json` for E2E testing dependencies.
… multi-platform config support

- Add Qase.io test management integration
- Create platform-specific WebdriverIO configs (iOS/Android)
- Implement qase() wrapper for automatic test result reporting
- Add platform detection for test run naming ([iOS]/[Android])
- Support both iOS and Android e2e testing
- Update README with platform-specific test commands
- Added configuration files for E2E testing in the `test/e2e` directory.
- Created `HomeOnboardingScreen` page object for managing onboarding interactions.
- Developed initial test for wallet app onboarding, verifying UI elements and welcome messages.
- Updated `package.json` and `package-lock.json` to include necessary dependencies for testing.
- Modified `.gitignore` to exclude test artifacts and configuration files.
- Removed legacy E2E testing setup from `e2e` directory.
- Added `dotenv`, `qase-api-client`, and `strip-ansi` to `package.json` and `package-lock.json`.
- Updated test specifications path in `wdio.base.conf.ts` to point to the new structure.
- Removed legacy `wdio.conf.ts` file.
- Adjusted TypeScript configuration to exclude `node_modules` and `e2e` directories.
- Replace all 'any' types with proper TypeScript types (WebdriverIO.Capabilities, Record<string, unknown>, etc.)
- Fix Android APK path in wdio.android.conf.ts (test/apps/app-release.apk)
- Fix Android test script in package.json to use wdio.android.conf.ts
- Add missing driver import in home-onboarding-screen.ts
- All tests passing on both iOS and Android
- Updated `package.json` to reference new test configuration files for E2E testing.
- Added `wdio.conf.ts` for Android E2E testing setup.
- Added `wdio.ios.conf.ts` for iOS E2E testing setup, including specific capabilities for both platforms.
- Modified `package.json` to point to the correct paths for E2E testing scripts.
- Added `wdio.base.conf.ts` for shared WebdriverIO configuration across platforms.
- Introduced `wdio.android.conf.ts` for Android-specific WebdriverIO settings, including capabilities and app path.
- Remove all ^ and ~ version prefixes from dependencies
- Pin all dependencies and devDependencies to exact installed versions
- Ensures reproducible builds across environments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants