mirror of
https://github.com/pezkuwichain/pwap.git
synced 2026-04-22 02:07:55 +00:00
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:
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
@@ -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"
|
||||
|
||||
Generated
+1778
File diff suppressed because it is too large
Load Diff
+7
-1
@@ -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"
|
||||
},
|
||||
|
||||
@@ -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';
|
||||
};
|
||||
Reference in New Issue
Block a user