Skip to content

Commit ee033a6

Browse files
Merge branch 'master' into 001-fix-urlsession-deallocation
2 parents 4cc5359 + c09c7c5 commit ee033a6

7 files changed

Lines changed: 38 additions & 13 deletions

File tree

.claude/skills/release/skill.sh

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#!/bin/bash
22
set -euo pipefail
3+
set +H # Disable history expansion to prevent '!' in content from being expanded
34

45
# Optimizely Flutter SDK - Release (Step 2)
56
# Publishes to pub.dev and creates GitHub release
@@ -28,22 +29,28 @@ git diff-index --quiet HEAD -- || error "Working tree has uncommitted changes"
2829
PUBSPEC_VERSION=$(grep '^version:' pubspec.yaml | awk '{print $2}')
2930
[[ "$PUBSPEC_VERSION" != "$VERSION" ]] && error "Version mismatch! pubspec.yaml: $PUBSPEC_VERSION, requested: $VERSION"
3031

31-
# Verify authentication
32+
# Verify authentication (note: gh auth status only checks authentication, not that the
33+
# token has the required 'repo' scope needed to create releases)
3234
gh auth status &>/dev/null || error "GitHub CLI not authenticated. Run: gh auth login"
3335

3436
success "Pre-flight checks passed"
3537

3638
# Create temporary file for dry-run output (prevents symlink attacks)
3739
DRY_RUN_LOG=$(mktemp)
38-
trap "rm -f '$DRY_RUN_LOG'" EXIT
40+
trap "rm -f \"${DRY_RUN_LOG}\"" EXIT
3941

4042
# Dry run
4143
info "Running pub publish dry-run..."
42-
if ! flutter packages pub publish --dry-run 2>&1 | tee "$DRY_RUN_LOG"; then
44+
flutter packages pub publish --dry-run 2>&1 | tee "$DRY_RUN_LOG"
45+
FLUTTER_EXIT="${PIPESTATUS[0]}"
46+
if [[ "$FLUTTER_EXIT" != "0" ]]; then
4347
echo ""
44-
read -p "Dry-run found warnings. Continue? (y/N) " -n 1 -r
48+
if [[ ! -t 0 ]]; then
49+
error "Dry-run found warnings. Cannot prompt in non-interactive mode. Fix warnings or run interactively."
50+
fi
51+
read -p "Dry-run found warnings. Continue? (y/N) " -r -n 1
4552
echo
46-
[[ ! $REPLY =~ ^[Yy]$ ]] && error "Aborted by user"
53+
[[ ! "$REPLY" =~ ^[Yy]$ ]] && error "Aborted by user"
4754
fi
4855

4956
# Publish
@@ -52,10 +59,13 @@ flutter packages pub publish || error "Publishing failed"
5259
success "Published to pub.dev!"
5360

5461
# Extract CHANGELOG
55-
# Escape VERSION for use in sed regex (prevent regex metacharacter interpretation)
62+
# Escape VERSION for use in sed regex (prevent regex metacharacter interpretation).
63+
# VERSION is already validated against ^[0-9]+\.[0-9]+\.[0-9]+(-[a-z0-9]+)?$ above,
64+
# so it cannot contain '|' (the alternate sed delimiter used below); escaping here
65+
# is an additional safety measure for other metacharacters.
5666
ESCAPED_VERSION=$(printf '%s\n' "$VERSION" | sed 's/[.[\*^$()+?{|]/\\&/g')
57-
CHANGELOG_CONTENT=$(sed -n "/^## ${ESCAPED_VERSION}\$/,/^## [0-9]/p" CHANGELOG.md | sed '1d;$d')
58-
[[ -z "$CHANGELOG_CONTENT" ]] && CHANGELOG_CONTENT="Release $VERSION\n\nSee CHANGELOG.md for details."
67+
CHANGELOG_CONTENT=$(sed -n "\|^## ${ESCAPED_VERSION}\$|,\|^## [0-9]|p" CHANGELOG.md | sed '1d;$d')
68+
[[ -z "$CHANGELOG_CONTENT" ]] && CHANGELOG_CONTENT=$(printf 'Release %s\n\nSee CHANGELOG.md for details.' "$VERSION")
5969

6070
RELEASE_NOTES="## $VERSION
6171

CHANGELOG.md

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,20 @@
11
# Optimizely Flutter SDK Changelog
22

3+
## 3.5.0
4+
May 13, 2026
5+
6+
### New Features
7+
8+
**Feature Rollout**: Introduced Feature Rollout capabilities. Feature Rollouts represent a new experiment type merging Targeted Delivery simplicity with A/B test measurement capabilities.
9+
See [Feature Rollout docs](https://support.optimizely.com/hc/en-us/articles/45552846481037-Run-Feature-Rollouts-in-Feature-Experimentation) for more information.
10+
11+
### Dependency Updates
12+
13+
* Bumped iOS OptimizelySwiftSDK from 5.2.1 to 5.3.0
14+
* Bumped Android android-sdk from 5.1.1 to 5.2.0
15+
16+
* Bump native SDKs for feature rollout support ([#111](https://github.com/optimizely/optimizely-flutter-sdk/pull/111))
17+
318
## 3.4.3
419
May 01, 2026
520

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Other Flutter platforms are not currently supported by this SDK.
3030
To add the flutter-sdk to your project dependencies, include the following in your app's pubspec.yaml:
3131

3232
```
33-
optimizely_flutter_sdk: ^3.4.3
33+
optimizely_flutter_sdk: ^3.5.0
3434
```
3535

3636
Then run

android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ dependencies {
6969
implementation 'org.slf4j:slf4j-api:2.0.7'
7070

7171
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.1.0"
72-
implementation "com.optimizely.ab:android-sdk:5.1.1"
72+
implementation "com.optimizely.ab:android-sdk:5.2.0"
7373
implementation 'com.fasterxml.jackson.core:jackson-databind:2.17.2'
7474
implementation ('com.google.guava:guava:19.0') {
7575
exclude group:'com.google.guava', module:'listenablefuture'

ios/optimizely_flutter_sdk.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ Pod::Spec.new do |s|
1313
s.source = { :path => '.' }
1414
s.source_files = 'Classes/**/*'
1515
s.dependency 'Flutter'
16-
s.dependency 'OptimizelySwiftSDK', '5.2.1'
16+
s.dependency 'OptimizelySwiftSDK', '5.3.0'
1717
s.platform = :ios, '10.0'
1818
# Flutter.framework does not contain a i386 slice.
1919
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }

lib/package_info.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,5 @@
33

44
class PackageInfo {
55
static const String name = 'optimizely_flutter_sdk';
6-
static const String version = '3.4.3';
6+
static const String version = '3.5.0';
77
}

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: optimizely_flutter_sdk
22
description: This repository houses the Flutter SDK for use with Optimizely Feature Experimentation, Optimizely Full Stack (legacy), and Optimizely Rollouts.
3-
version: 3.4.3
3+
version: 3.5.0
44
homepage: https://github.com/optimizely/optimizely-flutter-sdk
55

66
environment:

0 commit comments

Comments
 (0)