Skip to content

Commit

Permalink
Merge pull request #2 from regnerjr/john/merge-in-fixes-from-upstream
Browse files Browse the repository at this point in the history
Pull in fixes from v5.23.5
  • Loading branch information
Sohil authored Aug 10, 2020
2 parents 88493a6 + c64b617 commit 43aa5fb
Show file tree
Hide file tree
Showing 96 changed files with 1,327 additions and 700 deletions.
52 changes: 15 additions & 37 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,55 +1,33 @@
## Goal

<!-- What is the intent of this change? -->

<!--
Fixes #
Related to #
-->
<!-- Why is this change necessary? -->

## Design

<!-- How does this change work? Why was this approach to the goal used? -->
<!-- Why was this approach used? -->

## Changeset

<!-- List what was added, removed, or changed: -->
<!-- What changed? -->

## Tests

<!-- How was this change tested? What manual and automated tests were
run/added? -->
<!-- How was it tested? -->

## Review

### Outstanding Questions

<!-- Are there any parts of the design or the implementation which seem
less than ideal and that could require additional discussion?
List here: -->
<!--
--------------------------------------------------------------------------------
<!-- Preflight checks. Have I:
Have you:
* Added a changelog entry?
* Checked the scope to ensure the commits are only related to the goal above?
* Commented the code sufficiently?
* Added a CHANGELOG entry, if necessary?
* Checked the scope to ensure the commits are only related to the goal above?
* Considered asynchronicity and thread safety?
* Added any new headers to the "Copy Files" stage of the static iOS target?
* Chosen the correct target branch?
* Considered all of the pre-release checks (see CONTRIBUTING.md), if this is a full release?
--------------------------------------------------------------------------------
-->

- This pull request is ready for:
- [ ] Initial review of the intended approach, not yet feature complete
- [ ] Structural review of the classes, functions, and properties modified
- [ ] Final review

<!-- What do you need from a reviewer to get this changeset
ready for release -->

