Skip to content

Commit fe5c87b

Browse files
authored
Merge pull request #82 from figonzal1/release-please--branches--main
chore(main): release 1.8.0
2 parents b09282f + 931d497 commit fe5c87b

6 files changed

Lines changed: 129 additions & 6 deletions

File tree

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "1.7.10"
2+
".": "1.8.0"
33
}

CHANGELOG.md

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# Changelog
2+
3+
## [1.8.0](https://github.com/figonzal1/LastQuakeChile/compare/v1.7.10...v1.8.0) (2026-06-03)
4+
5+
6+
### Features
7+
8+
* add Android developer agent foundation skills ([912d48f](https://github.com/figonzal1/LastQuakeChile/commit/912d48f012e3b30387f25e8aac9156939cce7ecb))
9+
* major refactor — DomainResult, coroutines, map clustering, and CI improvements ([ca74dbb](https://github.com/figonzal1/LastQuakeChile/commit/ca74dbb6965cf58409d1889b5e549f0a5b6c5a25))
10+
* **map:** replace loadPins with ClusterManager and cap markers at 50 ([e52fc95](https://github.com/figonzal1/LastQuakeChile/commit/e52fc959a44ea5c24cfa42265698926fc3c1c76c)), closes [#75](https://github.com/figonzal1/LastQuakeChile/issues/75)
11+
12+
13+
### Bug Fixes
14+
15+
* **coroutines:** replace Channel with MutableSharedFlow for one-shot error events ([89a6643](https://github.com/figonzal1/LastQuakeChile/commit/89a6643fa6e5db8b6de298601cf6098609d97001))
16+
* decouple FCM subscription from user preference switch state ([6564d9a](https://github.com/figonzal1/LastQuakeChile/commit/6564d9ac386f9fde1a93b5acbbad3985d739418a))
17+
* exclude SharedPreferences from Auto Backup to prevent stale permission restore ([c6eecfc](https://github.com/figonzal1/LastQuakeChile/commit/c6eecfc9150856c10700645e7150d782be3be766))
18+
* filter DeadSystemRuntimeException from Crashlytics reports ([2283dca](https://github.com/figonzal1/LastQuakeChile/commit/2283dca71d8159e2043b6cde7283473e6da34517)), closes [#76](https://github.com/figonzal1/LastQuakeChile/issues/76)
19+
* gate FCM subscription on permission and fix POST_NOTIFICATIONS cardview flow ([c4a66f0](https://github.com/figonzal1/LastQuakeChile/commit/c4a66f055202774f4cec9715da750519ab7eb118))
20+
* **notifications:** use quake code as unique PendingIntent request ID ([11142a8](https://github.com/figonzal1/LastQuakeChile/commit/11142a8f56bc464f063add867d712df80aefe655))
21+
* prevent Maps background snapshot crash in MapsFragment ([9cf6a54](https://github.com/figonzal1/LastQuakeChile/commit/9cf6a54ace64649f2783ea19ee09fcf5ac5e7668)), closes [#74](https://github.com/figonzal1/LastQuakeChile/issues/74)
22+
* re-evaluate notification permission cardview in onResume ([5e5bf47](https://github.com/figonzal1/LastQuakeChile/commit/5e5bf4768f89210a5a3e8cf14210c8e907919f48))
23+
* replace random channel scheme with two fixed notification channels ([75940d9](https://github.com/figonzal1/LastQuakeChile/commit/75940d9a1e4741140fb45ecd547e8aba1af4d000))
24+
* restrict destructive DB migration and HTTP logging to debug builds ([857304b](https://github.com/figonzal1/LastQuakeChile/commit/857304b3c4067c5e0057a1fbe13187db7743936d))

CLAUDE.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
# CLAUDE.md
2+
3+
Guidance for Claude Code when working in this repository.
4+
5+
## Project overview
6+
7+
Android app (Kotlin) showing recent earthquakes in Chile. Single Gradle module `:app`.
8+
9+
- **DI:** Koin (not Hilt)
10+
- **Networking:** Retrofit + Moshi + Sandwich (`ApiResponse`)
11+
- **Persistence:** Room (KSP codegen)
12+
- **Images:** Coil · **Maps:** Google Maps + android-maps-utils (marker clustering)
13+
- **Backend services:** Firebase (Crashlytics, Performance, FCM)
14+
- **UI:** XML views, with an incremental XML → Compose migration in progress (see PR #80)
15+
16+
### Architecture
17+
18+
Feature-based packages under `app/src/main/java/cl/figonzal/lastquakechile/`:
19+
20+
- `core/` — shared infra: DI modules, networking, DB, utils, `DomainResult`/`DomainError`
21+
- `quake_feature/` — earthquake list, detail, and map (data/domain/ui)
22+
- `reports_feature/` — reports feature (data/domain/ui)
23+
24+
Data flow: remote/local data sources return domain models via mappers; repositories
25+
expose `DomainResult<T>` (success/error), surfaced to ViewModels as a single `uiState`.
26+
27+
## Commands
28+
29+
Build uses product flavors `dev` / `beta` / `prod` (dimension `version`) and build types `debug` / `release`.
30+
31+
```bash
32+
./gradlew assembleDevDebug # build dev/debug APK
33+
./gradlew test # all unit tests
34+
./gradlew :app:connectedDevDebugAndroidTest # instrumentation tests (device/emulator)
35+
./gradlew bundleProdRelease # production AAB
36+
37+
# fastlane wrappers (bundle exec):
38+
bundle exec fastlane unit_test # unit tests
39+
bundle exec fastlane ui_test # instrumentation tests (DevDebug)
40+
bundle exec fastlane prod_googleplay # build prod AAB + upload to Google Play
41+
```
42+
43+
## Gotchas
44+
45+
- Requires `secrets.properties` (Maps API key via Secrets Gradle plugin) and signing material
46+
under `keys/` — both untracked; builds fail without them.
47+
- Destructive Room migration and HTTP logging are gated to debug builds only.
48+
- `versionCode` is derived from the version managed by release-please — do not hardcode it.
49+
50+
## Release process (release-please + fastlane + Google Play)
51+
52+
This project releases through [release-please](https://github.com/googleapis/release-please)
53+
(`release-type: simple`) and ships to Google Play via fastlane.
54+
55+
### Branch rules
56+
57+
- `main` has an **active ruleset** (`pull_request` required, `non_fast_forward`).
58+
Direct pushes to `main` are **blocked for everyone** — all changes land via PR.
59+
- `required_approving_review_count: 0`, so the owner can **self-merge** PRs without approval.
60+
- Only `main` is protected; feature and release-please branches are unrestricted.
61+
62+
### How release-please behaves
63+
64+
- The workflow `.github/workflows/release-please.yml` runs on **every push to `main`**
65+
(and supports `workflow_dispatch` for manual runs).
66+
- It does **not** cut a release on each run. It maintains a **single rolling release PR**
67+
on the branch `release-please--branches--main`.
68+
- The git tag, GitHub Release, and `versionCode` bump happen **only when that release PR is merged**.
69+
- `chore`, `refactor`, `ci`, `docs`, etc. do **not** bump the version — only `feat`/`fix` do.
70+
Adding such commits just refreshes the open release PR; it never spawns a second release.
71+
72+
### Fastlane changelogs — when and where
73+
74+
Use the `/fastlane-changelog` command (see `.claude/commands/fastlane-changelog.md`).
75+
76+
- **Timing:** generate the changelogs **before merging the release PR**, while the latest git
77+
tag is still the **previous** version. The command diffs `git describe --tags --abbrev=0..HEAD`;
78+
if run after the release PR merges, the new tag already exists and the diff is empty.
79+
- Changelogs are always written to `default.txt` (locales `es-419` and `en-US`), which fastlane
80+
uses as a fallback when no versionCode-specific file exists.
81+
- **Convention (owner's preference):** commit the `default.txt` changelogs as the **last commit
82+
directly onto the `release-please--branches--main` branch**, so they ship inside that same
83+
release PR. Only do this when no further pushes to `main` are expected before the merge — a later
84+
release-please run can regenerate/force-push that branch and drop the commit.
85+
86+
### End-to-end release flow
87+
88+
1. Wait for release-please to open/update the release PR (`release-please--branches--main`).
89+
2. Run `/fastlane-changelog` (previous tag still latest) → writes `default.txt` for `es-419` + `en-US`.
90+
3. Commit those `default.txt` files as the final commit onto the release PR branch.
91+
4. **Merge the release PR** (`gh pr merge <n> --merge` or the GitHub UI) → creates the tag,
92+
GitHub Release, and `versionCode` bump.
93+
5. Build and upload: `fastlane prod_googleplay` (or `beta_googleplay`) — reads `default.txt`.
94+
95+
## Conventions
96+
97+
- Write GitHub issues in **English**, regardless of conversation language.

app/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
22
import java.io.FileInputStream
33
import java.util.Properties
44

5-
val appVersionName = "1.7.10" // x-release-please-version
5+
val appVersionName = "1.8.0" // x-release-please-version
66
val (vMajor, vMinor, vPatch) = appVersionName.split(".").map { it.toInt() }
77

88
plugins {
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
• Improvements to earthquake notifications.
2-
• Stability improvements.
1+
• The map now groups nearby earthquakes for a clearer view.
2+
• Improvements and fixes for earthquake notifications.
3+
• Stability fixes to prevent unexpected crashes.
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
• Mejoras en las notificaciones de sismos.
2-
• Se mejoró la estabilidad del proceso de la aplicacion.
1+
• El mapa ahora agrupa los sismos cercanos para una vista más clara.
2+
• Mejoras y correcciones en las notificaciones de sismos.
3+
• Correcciones de estabilidad para evitar cierres inesperados.

0 commit comments

Comments
 (0)