Skip to content

Commit b8bed44

Browse files
committed
Squashed commit of the following:
commit ffb40f2 Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 14:08:38 2026 -0800 Prerelease releases commit f868a82 Merge: 0724e8b fc4c27b Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 14:08:02 2026 -0800 Merge branch 'nm/android-release-testing' of github.com:xmtp/libxmtp into nm/android-release-testing commit 0724e8b Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 13:31:17 2026 -0800 Normalize versions commit fc4c27b Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Date: Thu Feb 5 21:22:35 2026 +0000 release: iOS SDK 4.9.0-dev.02d365e [skip ci] commit 02d365e Merge: c273deb 7a88f71 Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 13:16:32 2026 -0800 Merge branch 'nm/android-release-testing' of github.com:xmtp/libxmtp into nm/android-release-testing commit c273deb Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 13:16:10 2026 -0800 Fix podspec commit 7a88f71 Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Date: Thu Feb 5 21:15:05 2026 +0000 release: iOS SDK 4.9.0-dev.4f1b2db-dev.dfd0fb5 [skip ci] commit dfd0fb5 Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 13:09:43 2026 -0800 add xmtpv3.swift commit 42b816c Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Date: Thu Feb 5 20:49:26 2026 +0000 release: iOS SDK 4.9.0-dev.4f1b2db [skip ci] commit 4f1b2db Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 12:40:02 2026 -0800 Switch back to 4.9.0 commit 290d5b3 Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Date: Thu Feb 5 20:09:01 2026 +0000 release: iOS SDK 4.9.0-dev.9d92e9b [skip ci] commit 9d92e9b Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 12:02:50 2026 -0800 Remove podspec changes commit fef9be4 Merge: f980cf3 8880538 Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 12:02:16 2026 -0800 Merge branch 'nm/android-release-testing' of github.com:xmtp/libxmtp into nm/android-release-testing commit f980cf3 Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 12:00:03 2026 -0800 Fix permissions commit 8880538 Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Date: Thu Feb 5 19:43:32 2026 +0000 release: iOS SDK 4.9.0-dev.50f0f4a [skip ci] commit 50f0f4a Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 11:36:30 2026 -0800 Update podspec commit 9ded6c5 Merge: 9cf82d4 318fb81 Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 11:35:45 2026 -0800 Merge branch 'nm/android-release-testing' of github.com:xmtp/libxmtp into nm/android-release-testing commit 9cf82d4 Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 11:35:14 2026 -0800 Delete xmtpv3.swift commit 318fb81 Author: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Date: Thu Feb 5 19:31:29 2026 +0000 release: iOS SDK 4.9.0-dev.e2c9b3f [skip ci] commit e2c9b3f Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 11:18:51 2026 -0800 Don't need fetch depth for computing the version commit 2b16646 Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 11:16:47 2026 -0800 Fix artifact cleanup commit 5e4a58a Merge: 0839c72 719f35e Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 10:49:35 2026 -0800 Merge branch 'main' into nm/android-release-testing commit 719f35e Author: Dakota Brink <779390+codabrink@users.noreply.github.com> Date: Thu Feb 5 13:33:55 2026 -0500 Add missing indexes (#3121) Improve queries on commit log tables and group messages expiry. Before: <img width="2429" height="1227" alt="image" src="https://github.com/user-attachments/assets/2a121cd6-5a6d-45ef-8ac8-c25739d191a6" /> After: <img width="1300" height="317" alt="image" src="https://github.com/user-attachments/assets/6b10905b-1bbc-4e57-aaa5-92b2f9c322f2" /> commit 0839c72 Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 10:23:08 2026 -0800 Update Cargo.toml package version commit df7ae78 Author: Dakota Brink <779390+codabrink@users.noreply.github.com> Date: Thu Feb 5 13:07:50 2026 -0500 Fix Metric Timeouts (#3131) Metrics would by default wait for either a notify or a timeout to resolve. But the notify would never come if the condition was already met. This creates a future that resolves instantly if the condition is already met, avoiding timeouts on WASM test that are metric check-heavy. commit 6f88529 Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 07:51:23 2026 -0800 fix(android): update SDK for new FFI bindings API ## Summary Fixed all Android SDK build errors caused by API changes in the uniffi bindings. ### Changes Made **7 files modified:** | File | Changes | |------|---------| | **Client.kt** | Added `DbOptions` import; wrapped `db` and `encryptionKey` parameters in `DbOptions` record for both ephemeral and real client creation | | **Conversations.kt** | Changed `FfiSubscribeException` → `FfiException`; renamed `createGroup()` → `createGroupByIdentity()` for identity-based calls; renamed `createGroupWithInboxIds()` → `createGroup()` for inbox ID calls; renamed `findOrCreateDm()` → `findOrCreateDmByIdentity()` for identity-based calls; renamed `findOrCreateDmByInboxId()` → `findOrCreateDm()` for inbox ID calls | | **Dm.kt** | Changed `FfiSubscribeException` → `FfiException` in callback | | **Group.kt** | Changed `FfiSubscribeException` → `FfiException`; renamed `addMembers()` → `addMembersByIdentity()` for identity-based calls; renamed `removeMembers()` → `removeMembersByIdentity()` for identity-based calls; renamed `addMembersByInboxId()` → `addMembers()` for inbox ID calls; renamed `removeMembersByInboxId()` → `removeMembers()` for inbox ID calls | | **PrivatePreferences.kt** | Changed `FfiSubscribeException` → `FfiException` in callbacks | | **MultiRemoteAttachmentCodec.kt** | Changed `FfiRemoteAttachmentInfo` → `FfiRemoteAttachment` | | **DecodedMessageV2.kt** | Removed unused `FfiRemoteAttachmentInfo` import; changed `mapRemoteAttachmentInfo` parameter type to `FfiRemoteAttachment`; fixed nullable `contentLength` field | **Additional changes:** - Applied `spotlessApply` to fix code formatting - Updated lint baseline to account for pre-existing NewApi warnings in generated uniffi bindings commit 3a3ab20 Author: Nicholas Molnar <65710+neekolas@users.noreply.github.com> Date: Thu Feb 5 00:45:23 2026 -0800 fix(release-tools): address code review findings - Add fetch-depth to compute-version checkout for consistency - Make gradle.properties regex handle whitespace around equals - Add Android support to publish-release.yml workflow - Add test for whitespace handling
1 parent 5939727 commit b8bed44

