Skip to content

Commit

Permalink
Merge pull request #1744 from bugsnag/release-v6.32.1
Browse files Browse the repository at this point in the history
Release v6.32.1
  • Loading branch information
kstenerud authored Feb 27, 2025
2 parents fe54a8f + 4da533b commit 444d826
Show file tree
Hide file tree
Showing 22 changed files with 108 additions and 31 deletions.
6 changes: 3 additions & 3 deletions .buildkite/pipeline.full.yml
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ steps:
- xcframework_cocoa_fixture
timeout_in_minutes: 10
agents:
queue: opensource-mac-cocoa-10.13
queue: macos-10.13
plugins:
artifacts#v1.9.3:
download: "features/fixtures/macos/output/macOSTestAppXcFramework.zip"
Expand Down Expand Up @@ -795,7 +795,7 @@ steps:
- cocoa_fixture
timeout_in_minutes: 60
agents:
queue: opensource-mac-cocoa-10.14
queue: macos-10.14
plugins:
artifacts#v1.9.3:
download: ["features/fixtures/macos/output/macOSTestApp_Release.zip"]
Expand All @@ -812,7 +812,7 @@ steps:
- cocoa_fixture
timeout_in_minutes: 60
agents:
queue: opensource-mac-cocoa-10.13
queue: macos-10.13
plugins:
artifacts#v1.9.3:
download: ["features/fixtures/macos/output/macOSTestApp_Release.zip"]
Expand Down
10 changes: 5 additions & 5 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ steps:
- label: macOS 10.14 unit tests
timeout_in_minutes: 10
agents:
queue: opensource-mac-cocoa-10.14
queue: macos-10.14
commands:
- ./scripts/run-unit-tests.sh PLATFORM=macOS
artifact_paths:
Expand All @@ -122,7 +122,7 @@ steps:
- label: macOS 10.13 unit tests
timeout_in_minutes: 10
agents:
queue: opensource-mac-cocoa-10.13
queue: macos-10.13
commands:
- ./scripts/run-unit-tests.sh PLATFORM=macOS
artifact_paths:
Expand Down Expand Up @@ -329,7 +329,7 @@ steps:
- cocoa_fixture
timeout_in_minutes: 10
agents:
queue: opensource-mac-cocoa-10.14
queue: macos-10.14
plugins:
artifacts#v1.5.0:
download: "features/fixtures/macos/output/macOSTestApp_Release.zip"
Expand All @@ -348,7 +348,7 @@ steps:
- cocoa_fixture
timeout_in_minutes: 10
agents:
queue: opensource-mac-cocoa-10.13
queue: macos-10.13
plugins:
artifacts#v1.5.0:
download: "features/fixtures/macos/output/macOSTestApp_Release.zip"
Expand Down Expand Up @@ -752,7 +752,7 @@ steps:
- cocoa_fixture
timeout_in_minutes: 10
agents:
queue: opensource-mac-cocoa-10.13
queue: macos-10.13
plugins:
artifacts#v1.5.0:
download: "features/fixtures/macos/output/macOSTestApp_Debug.zip"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
DEVELOPER_DIR: /Applications/Xcode_15.4.app
steps:
- name: Checkout pull request HEAD
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Install dependencies
Expand All @@ -30,13 +30,13 @@ jobs:
runs-on: macos-14
steps:
- name: Checkout target branch
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: ${{ github.base_ref }}
- name: Build framework
run: xcodebuild -project Bugsnag.xcodeproj -configuration Release -target Bugsnag-iOS -destination generic/platform=iOS -quiet clean build VALID_ARCHS=arm64 RUN_CLANG_STATIC_ANALYZER=NO && mv build build.base
- name: Checkout pull request merge branch
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
clean: false
fetch-depth: 100
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ jobs:

steps:
- name: "Checkout code"
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
persist-credentials: false

- name: "Run analysis"
uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0
with:
results_file: results.sarif
results_format: sarif
Expand All @@ -59,7 +59,7 @@ jobs:
# Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF
# format to the repository Actions tab.
- name: "Upload artifact"
uses: actions/upload-artifact@97a0fba1372883ab732affbe8f94b823f91727db # v3.pre.node20
uses: actions/upload-artifact@c24449f33cd45d4826c6702db7e49f7cdb9b551d # v3.pre.node20
with:
name: SARIF file
path: results.sarif
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/update_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ jobs:
runs-on: macos-latest
steps:
- name: Checkout bugsnag-cocoa
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

