Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Changelog

All notable changes to this project will be documented in this file.

## 4.2.0

- Promote stable from 4.2.0‑beta.1; no functional differences

## 4.2.0‑beta.1

- TON: public features available (send/receive, details, explorers)
- Providers: Coinbase provider added; new price service; remote asset sync service
- WalletConnect: migrate integrations to Reown SDK
- Platform: Android toolchain upgrades to meet Play requirements
- CI/CD: NDK r28; native libs verification; Polkadot alignment printing; Jenkins stability
- Fixes: banner closing (FLW‑5177); Ethereum recipient validation; confirmation/warnings UX; UI tweaks

1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ Track features development: [board link](https://soramitsucoltd.aha.io/shared/34
- Current state: see `docs/CURRENT_STATE.md` for supported ecosystems, integrations, and TODO hotspots.
- Status snapshot: see `docs/status.md` for health, risks, and what’s incomplete.
- Roadmap: see `docs/roadmap.md` for prioritized, actionable tasks.
- Release process: see `docs/releases/PROCESS.md` for beta → stable steps and checklists.

## How to build

Expand Down
64 changes: 64 additions & 0 deletions docs/releases/4.2.0-beta.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Fearless Android 4.2.0-beta.1

## Summary

Beta release enabling public TON features, Coinbase provider integration, Reown (WalletConnect) migration, and Android toolchain upgrades required by Google Play. Includes CI hardening and assorted fixes.

## Highlights

- TON: public features available across supported flows (send/receive, details, explorers)
- Providers: Coinbase provider added; new price service; remote asset sync service
- WalletConnect: migrated integrations to Reown SDK (sessions, signing, disconnect)
- Platform: toolchain upgrades (AGP/Kotlin/SDK/NDK updates) to meet Play requirements
- CI/CD: NDK r28, native libs verification, alignment printing, Jenkins stability improvements
- Fixes: banner closing (FLW‑5177), Ethereum recipient validation/warning → confirmation, UI tweaks

## Changes (since last release)

- Feature: TON features public (user‑visible operations and views)
- Feature: Coinbase provider integration
- Feature: New price service + remote assets sync service
- Migration: WalletConnect → Reown SDK
- Platform: Upgrade Android toolchain to current Play policy
- CI: print Polkadot SDK alignment; native `.so` verification; stable Jenkins ordering; disable parallel for DataBinding
- Fixes: banner close; ETH recipient validation; UX improvements in confirmation flow

## Risks & Notes

- Reown SDK migration spans Substrate/EVM chains; verify dapp sessions end‑to‑end
- Deprecated APIs are still present (Compose theme alias, Flow preview/opt‑in, Room index hints) — safe to ship; tracked for cleanup
- Ensure mirrors and overrides are set for first‑time builds (see README and AGENTS.md)

## Test Matrix (beta)

- Devices: Android 13/14/15; ARM64; one low‑RAM device
- Chains: Polkadot/Kusama (Substrate), Ethereum/Polygon/BSC (EVM), TON
- Scenarios:
- Onboarding/import/export; chain switching; balances; transfers (all ecosystems)
- Reown: connect → sign → disconnect with representative dapps
- Prices/assets: refresh, sorting, remote sync
- Staking: screens render; basic read flows
- Regression: deep links, QR scanner, backup/restore, haptics/biometrics

## Exit Criteria

- Crash‑free sessions ≥ 99.5% on beta cohort
- No P0/P1 issues in core flows (onboarding, transfer, Reown)
- Basic staking and transfer flows pass across ecosystems

## Build & Verify

- Alignment: `./gradlew printPolkadotSdkAlignment`
- Static analysis: `./gradlew detektAll`
- Unit tests + coverage: `./gradlew runTest`
- Lint (app): `./gradlew :app:lint`
- Full sequence: `./gradlew postMergeVerify`

## Release Notes (Play)

- Enable TON features publicly; add Coinbase provider
- Migrate WalletConnect to Reown SDK
- New price service and remote asset sync
- Toolchain upgrades for Google Play requirements
- Stability and UX fixes

27 changes: 27 additions & 0 deletions docs/releases/4.2.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Fearless Android 4.2.0 (stable)

## Summary

Promote 4.2.0 from 4.2.0‑beta.1 with no functional changes. Stability verified across core flows and ecosystems.

## Changes Since 4.2.0‑beta.1

- No functional changes; version bump only
- Continue to monitor crash/ANR metrics and session health

## Rollout Plan

- Staged rollout: 10% → 25% → 50% → 100%
- Halt criteria: crash‑free drop > 0.5% or new P0/P1 defects in core flows

## Store Notes (Play)

- Use the same release notes as the beta
- Attach links to docs/releases/4.2.0-beta.md for internal reference

## Post‑Release

- Tag: `git tag -s 4.2.0 -m "fearless-Android 4.2.0" && git push origin 4.2.0`
- Create `4.2.x` patch branch if needed
- Update `docs/status.md` and `docs/roadmap.md` to reflect current state

91 changes: 91 additions & 0 deletions docs/releases/PROCESS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
# Release Process (Android)

This document standardizes how we cut beta and stable releases for Fearless Android.

## Versioning & Branching

- Versioning: semantic with optional pre-release suffix.
- Beta: `4.2.0-beta.1`, Stable: `4.2.0`.
- Update in root `build.gradle`: `versionName`, increment `versionCode`.
- Branching:
- Work branch: feature/stabilization or release/docs-x.y.z
- Open a PR to `develop` (or the release branch if used), then merge to `master` when promoted.
- Tags (signed):
- Beta: `git tag -s 4.2.0-beta.1 -m "fearless-Android 4.2.0-beta.1"`
- Stable: `git tag -s 4.2.0 -m "fearless-Android 4.2.0"`

## Preconditions

- Toolchain: JDK 21, Android SDK 35 + build-tools 35.0.0, NDK r28 (and legacy r25 if needed), Rust toolchain.
- Secrets: configured via env or `local.properties` (see README / docs samples).
- Optional alignment overrides (first run mirrors): `TYPES_URL_OVERRIDE`, `DEFAULT_V13_TYPES_URL_OVERRIDE`, `CHAINS_URL_OVERRIDE`.

## Pre‑Release Checklist

- Alignment print:
- `./gradlew printPolkadotSdkAlignment`
- Confirm effective URLs and shared_features pin (or "(not pinned)").
- Static analysis:
- `./gradlew detektAll`
- Unit tests + coverage:
- `./gradlew runTest`
- Inspect `*/build/reports/tests/testDebugUnitTest/index.html`.
- Lint (app):
- `./gradlew :app:lint`
- Full sequence (fast‑fail ordered):
- `./gradlew postMergeVerify`
- Update docs:
- `CHANGELOG.md` with a concise, user‑facing summary.
- `docs/releases/<version>.md` with scope, risks, test matrix, rollout.

## Beta Release

- Bump version to `x.y.z-beta.n`.
- Build:
- `./gradlew :app:assembleRelease`
- Upload (CI recommended):
- Use Gradle Play Publisher or your CI step to release to an internal/closed track.
- Monitor:
- Crash/ANR, Play pre‑launch report, QA regression, dapp sessions (Reown).
- Exit criteria:
- Crash‑free ≥ 99.5%, no P0/P1 blocking issues in core flows.

## Stable Release

- Bump version to `x.y.z` (remove `-beta.*`).
- Tag and push (signed):
- `git tag -s x.y.z -m "fearless-Android x.y.z" && git push origin x.y.z`
- Staged rollout:
- 10% → 25% → 50% → 100%, monitoring crash‑free and error rates.
- Post‑release:
- Create `x.y.z` GitHub Release notes (paste from changelog).
- Consider `x.y.(z+1)` patch branch if hotfixes expected.

## CI/CD Integration

- GitHub Actions:
- Runs detekt, tests, lint, assemble. Prints Polkadot SDK alignment early.
- Jenkins (PRs):
- `testCmd: runTest` for unit tests; use `postMergeVerify` on demand for full checks.
- Stability guards:
- Ordered tasks to avoid DataBinding races; Gradle parallel disabled in Jenkins.

## Store Submission Notes

- Play track: Beta to internal/closed; stable to production (staged).
- Signing: CI or Play App Signing as configured.
- Release text: summarized from `CHANGELOG.md` and `docs/releases/<version>.md`.

## Rollback

- Halt staged rollout in Play if metrics degrade.
- Revert tag and bump hotfix `x.y.(z+1)` if needed.
- Communicate in PR and `docs/status.md`.

## PR Template (Release Docs or Bump)

- Use the repository PR checklist; include:
- Version changes, tags planned.
- Links to release docs and changelog.
- Evidence of detekt/tests/lint runs (local or CI).