mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-10-31 08:15:02 +00:00
Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| b296f86850 | |||
| d5ab58b611 | |||
| f18c3acdfc |
@@ -96,6 +96,20 @@ zsh: `for c in $VAR` does not split on newlines, a variable named `path` *is* `P
|
||||
`$TAG:file` applies a history modifier — use `while read`, never name a variable `path`,
|
||||
write `${TAG}:file`.
|
||||
|
||||
## Embedded Element Call: test every bump against the iPhone
|
||||
|
||||
`gradle/libs.versions.toml` pins `element_call_embedded`, the web app the call screen loads. Upstream
|
||||
lets Renovate bump it; each bump ships a fresh matrix-js-sdk snapshot, and the Rust SDK on both
|
||||
HealthChat apps parses the call membership that js-sdk writes. 26.10.0 shipped Element Call 0.28.0,
|
||||
whose js-sdk dropped `livekit_alias` from `foci_preferred`; ruma requires the field, so the Rust SDK
|
||||
discarded the membership and the iPhone stopped ringing for Android calls (Android's own
|
||||
ring-cancel detection broke the same way). Pinned to 0.26.1 in 26.10.1, the version iOS embeds; the
|
||||
hosted Element Call on the server (`matrix_element_call_version` in the playbook inventory) must stay
|
||||
on the same version or web and desktop calls stop ringing. 0.27.0 is on Maven without a release. Before lifting the pin or
|
||||
taking a newer bump: start a call from Android, the current iPhone build must ring, and the room
|
||||
state must still parse (`has_active_room_call`). Lift only when both apps run a Rust SDK that
|
||||
accepts memberships without the alias.
|
||||
|
||||
## Git LFS — the part that bites
|
||||
|
||||
Goldens, compound screenshots, `docs/images-lfs`, and `libraries/mediaupload/impl` test assets
|
||||
@@ -173,8 +187,19 @@ git push --force-with-lease=release/healthchat:<old tip> origin <scratch>:releas
|
||||
git checkout release/healthchat && git reset --hard origin/release/healthchat # every clone
|
||||
```
|
||||
|
||||
The branch is unprotected: the push lands immediately. Old `healthchat-v*` tags keep their
|
||||
commits alive and off the branch line. Rewind =
|
||||
`release/healthchat` is the default branch and the repository ruleset `healthchat-base`
|
||||
(id 20385846, rules `deletion` + `non_fast_forward`, no bypass actors) rejects the force-push with
|
||||
`GH013 … Cannot force-push to this branch`. Classic branch protection is empty, so
|
||||
`gh api repos/<repo>/branches/<branch>/protection` says "not protected" — check
|
||||
`gh api repos/<repo>/rules/branches/release%2Fhealthchat` instead. Decision (2026-10-20): disable the
|
||||
ruleset for the push and re-enable it right after, no permanent bypass:
|
||||
```bash
|
||||
gh api -X PUT repos/Novaloop-AG/element-x-android/rulesets/20385846 -f enforcement=disabled
|
||||
git push --force-with-lease=release/healthchat:<old tip> origin <stack>:release/healthchat
|
||||
gh api -X PUT repos/Novaloop-AG/element-x-android/rulesets/20385846 -f enforcement=active
|
||||
gh api repos/Novaloop-AG/element-x-android/rulesets/20385846 -q .enforcement # must print active
|
||||
```
|
||||
Old `healthchat-v*` tags keep their commits alive and off the branch line. Rewind =
|
||||
`git push --force origin healthchat-v<last>^{commit}:release/healthchat`. A rewind does not
|
||||
remove a tag or Play build made on the new history — tag only after the device tests. Then set
|
||||
the version, update `HEALTHCHAT_CHANGES.md`, the releasing skill ("Known branch divergence")
|
||||
|
||||
@@ -6,6 +6,13 @@ top section matching the released version — the heading must have the exact
|
||||
form `## Changes in <version> (<date>)` and the whole section must stay under
|
||||
500 characters. See `.claude/skills/releasing-healthchat/SKILL.md`.
|
||||
|
||||
## Changes in 26.10.1 (2026-10-21)
|
||||
|
||||
🐛 Fehlerbehebungen
|
||||
|
||||
- Anrufe aus der Android-App lassen das iPhone wieder klingeln.
|
||||
- Abgebrochene Anrufe werden auf Android wieder sofort beendet.
|
||||
|
||||
## Changes in 26.10.0 (2026-10-20)
|
||||
|
||||
🎉 Neue Funktionen
|
||||
|
||||
@@ -239,7 +239,14 @@ sigpwned_emoji4j = "com.sigpwned:emoji4j-core:16.0.0"
|
||||
metro_runtime = { module = "dev.zacsweers.metro:runtime", version.ref = "metro" }
|
||||
|
||||
# Element Call
|
||||
element_call_embedded = "io.element.android:element-call-embedded:0.28.0"
|
||||
# HealthChat fork: pinned to 0.26.1, the last Element Call that still publishes `livekit_alias` in its
|
||||
# call membership (element-call #4307, matrix-js-sdk #5573, first shipped in 0.28.0). ruma requires the
|
||||
# field, so a Rust-SDK client (Element X iOS and this app) drops the membership, `has_active_room_call`
|
||||
# stays false and no incoming call rings. iOS embeds the same 0.26.1; the hosted Element Call on the
|
||||
# server must stay on 0.26.1 too, or calls from web and desktop stop ringing. 0.27.0 exists on Maven
|
||||
# only, without a GitHub release. Lift the pin only when both apps ship a Rust SDK whose ruma accepts
|
||||
# memberships without the alias.
|
||||
element_call_embedded = "io.element.android:element-call-embedded:0.26.1"
|
||||
# The native MatrixRTC call component. Versions come from the BOM, so every artifact moves together.
|
||||
element_call_bom = { module = "io.element.android:element-call-bom", version.ref = "element_call" }
|
||||
element_call_api = { module = "io.element.android:element-call-api" }
|
||||
|
||||
@@ -45,7 +45,7 @@ private const val versionMonth = 10
|
||||
* Release number in the month. Value must be in [0,99].
|
||||
* Do not update this value. it is updated by the release script.
|
||||
*/
|
||||
private const val versionReleaseNumber = 0
|
||||
private const val versionReleaseNumber = 1
|
||||
|
||||
object Versions {
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user