Skip to content

Commit c36f639

Browse files
authored
Merge pull request #3735 from GetStream/develop
Next Release
2 parents 945f0bb + 266c8a5 commit c36f639

121 files changed

Lines changed: 1228 additions & 635 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/sample-distribution.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,3 +94,39 @@ jobs:
9494
env:
9595
ANDROID_FIREBASE_APP_ID: ${{ secrets.ANDROID_FIREBASE_APP_ID }}
9696
FIREBASE_CREDENTIALS_JSON: ${{ secrets.FIREBASE_CREDENTIALS_JSON }}
97+
# Publish the same APK to S3 for the public download link. Reuses the
98+
# artifact the Fastlane step above already built (app-build/), no rebuild.
99+
- name: Ensure AWS CLI is available
100+
if: github.ref == 'refs/heads/develop'
101+
# The self-hosted `public` runner does not ship the AWS CLI. Install v2
102+
# only when missing, to a user-writable dir (no sudo), then expose it.
103+
run: |
104+
if command -v aws >/dev/null 2>&1; then
105+
echo "AWS CLI already installed: $(aws --version)"
106+
exit 0
107+
fi
108+
echo "AWS CLI not found; installing v2..."
109+
case "$(uname -m)" in
110+
x86_64) zip="awscli-exe-linux-x86_64.zip" ;;
111+
aarch64|arm64) zip="awscli-exe-linux-aarch64.zip" ;;
112+
*) echo "Unsupported architecture: $(uname -m)"; exit 1 ;;
113+
esac
114+
curl -fsSL "https://awscli.amazonaws.com/${zip}" -o /tmp/awscliv2.zip
115+
unzip -q /tmp/awscliv2.zip -d /tmp
116+
/tmp/aws/install --bin-dir "$HOME/.local/bin" --install-dir "$HOME/.local/aws-cli" --update
117+
echo "$HOME/.local/bin" >> "$GITHUB_PATH"
118+
"$HOME/.local/bin/aws" --version
119+
- name: Configure AWS credentials
120+
if: github.ref == 'refs/heads/develop'
121+
uses: aws-actions/configure-aws-credentials@v4
122+
with:
123+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
124+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
125+
aws-region: us-east-1
126+
- name: Upload APK to S3
127+
if: github.ref == 'refs/heads/develop'
128+
working-directory: examples/SampleApp
129+
# Public download link: https://getstream.io/downloads/rn-sample-app.apk
130+
run: |
131+
cp app-build/reactnativesampleapp.apk rn-sample-app.apk
132+
aws s3 cp rn-sample-app.apk s3://${{ secrets.AWS_S3_BUCKET }} --sse AES256

examples/SampleApp/ios/Podfile.lock

