Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
62 changes: 39 additions & 23 deletions .github/workflows/swift.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,31 +2,47 @@ name: Swift

on:
push:
branches: [master]
branches: [master, main]
pull_request:
branches: [master]
branches: [master, main]
workflow_dispatch:

permissions:
contents: read

#list of jobs to perform
jobs:
#the only job in the list, named `build`
build_and_test:
#specify OS to run the jobs on
runs-on: macos-latest
#sequential steps to run for the `build` job
spm:
name: Swift package
runs-on: macos-15
steps:
- uses: actions/checkout@v4
- name: Validate package manifest
run: swift package dump-package
- name: Build package and test targets with Swift 6
run: |
SDK_PATH="$(xcrun --sdk iphonesimulator --show-sdk-path)"
swift build --build-tests \
--sdk "$SDK_PATH" \
--triple arm64-apple-ios17.0-simulator \
-Xswiftc -swift-version -Xswiftc 6

example:
name: SPM example and tests
runs-on: macos-15
steps:
# step 1, use Marketplace action called Checkout@v2, to checkout the code
- uses: actions/checkout@v2 #'uses' keyword launches the Marketplace action
# step 2, verbosely build the package using the `swift` CLI
- name: Build
run: swift build -v #'run' keyword executes the command, as if it's run in terminal
# step 3, run tests
# Note that you must use "=" and not ":" despite error logs for -destiation using ":"
# Also using "Any iOS Simulator" doesn't seem to work despite being an option.
# The using CODE_SIGN... and beyond are for Codecov purposes when generating results.
- name: Run tests
run: |
cd Example
pod install
xcodebuild clean test -scheme OSSSpeechKit-Example -workspace OSSSpeechKit.xcworkspace -destination 'platform=iOS Simulator,OS=16.2,name=iPhone 14' CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO ONLY_ACTIVE_ARCH=NO
bash <(curl https://codecov.io/bash | sed 's/"$beta_xcode_partials"//g')
- uses: actions/checkout@v4
- name: Select an available iPhone simulator
run: |
SIMULATOR_ID="$(
xcrun simctl list devices available -j |
python3 -c 'import json, sys; data=json.load(sys.stdin); print(next(device["udid"] for devices in data["devices"].values() for device in devices if device["name"].startswith("iPhone")))'
)"
echo "SIMULATOR_DESTINATION=platform=iOS Simulator,id=${SIMULATOR_ID}" >> "$GITHUB_ENV"
- name: Test example and package
run: |
xcodebuild test \
-project Example/OSSSpeechKit.xcodeproj \
-scheme OSSSpeechKit-Example \
-destination "$SIMULATOR_DESTINATION" \
CODE_SIGNING_ALLOWED=NO

2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
Example/Pods
.build/
*.xcuserstate
*.xcbkptlist
7 changes: 7 additions & 0 deletions .swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>OSSSpeechKit.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>OSSSpeechKit</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>OSSSpeechKitTests</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>
23 changes: 0 additions & 23 deletions .travis.yml

This file was deleted.

36 changes: 36 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Changelog

All notable changes to OSSSpeechKit are documented here.

The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and releases use [Semantic Versioning](https://semver.org/).

## [1.0.0] - 2026-07-13

### Added

- `OSSSpeechEngine`, an instance-based async API for synthesis and recognition.
- `OSSLanguage` runtime-aware language metadata and catalog.
- `OSSVoiceConfiguration` and `OSSUtteranceConfiguration` value types.
- Unicode `flagEmoji` and on-demand UIKit flag rendering.
- Swift Package Manager support for every source under `OSSSpeechKit/Classes`.
- A privacy manifest for the SDK's data practices.

### Changed

- Raised the minimum deployment target to iOS 17.
- Made Swift Package Manager the sole supported installation path.
- Modernized continuous integration for package and example tests.
- Limited published package products and platform frameworks to the supported iOS library.

### Deprecated

- `OSSSpeech` and its shared singleton in favor of `OSSSpeechEngine`.
- `OSSVoice` in favor of `OSSVoiceConfiguration`.
- `OSSUtterance` in favor of `OSSUtteranceConfiguration`.
- Legacy `OSSVoiceEnum` catalog and image flag access in favor of `OSSLanguage`.

### Removed

- CocoaPods distribution and contributor tooling. The historical `0.3.3` pod remains resolvable but is unsupported; version 1.0 and later are available only through Swift Package Manager.

[1.0.0]: https://github.com/AppDevGuy/OSSSpeechKit/releases/tag/1.0.0
Loading
Loading