- name: Checkout docs branch
uses: actions/checkout@ee0669bd1cc54295c223e0bb666b733df41de1c5 # v2.7.0
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
ref: gh-pages
path: docs
Expand Down
4 changes: 2 additions & 2 deletions .jazzy.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@ author_url: "https://www.bugsnag.com"
author: "Bugsnag Inc"
clean: false # avoid deleting docs/.git
framework_root: "Bugsnag"
github_file_prefix: "https://github.com/bugsnag/bugsnag-cocoa/tree/v6.32.0/Bugsnag"
github_file_prefix: "https://github.com/bugsnag/bugsnag-cocoa/tree/v6.32.1/Bugsnag"
github_url: "https://github.com/bugsnag/bugsnag-cocoa"
hide_documentation_coverage: true
module: "Bugsnag"
module_version: "6.32.0"
module_version: "6.32.1"
objc: true
output: "docs"
readme: "README.md"
Expand Down
4 changes: 2 additions & 2 deletions Bugsnag.podspec.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Bugsnag",
"version": "6.32.0",
"version": "6.32.1",
"summary": "The Bugsnag crash reporting framework for Apple platforms.",
"homepage": "https://bugsnag.com",
"license": "MIT",
Expand All @@ -9,7 +9,7 @@
},
"source": {
"git": "https://github.com/bugsnag/bugsnag-cocoa.git",
"tag": "v6.32.0"
"tag": "v6.32.1"
},
"ios": {
"frameworks": [
Expand Down
7 changes: 7 additions & 0 deletions Bugsnag/FeatureFlags/BSGAtomicFeatureFlagStore.m
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@
@implementation BSGAtomicFeatureFlagStore

+ (instancetype)store {
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
nameToFlag = [NSMutableDictionary dictionary];
});
return [self new];
}

Expand Down Expand Up @@ -102,6 +106,7 @@ - (void)_addFeatureFlag:(nonnull NSString *)name withVariant:(nullable NSString
[self _awaitAtomicFeatureFlagsLockIfNeeded];
newItem->previous = tail;
atomic_store(&g_feature_flags_tail, newItem);
nameToFlag[name] = [NSValue valueWithPointer:newItem];
}

- (NSData *)_dataForFeatureFlagWithName:(nonnull NSString *)name variant:(nullable NSString *)variant {
Expand Down Expand Up @@ -132,6 +137,7 @@ - (void)_removeFeatureFlagWithName:(NSString *)name {
atomic_store(&g_feature_flags_tail, flag->previous);
}
free(flag);
nameToFlag[name] = nil;
}
}

Expand All @@ -144,6 +150,7 @@ - (void)_clearAll {
item = next;
}
atomic_store(&g_feature_flags_tail, NULL);
nameToFlag = [NSMutableDictionary dictionary];
}