Lines changed: 41 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -2476,7 +2476,7 @@ PODS:
24762476
- ReactNativeDependencies
24772477
- RNFBApp
24782478
- Yoga
2479-
- RNGestureHandler (2.31.2):
2479+
- RNGestureHandler (3.0.2):
24802480
- hermes-engine
24812481
- RCTRequired
24822482
- RCTTypeSafety
@@ -2526,7 +2526,7 @@ PODS:
25262526
- ReactCommon/turbomodule/core
25272527
- ReactNativeDependencies
25282528
- Yoga
2529-
- RNReanimated (4.3.1):
2529+
- RNReanimated (4.5.1):
25302530
- hermes-engine
25312531
- RCTRequired
25322532
- RCTTypeSafety
@@ -2548,11 +2548,12 @@ PODS:
25482548
- ReactCommon/turbomodule/bridging
25492549
- ReactCommon/turbomodule/core
25502550
- ReactNativeDependencies
2551-
- RNReanimated/apple (= 4.3.1)
2552-
- RNReanimated/common (= 4.3.1)
2551+
- RNReanimated/apple (= 4.5.1)
2552+
- RNReanimated/common (= 4.5.1)
2553+
- RNReanimated/view (= 4.5.1)
25532554
- RNWorklets
25542555
- Yoga
2555-
- RNReanimated/apple (4.3.1):
2556+
- RNReanimated/apple (4.5.1):
25562557
- hermes-engine
25572558
- RCTRequired
25582559
- RCTTypeSafety
@@ -2576,7 +2577,31 @@ PODS:
25762577
- ReactNativeDependencies
25772578
- RNWorklets
25782579
- Yoga
2579-
- RNReanimated/common (4.3.1):
2580+
- RNReanimated/common (4.5.1):
2581+
- hermes-engine
2582+
- RCTRequired
2583+
- RCTTypeSafety
2584+
- React-Core
2585+
- React-Core-prebuilt
2586+
- React-debug
2587+
- React-Fabric
2588+
- React-featureflags
2589+
- React-graphics
2590+
- React-hermes
2591+
- React-ImageManager
2592+
- React-jsi
2593+
- React-NativeModulesApple
2594+
- React-RCTFabric
2595+
- React-renderercss
2596+
- React-rendererdebug
2597+
- React-utils
2598+
- ReactCodegen
2599+
- ReactCommon/turbomodule/bridging
2600+
- ReactCommon/turbomodule/core
2601+
- ReactNativeDependencies
2602+
- RNWorklets
2603+
- Yoga
2604+
- RNReanimated/view (4.5.1):
25802605
- hermes-engine
25812606
- RCTRequired
25822607
- RCTTypeSafety
@@ -2714,7 +2739,7 @@ PODS:
27142739
- ReactCommon/turbomodule/core
27152740
- ReactNativeDependencies
27162741
- Yoga
2717-
- RNWorklets (0.8.3):
2742+
- RNWorklets (0.10.2):
27182743
- hermes-engine
27192744
- RCTRequired
27202745
- RCTTypeSafety
@@ -2736,10 +2761,10 @@ PODS:
27362761
- ReactCommon/turbomodule/bridging
27372762
- ReactCommon/turbomodule/core
27382763
- ReactNativeDependencies
2739-
- RNWorklets/apple (= 0.8.3)
2740-
- RNWorklets/common (= 0.8.3)
2764+
- RNWorklets/apple (= 0.10.2)
2765+
- RNWorklets/common (= 0.10.2)
27412766
- Yoga
2742-
- RNWorklets/apple (0.8.3):
2767+
- RNWorklets/apple (0.10.2):
27432768
- hermes-engine
27442769
- RCTRequired
27452770
- RCTTypeSafety
@@ -2762,7 +2787,7 @@ PODS:
27622787
- ReactCommon/turbomodule/core
27632788
- ReactNativeDependencies
27642789
- Yoga
2765-
- RNWorklets/common (0.8.3):
2790+
- RNWorklets/common (0.10.2):
27662791
- hermes-engine
27672792
- RCTRequired
27682793
- RCTTypeSafety
@@ -2796,7 +2821,7 @@ PODS:
27962821
- SDWebImageWebPCoder (0.15.0):
27972822
- libwebp (~> 1.0)
27982823
- SDWebImage/Core (~> 5.17)
2799-
- stream-chat-react-native (8.1.0):
2824+
- stream-chat-react-native (9.6.1):
28002825
- hermes-engine
28012826
- RCTRequired
28022827
- RCTTypeSafety
@@ -3322,19 +3347,19 @@ SPEC CHECKSUMS:
33223347
RNFastImage: 14580cef91660b889645fb9e87f58a53621db993
33233348
RNFBApp: 3b942e786ca88524ba17df665a1a360fb3eee525
33243349
RNFBMessaging: b82ba0933288d710f5371f57d3115092abf64903
3325-
RNGestureHandler: a97cc64efbfcb7a53969a38310a189a3d5246c65
3350+
RNGestureHandler: 795970e76a4f4bcef87e77c12c5c791d86574ab6
33263351
RNNotifee: 5e3b271e8ea7456a36eec994085543c9adca9168
33273352
RNReactNativeHapticFeedback: 9dc72312c12cb53ee240b5b7aae1e167f3d940a6
3328-
RNReanimated: 8aac6baab55e39ca4e02afd69f77fb127b26520c
3353+
RNReanimated: e9815897227d24f4629b1ca467cf5f26bffdc7eb
33293354
RNScreens: 8d318eb8905fa1d3439a1ce5d567f82ae8245657
33303355
RNShare: 26c9524aee8cc3eedbab6d6b98cacce2f5247893
33313356
RNSVG: 8efa5ad14ceb98fe56c03793bd55bc4bd30ad84b
3332-
RNWorklets: 4931990f73bc8f347586918b2e13f11dfadf3b75
3357+
RNWorklets: 53439575fed8525fb8d1cabcc05a3d4d91e6ffe4
33333358
SDWebImage: e9fc87c1aab89a8ab1bbd74eba378c6f53be8abf
33343359
SDWebImageAVIFCoder: afe194a084e851f70228e4be35ef651df0fc5c57
33353360
SDWebImageSVGCoder: 15a300a97ec1c8ac958f009c02220ac0402e936c
33363361
SDWebImageWebPCoder: 0e06e365080397465cc73a7a9b472d8a3bd0f377
3337-
stream-chat-react-native: eedc4ebe706de6e9bfbcf943599b4e62bad6079f
3362+
stream-chat-react-native: fdb9929071f737e85eee5b8dbdb6bc4e120ac5c4
33383363
Teleport: 58dccc8594d74a77cdc2a2191b60656f9aaac743
33393364
Yoga: e240fec777ff1f21ef42ccebbb44b6d262125855
33403365

