Skip to content

Commit

Permalink
Project template updates (#14)
Browse files Browse the repository at this point in the history
* Project template updates

* run swiftformat
  • Loading branch information
adam-fowler committed Mar 8, 2024
1 parent 5dce442 commit e9f1789
Show file tree
Hide file tree
Showing 11 changed files with 57 additions and 30 deletions.
21 changes: 21 additions & 0 deletions .github/dependabot.yml
@@ -0,0 +1,21 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "daily"
groups:
dependencies:
patterns:
- "*"
- package-ecosystem: "swift"
directory: "/"
schedule:
interval: "daily"
open-pull-requests-limit: 6
allow:
- dependency-type: all
groups:
all-dependencies:
patterns:
- "*"
3 changes: 2 additions & 1 deletion .github/workflows/api-breakage.yml
Expand Up @@ -7,11 +7,12 @@ on:
jobs:
linux:
runs-on: ubuntu-latest
timeout-minutes: 15
container:
image: swift:5.9
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
# https://github.com/actions/checkout/issues/766
Expand Down
24 changes: 15 additions & 9 deletions .github/workflows/ci.yml
Expand Up @@ -4,30 +4,36 @@ on:
push:
branches:
- main
- 2.x.x
paths:
- '**.swift'
- '**.yml'
pull_request:
paths:
- '**.swift'
- '**.yml'
workflow_dispatch:

jobs:
linux:
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
matrix:
image:
- 'swift:5.9'
- 'swiftlang/swift:nightly-5.10-jammy'
image: ["swift:5.9", "swift:5.10", "swiftlang/swift:nightly-jammy"]

container:
image: ${{ matrix.image }}
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Build
- name: Test
run: |
swift test --enable-code-coverage
- name: Convert coverage files
run: |
swift test
llvm-cov export -format="lcov" \
.build/debug/hummingbird-fluentPackageTests.xctest \
-ignore-filename-regex="\/Tests\/" \
-ignore-filename-regex="\/Benchmarks\/" \
-instr-profile .build/debug/codecov/default.profdata > info.lcov
- name: Upload to codecov.io
uses: codecov/codecov-action@v4
with:
file: info.lcov
9 changes: 4 additions & 5 deletions .github/workflows/nightly.yml
@@ -1,13 +1,12 @@
name: Swift nightly build

on:
schedule:
- cron: '0 1 * * 1'
workflow_dispatch:

jobs:
linux:
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
matrix:
image: ['nightly-focal', 'nightly-jammy', 'nightly-amazonlinux2']
Expand All @@ -16,7 +15,7 @@ jobs:
image: swiftlang/swift:${{ matrix.image }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build
uses: actions/checkout@v4
- name: Test
run: |
swift build
swift test
7 changes: 3 additions & 4 deletions .github/workflows/validate.yml
Expand Up @@ -2,20 +2,19 @@ name: Validity Check

on:
pull_request:
branches:
- main

jobs:
validate:
runs-on: macOS-latest
timeout-minutes: 15
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 1
- name: Install Dependencies
run: |
brew install mint
mint install NickLockwood/SwiftFormat@0.48.17 --no-link
mint install NickLockwood/SwiftFormat@0.51.15 --no-link
- name: run script
run: ./scripts/validate.sh
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -9,3 +9,4 @@ xcuserdata/
Package.resolved
/public
/docs
.benchmarkBaselines
6 changes: 3 additions & 3 deletions .swiftformat
@@ -1,14 +1,14 @@
# Minimum swiftformat version
--minversion 0.47.4
--minversion 0.51.0

# Swift version
--swiftversion 5.3
--swiftversion 5.9

# file options
--exclude .build

# rules
--disable redundantReturn, extensionAccessControl
--disable redundantReturn, extensionAccessControl, typeSugar

# format options
--ifdef no-indent
Expand Down
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Expand Up @@ -2,7 +2,7 @@

## Legal
By submitting a pull request, you represent that you have the right to license your contribution to the community, and agree by submitting the patch
that your contributions are licensed under the Apache 2.0 license (see [LICENSE](LICENSE.txt)).
that your contributions are licensed under the Apache 2.0 license (see [LICENSE](LICENSE)).

## Contributor Conduct
All contributors are expected to adhere to the project's [Code of Conduct](CODE_OF_CONDUCT.md).
Expand Down Expand Up @@ -30,4 +30,4 @@ The main development branch of the repository is `main`.

### 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.
2 changes: 1 addition & 1 deletion Dockerfile
@@ -1,7 +1,7 @@
# ================================
# Build image
# ================================
FROM swift:5.7 as build
FROM swift:5.9 as build

WORKDIR /build

Expand Down
8 changes: 4 additions & 4 deletions Sources/HummingbirdFluent/Persist+fluent.swift
Expand Up @@ -39,7 +39,7 @@ public final class HBFluentPersistDriver: HBPersistDriver {
}

/// Create new key. This doesn't check for the existence of this key already so may fail if the key already exists
public func create<Object: Codable>(key: String, value: Object, expires: Duration?) async throws {
public func create(key: String, value: some Codable, expires: Duration?) async throws {
let db = self.fluent.db(self.databaseID)
let data = try JSONEncoder().encode(value)
let date = expires.map { Date.now + Double($0.components.seconds) } ?? Date.distantFuture
Expand All @@ -54,7 +54,7 @@ public final class HBFluentPersistDriver: HBPersistDriver {
}

/// Set value for key.
public func set<Object: Codable>(key: String, value: Object, expires: Duration?) async throws {
public func set(key: String, value: some Codable, expires: Duration?) async throws {
let db = self.fluent.db(self.databaseID)
let data = try JSONEncoder().encode(value)
let date = expires.map { Date.now + Double($0.components.seconds) } ?? Date.distantFuture
Expand All @@ -66,7 +66,7 @@ public final class HBFluentPersistDriver: HBPersistDriver {
let model = try await PersistModel.query(on: db)
.filter(\._$id == key)
.first()
if let model = model {
if let model {
model.data = data
model.expires = date
try await model.update(on: db)
Expand Down Expand Up @@ -96,7 +96,7 @@ public final class HBFluentPersistDriver: HBPersistDriver {
public func remove(key: String) async throws {
let db = self.fluent.db(self.databaseID)
let model = try await PersistModel.find(key, on: db)
guard let model = model else { return }
guard let model else { return }
return try await model.delete(force: true, on: db)
}

Expand Down
2 changes: 1 addition & 1 deletion scripts/validate.sh
Expand Up @@ -13,7 +13,7 @@
##
##===----------------------------------------------------------------------===##

SWIFT_FORMAT_VERSION=0.48.17
SWIFT_FORMAT_VERSION=0.51.15

set -eu
here="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
Expand Down

0 comments on commit e9f1789

Please sign in to comment.