Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
7089955
Update CI action versions
adam-fowler Jun 16, 2023
cdff225
Make all tests async (#545)
adam-fowler Jun 16, 2023
a860c59
Don't run API breakage CI on 7.x.x branches
adam-fowler Jun 18, 2023
98ddb19
Remove SotoCrypto (#546)
adam-fowler Jun 18, 2023
2280506
Remove eventLoop parameter from async execute APIs (#549)
adam-fowler Jun 18, 2023
079c96a
Remove EventLoop version of paginate functions (#550)
adam-fowler Jun 18, 2023
c9f9277
Remove EventLoop version of waiter APIs (#551)
adam-fowler Jun 18, 2023
708b8cd
Remove EventLoop version of Endpoint Discovery code (#552)
adam-fowler Jun 18, 2023
f76bceb
Remove AWSClient EventLoop APIs (#553)
adam-fowler Jun 19, 2023
cfb3e0c
Remove EventLoops from CredentialProviders (#554)
adam-fowler Jun 20, 2023
38fa46c
Use Async calls from AsyncHTTPClient (#555)
adam-fowler Jun 22, 2023
8493ec1
Remove eventLoop from CredentialProviderFactory.Context (#557)
adam-fowler Jul 5, 2023
56f3377
7.x.x: Response streaming (#558)
adam-fowler Jul 5, 2023
ed62ec1
7.x.x: Request streaming (#559)
adam-fowler Jul 5, 2023
4dc21d1
7.x.x: S3 Signed request streaming (#560)
adam-fowler Jul 6, 2023
00bb87a
Fixes for when strict-concurrency is on (#563)
adam-fowler Jul 6, 2023
841d898
remove strict concurrency flag
adam-fowler Jul 10, 2023
943295d
Decode response header data from Codable userInfo (#565)
adam-fowler Jul 18, 2023
24a8d5a
Add support for decoding event streams (#566)
adam-fowler Jul 20, 2023
cc7bf70
Reduce exports from SotoSignerV4 (#567)
adam-fowler Jul 20, 2023
d74224d
Merge request and response types (#569)
adam-fowler Jul 28, 2023
38491ce
Update security policy supported versions
adam-fowler Jul 29, 2023
8e14602
Fix expiringValue tests (#572)
adam-fowler Jul 29, 2023
0d10907
Import SotoXML as implementation only (#573)
adam-fowler Aug 2, 2023
6dbc7f2
Middleware restructure (#570)
adam-fowler Aug 2, 2023
9c26292
Tracing middleware (#575)
adam-fowler Aug 3, 2023
d9d0452
Request encoding user info (#576)
adam-fowler Aug 7, 2023
15b2b77
Remove SotoCryptoTests (#577)
adam-fowler Aug 7, 2023
7182920
Remove references to EventLoop
adam-fowler Aug 10, 2023
8482358
Add typealias AWSMiddlewareNextHandler (#580)
adam-fowler Aug 10, 2023
296ba4d
Soto 7.0.0-alpha.1: fix Package.swift versions (#581)
MahdiBM Aug 12, 2023
a3e5aa3
Use ISO8601DateFormatter instead of DateFormatter (#583)
adam-fowler Aug 20, 2023
c39741a
Use singleton EventLoopGroup instead of using createNew (#585)
adam-fowler Sep 13, 2023
91bddab
Include v3 of swift-crypto (#586)
adam-fowler Sep 22, 2023
d0a710c
Update swift format version (#594)
adam-fowler Oct 21, 2023
2ca950e
Set minimum swift version to 5.7 (#590)
adam-fowler Oct 23, 2023
041035e
Convert HTTPClientProvider to a struct (#591)
adam-fowler Oct 23, 2023
a4e88cc
Hide request/response containers behind @_spi(SotoInternal) (#593)
adam-fowler Oct 24, 2023
981ac40
Don't store JSONDecoder in MetaDataClient (#595)
adam-fowler Oct 27, 2023
5069535
Remove Sendable.swift
adam-fowler Dec 11, 2023
23e7bb4
Update NOTICE tp remove comment about Apple software
adam-fowler Dec 24, 2023
99c684b
Add documentation visibility to exported symbols
adam-fowler Dec 26, 2023
de23bcb
Use SotoInternal to hide extensions (#601)
adam-fowler Jan 2, 2024
27297aa
Use NIOFileSystem
adam-fowler Oct 25, 2023
1a059d2
Use swift-nio 2.63.0
adam-fowler Feb 17, 2024
5a5847e
Add AWSHTTPClient protocol
adam-fowler Feb 17, 2024
828ba18
Basic URLSession support without streaming
adam-fowler Dec 8, 2023
f3ff699
Response streaming
adam-fowler Dec 8, 2023
e10e0aa
Add cancellation, use non async withUnsafeReadableBytes
adam-fowler Dec 11, 2023
6bd7daf
Fix concurrency issues, return errors from streamer
adam-fowler Dec 12, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/api-breakage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@ name: API breaking changes

on:
pull_request:
branches:
- main
workflow_dispatch:

jobs:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/benchmark.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: macOS-latest
steps:
- name: Checkout
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 1
- name: Benchmark
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ on:
env:
ENABLE_TIMING_TESTS: "false"
AWS_LOG_LEVEL: "trace"
SOTO_CORE_STRICT_CONCURRENCY: "true"

jobs:
macos:
Expand Down Expand Up @@ -43,6 +44,7 @@ jobs:
- 'swift:5.7'
- 'swift:5.8'
- 'swift:5.9'
- 'swiftlang/swift:nightly-5.10-jammy'
container:
image: ${{ matrix.image }}
steps:
Expand All @@ -51,7 +53,7 @@ jobs:
- name: Test
run: |
swift --version
swift test --enable-code-coverage --parallel
swift test --enable-code-coverage
- name: Convert coverage files
run: |
llvm-cov export -format="lcov" \
Expand Down
4 changes: 2 additions & 2 deletions .swiftformat
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Minimum swiftformat version
--minversion 0.47.4
--minversion 0.51.0

# Swift version
--swiftversion 5.1
--swiftversion 5.5

# file options
--exclude .build
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ Please ensure to include the following in your Pull Request

Please keep you PRs to a minimal number of changes. If a PR is large try to split it up into smaller PRs. Don't move code around unnecessarily it makes comparing old with new very hard.

The main development branch of the repository is `main`. Each major version release has it's own branch named "version number".x.x eg `4.x.x` . If you are submitting code for an older version then you should use the version branch as the base for your code changes.
The main development branch of the repository is `main`. Each major version release has it's own branch named "version number".x.x eg `6.x.x` . If you are submitting code for an older version then you should use the version branch as the base for your code changes.

### Formatting

We use Nick Lockwood's SwiftFormat for formatting code. PRs will not be accepted if they haven't be formatted. The current version of SwiftFormat we are using is v0.48.17.
We use Nick Lockwood's SwiftFormat for formatting code. PRs will not be accepted if they haven't be formatted. The current version of SwiftFormat we are using is v0.51.15.

All new files need to include the following file header at the top
```swift
Expand Down
7 changes: 0 additions & 7 deletions NOTICE.txt
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,6 @@ This product contains a copy of INIParser from PerfectlySoft
* HOMEPAGE:
* https://github.com/PerfectlySoft/Perfect-INIParser

This product contains code based on JSONDecoder from Apple

* LICENSE (Apache License 2.0):
* https://swift.org/LICENSE.txt
* HOMEPAGE:
* https://swift.org

This product contains a copy of libexpat

* LICENSE (MIT):
Expand Down
37 changes: 21 additions & 16 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,25 @@ import PackageDescription

let package = Package(
name: "soto-core",
platforms: [
.macOS(.v10_15),
.iOS(.v13),
.tvOS(.v13),
.watchOS(.v6),
],
products: [
.library(name: "SotoCore", targets: ["SotoCore"]),
.library(name: "SotoTestUtils", targets: ["SotoTestUtils"]),
.library(name: "SotoSignerV4", targets: ["SotoSignerV4"]),
],
dependencies: [
.package(url: "https://github.com/apple/swift-nio.git", from: "2.63.0"),
.package(url: "https://github.com/apple/swift-atomics.git", from: "1.1.0"),
.package(url: "https://github.com/apple/swift-async-algorithms.git", from: "1.0.0"),
.package(url: "https://github.com/apple/swift-crypto.git", "1.0.0"..<"4.0.0"),
.package(url: "https://github.com/apple/swift-distributed-tracing.git", from: "1.0.1"),
.package(url: "https://github.com/apple/swift-log.git", from: "1.4.0"),
.package(url: "https://github.com/apple/swift-metrics.git", "1.0.0"..<"3.0.0"),
.package(url: "https://github.com/apple/swift-nio.git", from: "2.42.0"),
.package(url: "https://github.com/apple/swift-nio-ssl.git", from: "2.7.2"),
.package(url: "https://github.com/apple/swift-nio-transport-services.git", from: "1.13.1"),
.package(url: "https://github.com/swift-server/async-http-client.git", from: "1.19.0"),
Expand All @@ -42,19 +51,21 @@ let package = Package(
.product(name: "Logging", package: "swift-log"),
.product(name: "AsyncHTTPClient", package: "async-http-client"),
.product(name: "Atomics", package: "swift-atomics"),
.product(name: "AsyncAlgorithms", package: "swift-async-algorithms"),
.product(name: "Metrics", package: "swift-metrics"),
.product(name: "NIOCore", package: "swift-nio"),
.product(name: "_NIOFileSystem", package: "swift-nio"),
.product(name: "NIOHTTP1", package: "swift-nio"),
.product(name: "NIOPosix", package: "swift-nio"),
.product(name: "NIOSSL", package: "swift-nio-ssl"),
.product(name: "NIOTransportServices", package: "swift-nio-transport-services"),
.product(name: "NIOFoundationCompat", package: "swift-nio"),
.product(name: "JMESPath", package: "jmespath.swift"),
.product(name: "Tracing", package: "swift-distributed-tracing"),
]
),
.target(name: "SotoCrypto", dependencies: []),
.target(name: "SotoSignerV4", dependencies: [
.byName(name: "SotoCrypto"),
.product(name: "Crypto", package: "swift-crypto"),
.product(name: "NIOCore", package: "swift-nio"),
.product(name: "NIOHTTP1", package: "swift-nio"),
]),
Expand All @@ -74,9 +85,6 @@ let package = Package(
.target(name: "CSotoExpat", dependencies: []),
.target(name: "INIParser", dependencies: []),

.testTarget(name: "SotoCryptoTests", dependencies: [
.byName(name: "SotoCrypto"),
]),
.testTarget(
name: "SotoCoreTests",
dependencies: [
Expand All @@ -98,15 +106,12 @@ let package = Package(
]
)

// switch for whether to use swift crypto. Swift crypto requires macOS10.15 or iOS13.I'd rather not pass this requirement on
#if os(Linux)
let useSwiftCrypto = true
#else
let useSwiftCrypto = false
#endif
import Foundation

// Use Swift cypto on Linux.
if useSwiftCrypto {
package.dependencies.append(.package(url: "https://github.com/apple/swift-crypto.git", "1.0.0"..<"4.0.0"))
package.targets.first { $0.name == "SotoCrypto" }?.dependencies.append(.product(name: "Crypto", package: "swift-crypto"))
if ProcessInfo.processInfo.environment["SOTO_CORE_STRICT_CONCURRENCY"] == "true" {
for target in package.targets {
if !target.isTest {
target.swiftSettings = [.unsafeFlags(["-Xfrontend", "-strict-concurrency=complete"])]
}
}
}
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Soto Core

[<img src="http://img.shields.io/badge/swift-5.6_to_5.8-brightgreen.svg" alt="Swift 5.7" />](https://swift.org)
[<img src="http://img.shields.io/badge/swift-5.7-brightgreen.svg" alt="Swift 5.7" />](https://swift.org)
[<img src="https://github.com/soto-project/soto-core/workflows/CI/badge.svg" />](https://github.com/soto-project/soto-core/actions)
[<img src="https://codecov.io/gh/soto-project/soto-core/branch/main/graph/badge.svg" alt="Codecov Result" />](https://codecov.io/gh/soto-project/soto-core)

Expand Down
2 changes: 1 addition & 1 deletion SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

## Supported Versions

Currently we support versions 5.0 and above of Soto. These will receive security updates as and when needed.
Currently we support versions 6.0 and above of Soto. These will receive security updates as and when needed.

## Reporting a Vulnerability

Expand Down
3 changes: 0 additions & 3 deletions SotoCore.docc/SotoCore/SotoCore.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,9 +130,6 @@ SotoCore is the underlying driver for executing requests for the Soto Swift SDK

### Exported (NIOCore)

- ``EventLoop``
- ``EventLoopGroup``
- ``EventLoopFuture``
- ``ByteBuffer``
- ``ByteBufferAllocator``
- ``TimeAmount``
Expand Down
Loading