- [ ] The correct target branch has been selected (`master` for fixes, `next` for
features)
- [ ] Consistency across platforms for structures or concepts added or modified
- [ ] Consistency between the changeset and the goal stated above
- [ ] Internal consistency with the rest of the library - is there any overlap between existing interfaces and any which have been added?
- [ ] Usage friction - is the proposed change in usage cumbersome or complicated?
- [ ] Performance and complexity - are there any cases of unexpected O(n^3) when iterating, recursing, flat mapping, etc?
- [ ] Concurrency concerns - if components are accessed asynchronously, what issues will arise
- [ ] Thoroughness of added tests and any missing edge cases
- [ ] Idiomatic use of the language
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,5 @@ Pods
Carthage
*.idea
features/fixtures/carthage-proj
IDEWorkspaceChecks.plist
Podfile.lock
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": "5.23.0",
"version": "5.23.5",
"summary": "Cocoa notifier for SDK for bugsnag.com",
"homepage": "https://bugsnag.com",
"license": "MIT",
Expand All @@ -9,7 +9,7 @@
},
"source": {
"git": "https://github.com/bugsnag/bugsnag-cocoa.git",
"tag": "v5.23.0"
"tag": "v5.23.5"
},
"frameworks": ["Foundation", "SystemConfiguration"],
"libraries": [
Expand Down
62 changes: 62 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,68 @@
Changelog
=========

## 5.23.5 (2020-07-27)

### Bug fixes

The following bug fixes have been applied to the v5 branch to provide a patch
for users who have not yet upgraded to v6:

* Fix JSON serialisation of strings with control characters
[739](https://github.com/bugsnag/bugsnag-cocoa/pull/739)

* Removed non-thread safe date formatter
[#758](https://github.com/bugsnag/bugsnag-cocoa/pull/758)

## 5.23.4 (2020-07-06)

### Bug Fixes

The following bug fixes have been applied to the v5 branch to provide a patch
for users who have not yet upgraded to v6:

* Fix incorrect string comparison of thread names in Mach exception handling
[#721](https://github.com/bugsnag/bugsnag-cocoa/pull/721)

* Move binary images store declaration from header file
[#725](https://github.com/bugsnag/bugsnag-cocoa/pull/725)

* Avoid dereference null pointer in JSON serialisation
[#637](https://github.com/bugsnag/bugsnag-cocoa/pull/637)
[Naugladur](https://github.com/Naugladur)

## 5.23.3 (2020-06-05)

### Bug Fixes

* Fix DYLD lock mechanism preventing compilation on iOS <10.
[#675](https://github.com/bugsnag/bugsnag-cocoa/pull/675)

## 5.23.2 (2020-05-13)

### Bug Fixes

* Fixed an issue where an app could deadlock during a crash if unfavourable
timing caused DYLD lock contention.
[#580](https://github.com/bugsnag/bugsnag-cocoa/pull/580)

## 5.23.1 (2020-04-08)

### Bug fixes

* Fix possible report corruption when using `notify()` from multiple threads
when configured to skip capturing/reporting background thread contents
(generally only Unity games).
[#442](https://github.com/bugsnag/bugsnag-cocoa/pull/442)

* Added several additional event fields (`codeBundleId`, `osName`, `modelNumber`,
`locale`) that were missing from the OOM reports.
[#444](https://github.com/bugsnag/bugsnag-cocoa/pull/444)

* Bugsnag now correctly records a new session if it is returning to the foreground
after more than 60 seconds in the background.
[#529](https://github.com/bugsnag/bugsnag-cocoa/pull/529)

## 5.23.0 (2019-12-10)

This release removes support for reporting 'partial' or 'minimal' crash reports
Expand Down
114 changes: 85 additions & 29 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,36 +12,58 @@ Thanks for stopping by! This document should cover most topics surrounding contr

## Reporting issues

Are you having trouble getting started? Please [contact us directly](mailto:[email protected]?subject=%5BGitHub%5D%20Cocoa%20-%20having%20trouble%20getting%20started%20with%20Bugsnag&body=Description%3A%0A%0A%28Add%20a%20description%20here%2C%20and%20fill%20in%20your%20environment%20below%3A%29%0A%0A%0AEnvironment%3A%0A%0A%0APaste%20the%20output%20of%20this%20command%20into%20the%20code%20block%20below%20%28use%20%60npm%20ls%60%20instead%0Aof%20%60yarn%20list%60%20if%20you%20are%20using%20npm%29%3A%0A%0A%60%60%60%0Ayarn%20list%20cocoa%20bugsnag-cocoa%20cocoa-code-push%0A%60%60%60%0A%0A-%20cocoapods%20version%20%28if%20any%29%20%28%60pod%20-v%60%29%3A%0A-%20iOS/Android%20version%28s%29%3A%0A-%20simulator/emulator%20or%20physical%20device%3F%3A%0A-%20debug%20mode%20or%20production%3F%3A%0A%0A-%20%5B%20%5D%20%28iOS%20only%29%20%60%5BBugsnagReactNative%20start%5D%60%20is%20present%20in%20the%0A%20%20%60application%3AdidFinishLaunchingWithOptions%3A%60%20method%20in%20your%20%60AppDelegate%60%0A%20%20class%3F%0A-%20%5B%20%5D%20%28Android%20only%29%20%60BugsnagReactNative.start%28this%29%60%20is%20present%20in%20the%0A%20%20%60onCreate%60%20method%20of%20your%20%60MainApplication%60%20class%3F) for assistance with integrating Bugsnag into your application.
If you have spotted a problem with this module, feel free to open a [new issue](https://github.com/bugsnag/bugsnag-cocoa/issues/new?template=Bug_report.md). Here are a few things to check before doing so:

* Are you using the latest version of `Bugsnag`? If not, does updating to the latest version fix your issue?
* Has somebody else [already reported](https://github.com/bugsnag/bugsnag-cocoa/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen) your issue? Feel free to add additional context to or check-in on an existing issue that matches your own.
* Is your issue caused by this module? Only things related to the `bugsnag-cocoa` module should be reported here. For anything else, please [contact us directly](mailto:[email protected]) and we'd be happy to help you out.
Are you having trouble getting started? Please [contact us directly](mailto:[email protected]?subject=%5BGitHub%5D%20Cocoa%20-%20having%20trouble%20getting%20started%20with%20Bugsnag&body=Description%3A%0A%0A%28Add%20a%20description%20here%2C%20and%20fill%20in%20your%20environment%20below%3A%29%0A%0A%0AEnvironment%3A%0A%0A%0APaste%20the%20output%20of%20this%20command%20into%20the%20code%20block%20below%20%28use%20%60npm%20ls%60%20instead%0Aof%20%60yarn%20list%60%20if%20you%20are%20using%20npm%29%3A%0A%0A%60%60%60%0Ayarn%20list%20cocoa%20bugsnag-cocoa%20cocoa-code-push%0A%60%60%60%0A%0A-%20cocoapods%20version%20%28if%20any%29%20%28%60pod%20-v%60%29%3A%0A-%20iOS/Android%20version%28s%29%3A%0A-%20simulator/emulator%20or%20physical%20device%3F%3A%0A-%20debug%20mode%20or%20production%3F%3A%0A%0A-%20%5B%20%5D%20%28iOS%20only%29%20%60%5BBugsnagReactNative%20start%5D%60%20is%20present%20in%20the%0A%20%20%60application%3AdidFinishLaunchingWithOptions%3A%60%20method%20in%20your%20%60AppDelegate%60%0A%20%20class%3F%0A-%20%5B%20%5D%20%28Android%20only%29%20%60BugsnagReactNative.start%28this%29%60%20is%20present%20in%20the%0A%20%20%60onCreate%60%20method%20of%20your%20%60MainApplication%60%20class%3F)
for assistance with integrating Bugsnag into your application. If you have
spotted a problem with this module, feel free to open a
[new issue](https://github.com/bugsnag/bugsnag-cocoa/issues/new?template=Bug_report.md).
Here are a few things to check before doing so:

* Are you using the latest version of `Bugsnag`? If not, does updating to the
latest version fix your issue?
* Has somebody else [already reported](https://github.com/bugsnag/bugsnag-cocoa/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen)
your issue? Feel free to add additional context to or check-in on an existing
issue that matches your own.
* Is your issue caused by this module? Only things related to the
`bugsnag-cocoa` module should be reported here. For anything else, please
[contact us directly](mailto:[email protected]) and we'd be happy to help
you out.

### Fixing issues

If you've identified a fix to a new or existing issue, we welcome contributions!
Here are some helpful suggestions on contributing that help us merge your PR quickly and smoothly:
Here are some helpful suggestions on contributing that help us merge your PR
quickly and smoothly:

* [Fork](https://help.github.com/articles/fork-a-repo) the
[library on GitHub](https://github.com/bugsnag/bugsnag-cocoa)
* Build and test your changes. We have automated tests for many scenarios but its also helpful to use `npm pack` to build the module locally and install it in a real app.
* Build and test your changes. We have automated tests for many scenarios but
its also helpful to use `npm pack` to build the module locally and install it
in a real app.
* Commit and push until you are happy with your contribution
* [Make a pull request](https://help.github.com/articles/using-pull-requests)
* Ensure the automated checks pass (and if it fails, please try to address the cause)
* Ensure the automated checks pass (and if it fails, please try to address the
cause)

### Adding features

Unfortunately we’re unable to accept PRs that add features or refactor the library at this time.
However, we’re very eager and welcome to hearing feedback about the library so please contact us directly to discuss your idea, or open a
[feature request](https://github.com/bugsnag/bugsnag-cocoa/issues/new?template=Feature_request.md) to help us improve the library.
Unfortunately we’re unable to accept PRs that add features or refactor the
library at this time. However, we’re very eager and welcome to hearing
feedback about the library so please contact us directly to discuss your idea,
or open a [feature request](https://github.com/bugsnag/bugsnag-cocoa/issues/new?template=Feature_request.md)
to help us improve the library.

Here’s a bit about our process designing and building the Bugsnag libraries:

* We have an internal roadmap to plan out the features we build, and sometimes we will already be planning your suggested feature!
* Our open source libraries span many languages and frameworks so we strive to ensure they are idiomatic on the given platform, but also consistent in terminology between platforms. That way the core concepts are familiar whether you adopt Bugsnag for one platform or many.
* Finally, one of our goals is to ensure our libraries work reliably, even in crashy, multi-threaded environments. Oftentimes, this requires an intensive engineering design and code review process that adheres to our style and linting guidelines.
* We have an internal roadmap to plan out the features we build, and sometimes
we will already be planning your suggested feature!
* Our open source libraries span many languages and frameworks so we strive to
ensure they are idiomatic on the given platform, but also consistent in
terminology between platforms. That way the core concepts are familiar whether
you adopt Bugsnag for one platform or many.
* Finally, one of our goals is to ensure our libraries work reliably, even in
crashy, multi-threaded environments. Oftentimes, this requires an intensive
engineering design and code review process that adheres to our style and
linting guidelines.

## Building

Expand Down Expand Up @@ -74,8 +96,11 @@ Run the integration tests using `make e2e` (end-to-end)
2. Sign in to CocoaPods trunk:

```
pod trunk register [email protected] 'Bugsnag Notifiers' --description='your name'
pod trunk register [email protected] 'Bugsnag Notifiers' --description='<your name>'
```

(Remember to warn the platforms team to ignore the email)

3. Click the link in the email that got sent to the platforms team

### Pre-release steps
Expand All @@ -84,29 +109,60 @@ Run the integration tests using `make e2e` (end-to-end)
released. If any changes on `next` should go out, check out that branch before
the subsequent steps.
* Add any missing entries to the CHANGELOG. Update the README.md if appropriate.
* Create a pull request for a new version by running `make VERSION=[number] prerelease`. Pull request generation depends on [`hub`](https://hub.github.com) (`brew install hub`)
* Create a pull request for a new version by running `make VERSION=[number]
prerelease`. Pull request generation depends on [`hub`](https://hub.github.com)
(`brew install hub`)
* Perform preflight checks:
- [ ] Have the changelog and README been updated?
- [ ] Are there pull requests for installation changes on the [dashboard](https://github.com/bugsnag/dashboard-js)?
- [ ] Are there pull requests for new features/behavior on the [docs site](https://github.com/bugsnag/docs.bugsnag.com)?
- [ ] Are there pull requests for installation changes on the
[dashboard](https://github.com/bugsnag/dashboard-js)?
- [ ] Are there pull requests for new features/behavior on the
[docs site](https://github.com/bugsnag/docs.bugsnag.com)?
- [ ] Run `./Tests/prerelease/run_prerelease_checks.sh`

* The following checks are optional. Use your judgement to decide if the scope
of the release merits performing any or all of them.

- [ ] Has all new functionality been manually tested on a release build?
- [ ] Do the installation instructions work when creating an example app from scratch?
- [ ] Does the Carthage installation instruction work?
- [ ] If a response is not received from the server, is the report queued for later?
- [ ] Do the [installation instructions](https://docs.bugsnag.com/platforms/ios/#installation)
work when creating an example app from scratch? If using Cocoapods
remember to point at the pre-release branch in the `Podfile`, e.g.

```
pod 'Bugsnag', :git => 'https://github.com/bugsnag/bugsnag-cocoa', :branch => '<prerelease-branch-name>'
```
- [ ] Does the Carthage installation instruction work?
- [ ] If a response is not received from the server, is the report queued for
later?
- [ ] If no network connection is available, is the report queued for later?
- [ ] On a throttled network, is the request timeout reasonable, and the main thread not blocked?
- [ ] On a throttled network, is the request timeout reasonable, and the main
thread not blocked?
- [ ] Are queued reports sent asynchronously?
- [ ] On a throttled network, is the request timeout reasonable, and the main thread not blocked by any visible UI freeze? (Throttling can be achieved by setting both endpoints to "https://httpstat.us/200?sleep=5000")
- [ ] Please ensure that release builds are run on a physical device with an ad-hoc archive. (For release builds, select Edit Scheme, change the Build Configuration to Release, and uncheck Debug Executable)
- [ ] On a throttled network, is the request timeout reasonable, and the main
thread not blocked by any visible UI freeze? (Throttling can be achieved
by setting both endpoints to "https://httpstat.us/200?sleep=5000")
- [ ] Please ensure that release builds are run on a physical device with an
ad-hoc archive. (For release builds, select Edit Scheme, change the
Build Configuration to Release, and uncheck Debug Executable)
### Release steps
* Once the pull request is merged, publish the release by running `make release`
* Click "Publish Release" in the freshly opened GitHub release page
* A GitHub release page will open. Fill in the release notes: `vMaj.Min.Patch`
as a title and a summary of the changes from the CHANGELOG. Look to previous
releases for style guidance; _"This release fixes a number of issues..."_ etc.
* Click "Publish Release".
* Perform post-release checks:
- [ ] Have all Docs and dashboard PRs been merged?
- [ ] Do the installation instructions work using the released artefact?
- [ ] Can a freshly created example app send an error report from a release build, using the released artefact?
- [ ] Do the existing example apps send an error report using the released artefact?
* Make releases to downstream libraries, if appropriate (generally for bug fixes)
- [ ] Can a freshly created example app send an error report from a release
build, using the released artefact?
- [ ] Do the existing example apps send an error report using the released
artefact?
* Plan to make releases to downstream libraries once adoption of the main
library has begun, if appropriate (generally for bug fixes). These include:
* [bugsnag-react-native](https://github.com/bugsnag/bugsnag-react-native)
* [bugsnag-cocos2dx](https://github.com/bugsnag/bugsnag-cocos2dx)
* [bugsnag-unity](https://github.com/bugsnag/bugsnag-unity)
Loading

0 comments on commit 43aa5fb

Please sign in to comment.