examples/SampleApp/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,20 +50,20 @@
5050
"react": "19.2.3",
5151
"react-native": "0.85.3",
5252
"react-native-blob-util": "^0.24.9",
53-
"react-native-gesture-handler": "^2.31.2",
53+
"react-native-gesture-handler": "^3.0.2",
5454
"react-native-haptic-feedback": "^3.0.0",
5555
"react-native-image-picker": "^8.2.1",
5656
"react-native-maps": "^1.27.2",
5757
"react-native-nitro-modules": "0.31.3",
5858
"react-native-nitro-sound": "0.2.9",
59-
"react-native-reanimated": "4.3.1",
59+
"react-native-reanimated": "4.5.1",
6060
"react-native-safe-area-context": "^5.8.0",
6161
"react-native-screens": "^4.25.2",
6262
"react-native-share": "^12.3.1",
6363
"react-native-svg": "^15.15.5",
6464
"react-native-teleport": "^1.1.7",
6565
"react-native-video": "^6.19.2",
66-
"react-native-worklets": "^0.8.3",
66+
"react-native-worklets": "^0.10.2",
6767
"stream-chat": "^9.50.1",
6868
"stream-chat-react-native": "workspace:^",
6969
"stream-chat-react-native-core": "workspace:^"

package/bin/before-tag.sh

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,22 @@ set -eux
1010
PACKAGE_VERSION=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]')
1111
PACKAGE_VERSION_WITHOUT_SHA=$(echo "$PACKAGE_VERSION" | cut -d"+" -f1)
1212

13+
# We bump ONLY the `version` field of the internal packages here and deliberately leave their
14+
# `stream-chat-react-native-core` dependency as `workspace:^`. This script runs during
15+
# semantic-release's *prepare* step, before the release commit + `git push origin main` (see
16+
# `release/prod.js`), so whatever these files look like on disk here is what gets committed.
17+
#
18+
# Bumping `version` is safe to commit: Yarn resolves workspace packages to a `0.0.0-use.local`
19+
# placeholder in the lockfile and keys on the `workspace:^` descriptor, so the version field
20+
# never affects yarn.lock. Resolving `workspace:^` to a concrete version, however, WOULD change
21+
# the lockfile descriptor and break `yarn install --immutable` and local workspace linking.
22+
# That resolution is therefore done only in the published npm tarball, at publish time, in
23+
# `release.sh` (which runs after this commit) and is never committed back to git.
1324
cd native-package
1425
npm version --no-workspaces --allow-same-version --no-git-tag-version "$PACKAGE_VERSION_WITHOUT_SHA"
15-
sed -e 's|"stream-chat-react-native-core": "[^"]*"|"stream-chat-react-native-core": "'"$PACKAGE_VERSION_WITHOUT_SHA"'"|g' -i.bak package.json
16-
rm package.json.bak
1726

1827
cd ../expo-package
1928
npm version --no-workspaces --allow-same-version --no-git-tag-version "$PACKAGE_VERSION_WITHOUT_SHA"
20-
sed -e 's|"stream-chat-react-native-core": "[^"]*"|"stream-chat-react-native-core": "'"$PACKAGE_VERSION_WITHOUT_SHA"'"|g' -i.bak package.json
21-
rm package.json.bak
2229
cd ..
2330

2431
sed -e 's|"version": "[^"]*"|"version": "'"$PACKAGE_VERSION_WITHOUT_SHA"'"|g' -i.bak src/version.json