File tree

21 files changed

+307
-171
lines changed

21 files changed

+307
-171
lines changed
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: "Setup Release Tools"
2+
description: "Install release tools and make xmtp-release available in PATH"
3+
runs:
4+
using: "composite"
5+
steps:
6+
- uses: ./.github/actions/setup-node
7+
- name: Install release tools
8+
working-directory: dev/release-tools
9+
shell: bash
10+
run: yarn install
11+
- name: Add xmtp-release to PATH
12+
shell: bash
13+
run: |
14+
BIN_DIR="$RUNNER_TEMP/xmtp-release-bin"
15+
mkdir -p "$BIN_DIR"
16+
cat > "$BIN_DIR/xmtp-release" << 'WRAPPER'
17+
#!/usr/bin/env bash
18+
cd "$GITHUB_WORKSPACE/dev/release-tools" && exec yarn cli "$@"
19+
WRAPPER
20+
chmod +x "$BIN_DIR/xmtp-release"
21+
echo "$BIN_DIR" >> "$GITHUB_PATH"
22+
- name: Configure git user
23+
shell: bash
24+
run: |
25+
git config user.name "github-actions[bot]"
26+
git config user.email "github-actions[bot]@users.noreply.github.com"

.github/workflows/create-release-branch.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,7 @@ jobs:
4545
with:
4646
ref: ${{ inputs.base-ref }}
4747
fetch-depth: 0
48-
- uses: ./.github/actions/setup-node
49-
- name: Install release tools
50-
working-directory: dev/release-tools
51-
run: yarn install
48+
- uses: ./.github/actions/setup-release-tools
5249
- name: Create release branch
5350
env:
5451
RELEASE_VERSION: ${{ inputs.version }}
@@ -59,13 +56,11 @@ jobs:
5956
git config user.name "github-actions[bot]"
6057
git config user.email "github-actions[bot]@users.noreply.github.com"
6158
62-
cd dev/release-tools
63-
yarn cli create-release-branch \
59+
xmtp-release create-release-branch \
6460
--version "$RELEASE_VERSION" \
6561
--base "$BASE_REF" \
6662
--ios "$IOS_BUMP" \
6763
--android "$ANDROID_BUMP"
68-
cd ../..
6964
7065
git push -u origin "release/${RELEASE_VERSION}"
7166
- name: Create pull request

.github/workflows/noop.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,16 @@ on:
1414
- "!.github/workflows/lint-wasm-bindings.yml"
1515
- "!.github/workflows/lint-ios.yml"
1616
- "!.github/workflows/lint-toml.yml"
17+
- "!.github/workflows/test-android.yml"
18+
- "!.github/workflows/lint-android.yml"
1719
- "!.github/workflows/check-ios-android-bindings.yml"
1820
# Source paths that trigger real test/lint workflows
1921
- "!bindings/**"
2022
- "!crates/**"
2123
- "!apps/mls_validation_service/**"
2224
- "!sdks/ios/**"
25+
- "!sdks/android/**"
26+
- "!nix/**"
2327
- "!dev/up"
2428
- "!dev/docker/**"
2529
- "!Package.swift"

.github/workflows/release-android.yml

Lines changed: 17 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -21,71 +21,42 @@ on:
2121
value: ${{ jobs.publish.outputs.version }}
2222

