Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

version up Nimble in Package.swift #1153

Merged
merged 2 commits into from Jun 13, 2022
Merged

version up Nimble in Package.swift #1153

merged 2 commits into from Jun 13, 2022

Conversation

kimxwan0319
Copy link
Contributor

I version up Nimble in Package.swift to 10.0.0

Copy link
Member

@younata younata left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oof. Yeah. This is probably presenting an issue for people using SPM with this. Should've done this as soon as Nimble 10 was released. I'll add updating Quick with current Nimble to the release checklist for Nimble.

@younata
Copy link
Member

younata commented Jun 13, 2022

The "waiting for status to be reported" tests will never run because they're no longer valid.

@younata younata merged commit 5a76a94 into Quick:main Jun 13, 2022
renovate bot added a commit to cgrindel/rules_swift_package_manager that referenced this pull request Jul 7, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [Quick/Quick](https://togithub.com/Quick/Quick) | major | `from:
"5.0.1"` -> `from: "v7.1.0"` |

---

### Release Notes

<details>
<summary>Quick/Quick (Quick/Quick)</summary>

### [`v7.1.0`](https://togithub.com/Quick/Quick/releases/tag/v7.1.0)

[Compare
Source](https://togithub.com/Quick/Quick/compare/v7.0.2...v7.1.0)

### Highlights

#### New Features

- You can now use `throw` in `beforeEach`, `justBeforeEach`, and
`afterEach` blocks.
- Quick now suggests to XCTest that tests run in the order they are
defined in.

#### Fixes

- `beforeEach` blocks specified in configurations are now run in
AsyncSpec tests.
- `xitBehavesLike(_ name: String)` is now available in `QuickSpec` and
`Behavior`.

### Autogenerated ChangeLog

#### What's Changed

- Bump danger from 9.3.0 to 9.3.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1224
- Ensure beforeEach in Configuration run for AsyncSpec by
[@&#8203;junmo-kim](https://togithub.com/junmo-kim) in
[Quick/Quick#1228
- Allow beforeEach, justBeforeEach, and afterEach in Swift to throw by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1229
- Improve documentation for installing Quick and Nimble via Cocoapods in
the README. by [@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1231
- Make a public xitBehavesLike(\_ name: String) for SyncDSLUser by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1230
- Attempt to run tests within a QuickSpec or AsyncSpec in the order they
are defined in by [@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1232

#### New Contributors

- [@&#8203;junmo-kim](https://togithub.com/junmo-kim) made their first
contribution in
[Quick/Quick#1228

**Full Changelog**:
Quick/Quick@v7.0.2...v7.1.0

### [`v7.0.2`](https://togithub.com/Quick/Quick/releases/tag/v7.0.2)

[Compare
Source](https://togithub.com/Quick/Quick/compare/v7.0.1...v7.0.2)

This is a bug fix release that primarily fixes a conflict in how Nimble
defines `FileString` and how Quick defines `FileString` when you use
both via Swift Package Manager. It also fixes a number of warnings
people who install Quick via Swift Package Manager on Darwin will
receive.

#### What's Changed

- Correct a few places where we falsely assume "SWIFT_PACKAGE" == not
darwin by [@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1223

**Full Changelog**:
Quick/Quick@v7.0.1...v7.0.2

### [`v7.0.1`](https://togithub.com/Quick/Quick/releases/tag/v7.0.1):
7.0.1 - re-allow async calls in AsyncSpec&#x27;s xit

[Compare
Source](https://togithub.com/Quick/Quick/compare/v7.0.0...v7.0.1)

This fixes an oversight where you couldn't use async closures with
`xit`. Thanks [@&#8203;stonko1994](https://togithub.com/stonko1994) for
calling this out!

#### What's Changed

- Allow xit in the Async DSL to take in async closures by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1220

**Full Changelog**:
Quick/Quick@v7.0.0...v7.0.1

### [`v7.0.0`](https://togithub.com/Quick/Quick/releases/tag/v7.0.0): -
AsyncSpec and Human-Readable Test Selectors

[Compare
Source](https://togithub.com/Quick/Quick/compare/v6.1.0...v7.0.0)

### Highlights

#### Async Test Changes

Quick 7 changes how Async tests are run. Instead of forcing all tests to
run in an async context, Quick 7 provides a separate Spec class for
Async Tests. Create an `AsyncSpec` subclass, and all tests inside of
that subclass will run in an async context. Tests inside of `QuickSpec`
subclasses will have a similar behavior to what was in Quick 5.

Additionally, Quick 7 changes how the DSL is defined slightly. In Quick
6 and before, the DSL was defined as a series of global functions,
available to be called anywhere. In Quick 7, these functions were moved
to be static methods on the new `SyncDSLUser` (which `QuickSpec`,
`Behavior`, and `QuickConfiguration` conform to) and `AsyncDSLUser`
(which `AsyncSpec` and `AsyncBehavior` conform to) protocols. This
allows us to make sure that you are using the correct DSL for the
context, and was necessary for this approach.

For example:

```swift
class SynchronousSpec: QuickSpec {
    override class func spec() {
        it("runs synchronously, as you'd expect") {
            var ocean: [String] = []
            DispatchQueue.main.async {
                ocean.append("dolphins")
                ocean.append("whales")
            }
            expect(ocean).toEventually(contain("dolphins", "whales"))
        }
    }
}

class AsynchronousSpec: AsyncSpec {
    override class func spec() {
        it("runs the test in an async context") {
            var ocean: [String] = []
            DispatchQueue.main.async {
                ocean.append("dolphins")
                ocean.append("whales")
            }
            await expect(ocean).toEventually(contain("dolphins", "whales"))
        }
    }
}
```

#### Unencoded Test Selectors

Furthermore, Quick 7 changes how test selectors are generated for
`QuickSpec`. Now, both `AsyncSpec` and `QuickSpec` will use the
unencoded test names as the test selectors. Test selectors are now
generated by joining the `describe`/`context` blocks leading up to the
`it` block with ", ". This makes test names immensely easier to read.
For example, with the following spec:

```swift
class MySpec: QuickSpec {
    override class func spec() {
        describe("some feature") {
            context("in one case") {
                it("has a behavior") {}
            }

            context("in another case") {
                it("doesn't have the earlier behavior") {}
            }
        }
    }
}
```

will generate the following test selectors:

-   `some feature, in one case, has a behavior`
-   `some feature, in another case, doesn't have the earlier behavior`

You can disable this change by setting the
`QUICK_USE_ENCODED_TEST_SELECTOR_NAMES` environment variable.

#### Migrating Suggestions

Quick 7 is not a drop-in migration from either Quick 5 or Quick 6. Quick
5 users will have a slightly easier time upgrading, but due to `spec`
being defined as a class method instead of an instance method, there
will still be changes.

Doing a Find & Replace of `override func spec` with `override class func
spec` will take care of the low-hanging fruit. If you have any test
helpers that exist as properties or methods of your QuickSpec
subclasses, the you will need to either move them inside of the `spec`
function, or outside to another scope. For Objective-C users, this is,
for the most part, a drop-in replacement. You will only need to do
anything if you do not use the `QuickSpecBegin` and `QuickSpecEnd`
macros (in which case: do a find & replace of the regex
`-(\s*)\(void\)(\s*)spec` with `+$1(void)$2spec`).

For migrating from Quick 6 to Quick 7, it would be easiest to also do a
Find & Replace of `: QuickSpec` to `: AsyncSpec`, then migrate tests
that do not need to run in async contexts to be `QuickSpec`s themselves.

### Auto-Generated Changelog

#### What's Changed

- Bump git from 1.12.0 to 1.13.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1191
- (Temporarily) Remove async support from Quick by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1192
- Bump activesupport from 6.1.5 to 6.1.7.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1196
- Bump danger from 9.1.0 to 9.2.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1198
- Transition QuickSpec.spec to be a static method. by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1200
- Add async duplicate-world based support. by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1199
- Bump cocoapods from 1.11.3 to 1.12.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1201
- Bump activesupport from 7.0.4.2 to 7.0.4.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1203
- Bump fkirc/skip-duplicate-actions from 5.2.0 to 5.3.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1188
- \[Translation] AsyncAwait.md Korean translation by
[@&#8203;tisohjung](https://togithub.com/tisohjung) in
[Quick/Quick#1204
- Update Nimble to v12 by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1206
- Demangle QuickSpec test names as much as possible by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1207
- Add mechanism to fallback to legacy test selector names by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1211
- Bump cocoapods from 1.12.0 to 1.12.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1210
- Bump danger from 9.2.0 to 9.3.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1209
- Don't imply that we plan to remove the option to force encoded test
selector names by [@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1212
- Merge branch quick\_7 into main. by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1213
- \[doc] Corrected to class method by
[@&#8203;coffmark](https://togithub.com/coffmark) in
[Quick/Quick#1214
- Update the english documentation for Quick 7 by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1215
- Provide a way to get the currently running spec, regardless of if
we're executing an AsyncSpec or a QuickSpec by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1216

#### New Contributors

- [@&#8203;tisohjung](https://togithub.com/tisohjung) made their first
contribution in
[Quick/Quick#1204
- [@&#8203;coffmark](https://togithub.com/coffmark) made their first
contribution in
[Quick/Quick#1214

**Full Changelog**:
Quick/Quick@v6.1.0...v7.0.0

### [`v6.1.0`](https://togithub.com/Quick/Quick/releases/tag/v6.1.0)

[Compare
Source](https://togithub.com/Quick/Quick/compare/v6.0.1...v6.1.0)

### Highlighted Changes

- New `TestState` property wrapper (Thanks
[@&#8203;CraigSiemens](https://togithub.com/CraigSiemens)!). You can now
wrap properties with `@TestState` to have them automatically set to nil.
- Objective-C API is no longer available in Swift, this should reduce
confusion whether a test is being executed in an async context or not.
-   This release drops support for Swift 5.6/Xcode 13.3.1.

### Auto-generated Release Notes

#### What's Changed

- Bump danger from 9.0.0 to 9.1.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1184
- Make Objective-C API unavailable in Swift. by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1185
- Update Nimble to 11.2.1, remove now-unnecessary usage of awaits in
tests. Drop support for swift 5.6/Xcode 13.3.1 by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1187
- Added a `TestState` property wrapper. by
[@&#8203;CraigSiemens](https://togithub.com/CraigSiemens) in
[Quick/Quick#1186

#### New Contributors

- [@&#8203;CraigSiemens](https://togithub.com/CraigSiemens) made their
first contribution in
[Quick/Quick#1186

**Full Changelog**:
Quick/Quick@v6.0.1...v6.1.0

### [`v6.0.1`](https://togithub.com/Quick/Quick/releases/tag/v6.0.1)

[Compare
Source](https://togithub.com/Quick/Quick/compare/v6.0.0...v6.0.1)

#### What's Changed

- Force async in `fit`, `xit`, `pending` and `justBeforeEach` by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1183

**Full Changelog**:
Quick/Quick@v6.0.0...v6.0.1

### [`v6.0.0`](https://togithub.com/Quick/Quick/releases/tag/v6.0.0)

[Compare
Source](https://togithub.com/Quick/Quick/compare/v5.0.1...v6.0.0)

This closes the [v6.0.0
milestone](https://togithub.com/Quick/Quick/milestone/8).

### Highlights

See additional details under the auto-generated release notes below.

#### Fixed

- No more sporadic crashes attempting to detect subclasses
[Quick/Quick#1156
- Rerunning an individual test
[Quick/Quick#1166
- Skipped tests are reported to Xcode
[Quick/Quick#1098

#### New

- Async/await support. All tests now run in an async context.
[Quick/Quick#1160
- You can now throw a `StopTest` error to end a test prematurely without
it being reported as an error.
[Quick/Quick#1165
- Added the `justBeforeEach` operator, which takes a closure and runs it
immediately prior to the relevant `it` tests.
[Quick/Quick#1169
For example

```swift
var ordering: [Int] = []
beforeEach {
    ordering.append(1)
}

justBeforeEach {
    ordering.append(3)
}

beforeEach {
    ordering.append(2)
}

it("runs justBeforeEach after the other beforeEach's") {
    expect(ordering).to(equal([1, 2, 3]))
}
```

#### Breaking

- This version raises minimum required version to Swift 5.6, and
required OS to macOS 10.15, iOS 13, and tvOS 13.
- `aroundEach` is removed from the Objective-C API
[Quick/Quick#1160
- Again, with the async support, all tests now run in an async context.
This will require you to make changes, especially if you use Nimble.

### Auto-Generated Release Notes

#### What's Changed

- Create funding.yml by
[@&#8203;jessesquires](https://togithub.com/jessesquires) in
[Quick/Quick#1147
- Report skipped tests to Xcode by
[@&#8203;amomchilov](https://togithub.com/amomchilov) in
[Quick/Quick#1098
- Bump danger from 8.6.0 to 8.6.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1148
- Renamed Configuration -> QCKConfiguration on documentation by
[@&#8203;takehilo](https://togithub.com/takehilo) in
[Quick/Quick#1152
- Fix sporadic crashes caused by finding classes that don't play well
with isSubclass(of:) by [@&#8203;younata](https://togithub.com/younata)
in
[Quick/Quick#1156
- Raise minimum supported versions to macOS 10.15, iOS 13, tvOS 13 by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1146
- version up Nimble in Package.swift by
[@&#8203;kimxwan0319](https://togithub.com/kimxwan0319) in
[Quick/Quick#1153
- Update Nimble submodule checkout to refer to the Nimble v10.0.0 commit
by [@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1157
- Fix tests broken by Nimble 10 update by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1158
- Add [@&#8203;younata](https://togithub.com/younata) to funding.yml by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1164
- Bump danger from 8.6.1 to 9.0.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1168
- Allow throwing in a test without producing an unexpected error by
[@&#8203;bnickel](https://togithub.com/bnickel) in
[Quick/Quick#1165
- Allow rerunning individual examples in Xcode by
[@&#8203;bnickel](https://togithub.com/bnickel) in
[Quick/Quick#1166
- Bump fkirc/skip-duplicate-actions from 4.0.0 to 5.1.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1171
- Introduce an `assignBefore` operator by
[@&#8203;esilverberg](https://togithub.com/esilverberg) in
[Quick/Quick#1169
- Bump fkirc/skip-duplicate-actions from 5.1.0 to 5.2.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[Quick/Quick#1172
- Add support for xcode 14 and swift 5.7 by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1174
- Swift Async/Await Support by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1160
- Update Nimble to V11 by
[@&#8203;younata](https://togithub.com/younata) in
[Quick/Quick#1175

#### New Contributors

- [@&#8203;amomchilov](https://togithub.com/amomchilov) made their first
contribution in
[Quick/Quick#1098
- [@&#8203;takehilo](https://togithub.com/takehilo) made their first
contribution in
[Quick/Quick#1152
- [@&#8203;kimxwan0319](https://togithub.com/kimxwan0319) made their
first contribution in
[Quick/Quick#1153
- [@&#8203;bnickel](https://togithub.com/bnickel) made their first
contribution in
[Quick/Quick#1165
- [@&#8203;esilverberg](https://togithub.com/esilverberg) made their
first contribution in
[Quick/Quick#1169

**Full Changelog**:
Quick/Quick@v5.0.1...v6.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/cgrindel/rules_swift_package_manager).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS4xNTkuNyIsInVwZGF0ZWRJblZlciI6IjM1LjE1OS43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiJ9-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants