feat(mobile): Add semantic versioning with standard-version

- Add standard-version for automated version bumping
- Create .versionrc with custom configuration for app.json
- Add version-updater.cjs script for Expo version syncing
- Add version bump scripts (release, release:patch, release:minor, release:major)
- Initialize CHANGELOG.md with v1.0.0 release notes
- Add iOS buildNumber and Android versionCode for app store releases
- Update .gitignore to allow CHANGELOG.md

This establishes proper engineering practices for version management.
This commit is contained in:
2026-01-19 16:00:43 +03:00
parent c260da18b1
commit f9bbabd215
7 changed files with 1887 additions and 1 deletions
+4
View File
@@ -141,12 +141,16 @@ vite.config.ts.timestamp-*
# Local analysis and documentation
*.md
!README.md
!CHANGELOG.md
!mobile/CHANGELOG.md
COMMISSION_SYSTEM_SUMMARY -
Copy.md:Zone.Identifier
# Local analysis and documentation
*.md
!README.md
!CHANGELOG.md
!mobile/CHANGELOG.md
COMMISSION_SYSTEM_SUMMARY - Copy.md:Zone.Identifier
# APK files (too large for GitHub)
+29
View File
@@ -0,0 +1,29 @@
{
"types": [
{ "type": "feat", "section": "Features" },
{ "type": "fix", "section": "Bug Fixes" },
{ "type": "chore", "section": "Chores", "hidden": false },
{ "type": "docs", "section": "Documentation", "hidden": false },
{ "type": "style", "section": "Styling", "hidden": true },
{ "type": "refactor", "section": "Code Refactoring", "hidden": false },
{ "type": "perf", "section": "Performance Improvements" },
{ "type": "test", "section": "Tests", "hidden": false },
{ "type": "build", "section": "Build System", "hidden": false },
{ "type": "ci", "section": "Continuous Integration", "hidden": false }
],
"bumpFiles": [
{
"filename": "package.json",
"type": "json"
},
{
"filename": "app.json",
"updater": "scripts/version-updater.cjs"
}
],
"commitUrlFormat": "https://github.com/pezkuwichain/pwap/commit/{{hash}}",
"compareUrlFormat": "https://github.com/pezkuwichain/pwap/compare/{{previousTag}}...{{currentTag}}",
"issueUrlFormat": "https://github.com/pezkuwichain/pwap/issues/{{id}}",
"tagPrefix": "mobile-v",
"header": "# Pezkuwi Mobile Changelog\n\nAll notable changes to the Pezkuwi Mobile application will be documented in this file.\n"
}
+27
View File
@@ -0,0 +1,27 @@
# Pezkuwi Mobile Changelog
All notable changes to the Pezkuwi Mobile application will be documented in this file.
## [1.0.0] - 2026-01-19
### Features
- Welcome screen with language selection
- Multi-language support (EN, TR, KMR, CKB, AR, FA)
- RTL support for Arabic, Central Kurdish, and Persian
- Authentication (Sign In/Sign Up)
- Main dashboard with 5-tab bottom navigation
- Wallet integration with @pezkuwi/api
- Live blockchain data display (HEZ, PEZ, USDT)
- Send/receive transaction functionality
- QR code generation and scanning
- Biometric authentication (Face ID / Fingerprint)
- Secure storage for sensitive data
- WebView SSO integration
### Chores
- Initial project setup with Expo SDK 54
- Jest testing configuration with 35%+ coverage
- ESLint configuration
- CI/CD pipeline setup
+3
View File
@@ -14,12 +14,15 @@
},
"ios": {
"supportsTablet": true,
"bundleIdentifier": "io.pezkuwichain.wallet",
"buildNumber": "10000",
"infoPlist": {
"NSCameraUsageDescription": "Pezkuwi needs camera access to scan QR codes for wallet addresses and payments."
}
},
"android": {
"package": "io.pezkuwichain.wallet",
"versionCode": 10000,
"adaptiveIcon": {
"foregroundImage": "./assets/adaptive-icon.png",
"backgroundColor": "#ffffff"
+1778
View File
File diff suppressed because it is too large Load Diff
+7 -1
View File
@@ -29,7 +29,12 @@
"test:watch": "jest --watch",
"test:coverage": "jest --coverage",
"lint": "eslint .",
"lint:fix": "eslint . --fix"
"lint:fix": "eslint . --fix",
"release": "standard-version",
"release:patch": "standard-version --release-as patch",
"release:minor": "standard-version --release-as minor",
"release:major": "standard-version --release-as major",
"release:dry-run": "standard-version --dry-run"
},
"dependencies": {
"@babel/runtime": "^7.28.4",
@@ -112,6 +117,7 @@
"jest-expo": "^54.0.16",
"react-native": "^0.83.1",
"react-test-renderer": "19.1.0",
"standard-version": "^9.5.0",
"typescript": "~5.9.2",
"typescript-eslint": "^8.47.0"
},
+39
View File
@@ -0,0 +1,39 @@
/**
* Custom version updater for app.json
* Used by standard-version to update Expo app.json version fields
*/
const fs = require('fs');
const path = require('path');
const APP_JSON_PATH = path.join(__dirname, '..', 'app.json');
module.exports.readVersion = function (contents) {
const appJson = JSON.parse(contents);
return appJson.expo.version;
};
module.exports.writeVersion = function (contents, version) {
const appJson = JSON.parse(contents);
// Update expo.version
appJson.expo.version = version;
// Auto-increment build numbers for iOS and Android
const versionParts = version.split('.');
const buildNumber = parseInt(versionParts[0]) * 10000 +
parseInt(versionParts[1]) * 100 +
parseInt(versionParts[2]);
// Update iOS buildNumber
if (appJson.expo.ios) {
appJson.expo.ios.buildNumber = String(buildNumber);
}
// Update Android versionCode
if (appJson.expo.android) {
appJson.expo.android.versionCode = buildNumber;
}
return JSON.stringify(appJson, null, 2) + '\n';
};