2323
jobs:
24-
compute-version:
25-
runs-on: ubuntu-latest
24+
publish:
25+
runs-on: warp-ubuntu-latest-x64-16x
2626
outputs:
2727
version: ${{ steps.version.outputs.version }}
2828
steps:
2929
- uses: actions/checkout@v6
3030
with:
3131
ref: ${{ inputs.ref }}
3232
fetch-depth: 0
33-
- uses: ./.github/actions/setup-node
34-
- name: Install release tools
35-
working-directory: dev/release-tools
36-
run: yarn install
33+
- uses: ./.github/actions/setup-release-tools
34+
- uses: ./.github/actions/setup-nix
35+
with:
36+
github-token: ${{ github.token }}
37+
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
38+
3739
- name: Compute version
3840
id: version
39-
working-directory: dev/release-tools
4041
run: |
4142
if [ "${{ inputs.release-type }}" = "rc" ]; then
42-
VERSION=$(yarn cli compute-version --sdk android --release-type rc --rc-number ${{ inputs.rc-number }})
43+
VERSION=$(xmtp-release compute-version --sdk android --release-type rc --rc-number ${{ inputs.rc-number }})
4344
elif [ "${{ inputs.release-type }}" = "dev" ]; then
44-
VERSION=$(yarn cli compute-version --sdk android --release-type dev)
45+
VERSION=$(xmtp-release compute-version --sdk android --release-type dev)
4546
else
46-
VERSION=$(yarn cli compute-version --sdk android --release-type final)
47+
VERSION=$(xmtp-release compute-version --sdk android --release-type final)
4748
fi
4849
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
4950
echo "Computed version: $VERSION"
5051
51-
publish:
52-
needs: [compute-version]
53-
runs-on: warp-ubuntu-latest-arm64-8x
54-
outputs:
55-
version: ${{ needs.compute-version.outputs.version }}
56-
steps:
57-
- uses: actions/checkout@v6
58-
with:
59-
ref: ${{ inputs.ref }}
60-
fetch-depth: 0
61-
- uses: ./.github/actions/setup-node
62-
- uses: ./.github/actions/setup-nix
63-
with:
64-
github-token: ${{ github.token }}
65-
cachix-auth-token: ${{ secrets.CACHIX_AUTH_TOKEN }}
66-
67-
- name: Install release tools
68-
working-directory: dev/release-tools
69-
run: yarn install
70-
7152
- name: Set version in gradle.properties
72-
working-directory: dev/release-tools
7353
env:
74-
VERSION: ${{ needs.compute-version.outputs.version }}
75-
run: yarn cli set-manifest-version --sdk android --version "$VERSION"
54+
VERSION: ${{ steps.version.outputs.version }}
55+
run: xmtp-release set-manifest-version --sdk android --version "$VERSION"
7656

7757
- name: Build Android bindings
7858
run: ./sdks/android/dev/bindings
7959

80-
- name: Configure JDK
81-
uses: actions/setup-java@v4
82-
with:
83-
distribution: "adopt"
84-
java-version: "17"
85-
86-
- name: Setup Gradle
87-
uses: gradle/actions/setup-gradle@v3
88-
8960
- name: Build and publish
9061
working-directory: sdks/android
9162
env:
@@ -94,26 +65,9 @@ jobs:
9465
SIGN_KEY: ${{ secrets.OSSRH_GPG_SECRET_KEY }}
9566
SIGN_PASSWORD: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }}
9667
MAVEN_PROFILE_ID: ${{ secrets.MAVEN_PROFILE_ID }}
97-
run: ./gradlew build publishToSonatype closeAndReleaseSonatypeStagingRepository
98-
99-
- name: Commit and tag (final releases only)
100-
if: inputs.release-type == 'final'
101-
env:
102-
VERSION: ${{ needs.compute-version.outputs.version }}
103-
run: |
104-
TAG="android-${VERSION}"
105-
git config user.name "github-actions[bot]"
106-
git config user.email "github-actions[bot]@users.noreply.github.com"
107-
git tag "$TAG"
108-
git push origin HEAD "$TAG"
68+
run: nix develop .#android --command ./gradlew build publishToSonatype closeAndReleaseSonatypeStagingRepository
10969

110-
- name: Tag only (dev/rc releases)
111-
if: inputs.release-type != 'final'
70+
- name: Tag release
11271
env:
113-
VERSION: ${{ needs.compute-version.outputs.version }}
114-
run: |
115-
TAG="android-${VERSION}"
116-
git config user.name "github-actions[bot]"
117-
git config user.email "github-actions[bot]@users.noreply.github.com"
118-
git tag "$TAG"
119-
git push origin "$TAG"
72+
VERSION: ${{ steps.version.outputs.version }}
73+
run: xmtp-release tag-release --sdk android --version "$VERSION" --push-branch

0 commit comments

Comments
 (0)