package/bin/release.sh

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,35 @@
66
set -eux
77

88
PACKAGE_VERSION=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[\",]//g' | tr -d '[[:space:]]')
9+
PACKAGE_VERSION_WITHOUT_SHA=$(echo "$PACKAGE_VERSION" | cut -d"+" -f1)
910
PACKAGE_TAG=$(sed 's/.*-\(.*\)\..*/\1/' <<< "$PACKAGE_VERSION")
1011

12+
# Resolve the `workspace:^` protocol to the concrete published version. npm cannot understand
13+
# Yarn's `workspace:` protocol, so the tarball must carry a real version. We do this ONLY here,
14+
# at publish time as this runs after `semantic-release` has already committed and pushed the release
15+
# commit (see release/prod.js), on a throwaway CI checkout, so the rewrite is never committed.
16+
# That keeps `workspace:^` intact in git for local dev and `yarn install --immutable`, while the
17+
# published packages still depend on a concrete `stream-chat-react-native-core` version.
18+
resolve_workspace_dep() {
19+
sed -e 's|"stream-chat-react-native-core": "[^"]*"|"stream-chat-react-native-core": "'"$PACKAGE_VERSION_WITHOUT_SHA"'"|g' -i.bak package.json
20+
rm package.json.bak
21+
}
22+
1123
# If tag === version it means that its not a prerelease and shouuld set things to latest
1224
if [[ "${PACKAGE_TAG}" != "${PACKAGE_VERSION}" ]]; then
1325
cd native-package
26+
resolve_workspace_dep
1427
npm publish --no-workspaces --tag="$PACKAGE_TAG"
1528

1629
cd ../expo-package
30+
resolve_workspace_dep
1731
npm publish --no-workspaces --tag="$PACKAGE_TAG"
1832
else
1933
cd native-package
34+
resolve_workspace_dep
2035
npm publish --no-workspaces
2136

2237
cd ../expo-package
38+
resolve_workspace_dep
2339
npm publish --no-workspaces
2440
fi
25-
26-

package/expo-package/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
"types": "types/index.d.ts",
2828
"dependencies": {
2929
"mime": "^4.0.7",
30-
"stream-chat-react-native-core": "9.6.1"
30+
"stream-chat-react-native-core": "workspace:^"
3131
},
3232
"peerDependencies": {
3333
"expo": ">=52.0.0",

package/native-package/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
"dependencies": {
3131
"es6-symbol": "^3.1.3",
3232
"mime": "^4.0.7",
33-
"stream-chat-react-native-core": "9.6.1"
33+
"stream-chat-react-native-core": "workspace:^"
3434
},
3535
"peerDependencies": {
3636
"@react-native-camera-roll/camera-roll": ">=7.9.0",

package/src/components/Attachment/Audio/PlayPauseButton.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ import React, { useMemo } from 'react';
22
import { Pressable, PressableProps, StyleProp, StyleSheet, ViewStyle } from 'react-native';
33

44
import { useTheme } from '../../../contexts';
5-
import { Pause } from '../../../icons/pause-fill';
6-
import { Play } from '../../../icons/play-fill';
5+
import { useComponentsContext } from '../../../contexts/componentsContext/ComponentsContext';
76
import { primitives } from '../../../theme';
87
import { buttonSizes } from '../../ui/Button/constants';
98

@@ -31,6 +30,7 @@ export const PlayPauseButton = ({
3130
const {
3231
theme: { semantics },
3332
} = useTheme();
33+
const { icons } = useComponentsContext();
3434
const styles = useStyles();
3535
return (
3636
<Pressable
@@ -45,9 +45,9 @@ export const PlayPauseButton = ({
4545
{...rest}
4646
>
4747
{isPlaying ? (
48-
<Pause fill={semantics.textSecondary} height={20} width={20} strokeWidth={1.5} />
48+
<icons.Pause fill={semantics.textSecondary} height={20} width={20} strokeWidth={1.5} />
4949
) : (
50-
<Play fill={semantics.textSecondary} height={20} width={20} strokeWidth={1.5} />
50+
<icons.Play fill={semantics.textSecondary} height={20} width={20} strokeWidth={1.5} />
5151
)}
5252
</Pressable>
5353
);

0 commit comments

Comments
 (0)