@end
Expand Down
2 changes: 1 addition & 1 deletion Bugsnag/Payload/BugsnagNotifier.m
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ - (instancetype)init {
#else
_name = @"Bugsnag Objective-C";
#endif
_version = @"6.32.0";
_version = @"6.32.1";
_url = @"https://github.com/bugsnag/bugsnag-cocoa";
_dependencies = @[];
}
Expand Down
6 changes: 3 additions & 3 deletions BugsnagNetworkRequestPlugin.podspec.json
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
{
"name": "BugsnagNetworkRequestPlugin",
"version": "6.32.0",
"version": "6.32.1",
"summary": "Network request monitoring support for Bugsnag.",
"homepage": "https://bugsnag.com",
"license": "MIT",
"authors": {
"Bugsnag": "[email protected]"
},
"readme": "https://raw.githubusercontent.com/bugsnag/bugsnag-cocoa/v6.32.0/BugsnagNetworkRequestPlugin/README.md",
"readme": "https://raw.githubusercontent.com/bugsnag/bugsnag-cocoa/v6.32.1/BugsnagNetworkRequestPlugin/README.md",
"source": {
"git": "https://github.com/bugsnag/bugsnag-cocoa.git",
"tag": "v6.32.0"
"tag": "v6.32.1"
},
"dependencies": {
"Bugsnag": "~> 6.13"
Expand Down
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
Changelog
=========

## 6.32.1 (2025-02-27)

### Bug Fixes

* Fixed the issue causing flags cleared by calling `+[Bugsnag clearFeatureFlagWithName:]` to appear in crash reports.
[#1740](https://github.com/bugsnag/bugsnag-cocoa/pull/1740)

## 6.32.0 (2025-02-11)

### Enhancements
Expand Down
2 changes: 1 addition & 1 deletion Framework/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>6.32.0</string>
<string>6.32.1</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
Expand Down
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ source 'https://rubygems.org'
# portable for CI, e.g. a specific release. However, leaving it commented out would mean quicker CI.
gem 'bugsnag-maze-runner', '~> 9.0'
gem 'cocoapods'
gem 'xcpretty', '~>0.3.0'
gem 'xcpretty', '~>0.4.0'

# Use a specific branch
#gem 'bugsnag-maze-runner', git: 'https://github.com/bugsnag/maze-runner', branch: 'master'
Expand Down
2 changes: 1 addition & 1 deletion Tests/BugsnagTests/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>6.32.0</string>
<string>6.32.1</string>
<key>CFBundleVersion</key>
<string>1</string>
</dict>
Expand Down
2 changes: 1 addition & 1 deletion Tests/TestHost-iOS/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key>
<string>6.32.0</string>
<string>6.32.1</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
6.32.0
6.32.1
22 changes: 22 additions & 0 deletions features/debug/unhandled_nsexception.feature
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,25 @@ Feature: Uncaught NSExceptions are captured by Bugsnag
And the event "severityReason.type" equals "unhandledException"
And on iOS 12 and later, the event "threads.0.name" equals "メインスレッド"
And on macOS 10.14 and later, the event "threads.0.name" equals "メインスレッド"

Scenario: Throw a NSException with feature flags set
When I run "ObjCExceptionFeatureFlagsScenario" and relaunch the crashed app
And I configure Bugsnag for "ObjCExceptionFeatureFlagsScenario"
And I wait to receive an error
Then the error is valid for the error reporting API
And the exception "errorClass" equals "NSGenericException"
And the "method" of stack frame 0 equals the platform-dependent string:
| ios | <redacted> |
| macos | __exceptionPreprocess |
And the "method" of stack frame 1 equals "objc_exception_throw"
And the "method" of stack frame 2 equals "-[ObjCExceptionFeatureFlagsScenario run]"
And the error payload field "events.0.device.time" is a date
And the event "severity" equals "error"
And the event "unhandled" is true
And the error payload field "events.0.featureFlags" is an array with 3 elements
And the error payload field "events.0.featureFlags.0.featureFlag" equals "Feature Flag1"
And the error payload field "events.0.featureFlags.0.variant" equals "Variant1"
And the error payload field "events.0.featureFlags.1.featureFlag" equals "Feature Flag3"
And the error payload field "events.0.featureFlags.1.variant" equals "Variant3"
And the error payload field "events.0.featureFlags.2.featureFlag" equals "Feature Flag4"
And the error payload field "events.0.featureFlags.2.variant" is null
6 changes: 5 additions & 1 deletion features/fixtures/ios/iOSTestApp.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@
8AF8FCAC22BD1E5400A967CA /* UnhandledInternalNotifyScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AF8FCAB22BD1E5400A967CA /* UnhandledInternalNotifyScenario.swift */; };
8AF8FCAE22BD23BA00A967CA /* HandledInternalNotifyScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AF8FCAD22BD23BA00A967CA /* HandledInternalNotifyScenario.swift */; };
967F6F1229B2236A0054EED8 /* InternalWorkingsScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = 967F6F1129B2236A0054EED8 /* InternalWorkingsScenario.swift */; };
96A25F322D66AFAE00A18116 /* ObjCExceptionFeatureFlagsScenario.m in Sources */ = {isa = PBXBuildFile; fileRef = 96A25F312D66AFAE00A18116 /* ObjCExceptionFeatureFlagsScenario.m */; };
A1117E552535A59100014FDA /* OOMLoadScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1117E542535A59100014FDA /* OOMLoadScenario.swift */; };
A1117E572535B22300014FDA /* OOMAutoDetectErrorsScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1117E562535B22300014FDA /* OOMAutoDetectErrorsScenario.swift */; };
A1117E592535B29800014FDA /* OOMEnabledErrorTypesScenario.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1117E582535B29800014FDA /* OOMEnabledErrorTypesScenario.swift */; };
Expand Down Expand Up @@ -328,6 +329,7 @@
8AF8FCAB22BD1E5400A967CA /* UnhandledInternalNotifyScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UnhandledInternalNotifyScenario.swift; sourceTree = "<group>"; };
8AF8FCAD22BD23BA00A967CA /* HandledInternalNotifyScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HandledInternalNotifyScenario.swift; sourceTree = "<group>"; };
967F6F1129B2236A0054EED8 /* InternalWorkingsScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InternalWorkingsScenario.swift; sourceTree = "<group>"; };
96A25F312D66AFAE00A18116 /* ObjCExceptionFeatureFlagsScenario.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjCExceptionFeatureFlagsScenario.m; sourceTree = "<group>"; };
A1117E542535A59100014FDA /* OOMLoadScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OOMLoadScenario.swift; sourceTree = "<group>"; };
A1117E562535B22300014FDA /* OOMAutoDetectErrorsScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OOMAutoDetectErrorsScenario.swift; sourceTree = "<group>"; };
A1117E582535B29800014FDA /* OOMEnabledErrorTypesScenario.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OOMEnabledErrorTypesScenario.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -545,6 +547,7 @@
8A096DFB27C7E77600DB6ECC /* CxxBareThrowScenario.mm */,
010BAAFA2833CE570003FF36 /* CxxExceptionOverrideScenario.mm */,
F429550B682F8F9677305881 /* CxxExceptionScenario.mm */,
09F025162BAD7B04007D9F73 /* DelayedNotifyErrorScenario.swift */,
010BAAF42833CE570003FF36 /* DisableAllExceptManualExceptionsAndCrashScenario.m */,
010BAB402833D2AA0003FF36 /* DisabledReleaseStageAutoSessionScenario.swift */,
010BAB3C2833D2890003FF36 /* DisabledReleaseStageManualSessionScenario.swift */,
Expand Down Expand Up @@ -595,6 +598,7 @@
E753F24524927409001FB671 /* NotifyCallbackCrashScenario.swift */,
8A32DB8122424E3000EDD92F /* NSExceptionShiftScenario.m */,
F4295E86DC0BE9DC731B0D1C /* NullPointerScenario.m */,
96A25F312D66AFAE00A18116 /* ObjCExceptionFeatureFlagsScenario.m */,
010BAAF52833CE570003FF36 /* ObjCExceptionOverrideScenario.m */,
F429521A8EEB435DCB6EACE1 /* ObjCExceptionScenario.m */,
F429511ED32FC9FB46649CAE /* ObjCMsgSendScenario.m */,
Expand Down Expand Up @@ -680,7 +684,6 @@
010BAAF22833CE570003FF36 /* UserPersistencePersistUserClientScenario.m */,
010BAAF82833CE570003FF36 /* UserPersistencePersistUserScenario.m */,
E700EE49247D1164008CFFB6 /* UserSessionOverrideScenario.swift */,
09F025162BAD7B04007D9F73 /* DelayedNotifyErrorScenario.swift */,
);
name = scenarios;
path = ../shared/scenarios;
Expand Down Expand Up @@ -948,6 +951,7 @@
010BAB332833D1E80003FF36 /* UnhandledErrorInvalidReleaseStageScenario.swift in Sources */,
E700EE4E247D1317008CFFB6 /* UserFromClientScenario.swift in Sources */,
E7B79CDA24800A5D0039FB88 /* MetadataMergeScenario.swift in Sources */,
96A25F322D66AFAE00A18116 /* ObjCExceptionFeatureFlagsScenario.m in Sources */,
E7B79CD8247FD7810039FB88 /* AutoContextNSExceptionScenario.swift in Sources */,
010BAB3B2833D2280003FF36 /* UnhandledErrorValidReleaseStageScenario.swift in Sources */,
010BDFB92885562D007025F9 /* ReportBackgroundAppHangScenario.swift in Sources */,
Expand Down
Loading

0 comments on commit 444d826

Please sign in to comment.