diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 79ad34d2..9aecebad 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -74,8 +74,6 @@ jobs: fail-fast: false matrix: include: - - platform: macos-x86_64 - runner: macos-15-intel - platform: macos-aarch64 runner: macos-15 - platform: windows-x86_64 diff --git a/Cargo.lock b/Cargo.lock index 82da265f..081489c3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1481,18 +1481,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "console" -version = "0.16.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e96a4956774c13c126a8b5af4daa79384f4d826534c95a02d76afb39e2ab64e3" -dependencies = [ - "encode_unicode", - "libc", - "unicode-width", - "windows-sys 0.61.2", -] - [[package]] name = "console_error_panic_hook" version = "0.1.7" @@ -2423,12 +2411,6 @@ dependencies = [ "winreg", ] -[[package]] -name = "encode_unicode" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" - [[package]] name = "encoding_rs" version = "0.8.42" @@ -2587,9 +2569,6 @@ name = "esaxx-rs" version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d817e038c30374a4bcb22f94d0a8a0e216958d4c3dcde369b1439fec4bdda6e6" -dependencies = [ - "cc", -] [[package]] name = "etagere" @@ -4832,19 +4811,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "indicatif" -version = "0.18.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9433806cd6b4ec1aba79c021c7e4c58fb4c3b9977c085062e611ac929998fb0c" -dependencies = [ - "console", - "portable-atomic", - "unicode-width", - "unit-prefix", - "web-time", -] - [[package]] name = "infer" version = "0.19.0" @@ -10079,7 +10045,6 @@ dependencies = [ "derive_builder 0.20.2", "esaxx-rs", "getrandom 0.3.4", - "indicatif", "itertools 0.14.0", "log", "macro_rules_attribute", @@ -10648,12 +10613,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e" -[[package]] -name = "unit-prefix" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81e544489bf3d8ef66c953931f56617f423cd4b5494be343d9b9d3dda037b9a3" - [[package]] name = "untrusted" version = "0.9.0" diff --git a/README.md b/README.md index b34a3b1f..d69f93e5 100644 --- a/README.md +++ b/README.md @@ -9,8 +9,9 @@ into study material, flashcards on a spaced-repetition schedule, and practice. I serious learners: university students taking several courses, self-learners, and people studying for a certification. -**Status:** pre-release. Release builds target Linux x64/ARM64, macOS Intel/Apple Silicon, -and Windows x64. Linux AppImages need glibc 2.41 or newer (Debian 13+, Ubuntu 25.04+). +**Status:** pre-release. Release builds target Linux x64/ARM64, macOS on Apple Silicon and +Windows x64. Intel Macs are not supported: ONNX Runtime ships no build for them. Linux AppImages +need glibc 2.39 or newer (Debian 13+, Ubuntu 24.04+). ![A short tour of Study: Home, an answer citing the lecture recording, a diagram, a flashcard review, a quiz and search](assets/demo.gif) @@ -23,7 +24,7 @@ Download the package for your computer from - Linux: `study-linux-x86_64.AppImage` or `study-linux-aarch64.AppImage`. Make it executable (`chmod +x study-linux-*.AppImage`) and launch it. -- macOS: `study-macos-x86_64.dmg` or `study-macos-aarch64.dmg`; copy Study to Applications. +- macOS (Apple Silicon): `study-macos-aarch64.dmg`; copy Study to Applications. - Windows: run `study-windows-x86_64.exe`, the installer for your user account. In Settings, check for updates and choose when to install them. Updates are downloaded from @@ -259,7 +260,7 @@ files and their licenses. To release, bump `version` in the workspace `Cargo.toml`, commit, then push a matching tag: `git tag v0.2.0 && git push origin v0.2.0`. The workflow refuses a tag that does not match the -workspace version, builds all five signed packages, and publishes the release only when every +workspace version, builds all four signed packages, and publishes the release only when every one exists, with package signatures, `SHA256SUMS` and the `latest.json` update feed. A failed build can be rerun from Actions. diff --git a/crates/study-ai/Cargo.toml b/crates/study-ai/Cargo.toml index dfa0fa85..494d42a0 100644 --- a/crates/study-ai/Cargo.toml +++ b/crates/study-ai/Cargo.toml @@ -33,7 +33,9 @@ study-media.workspace = true sysinfo = { version = "0.39", default-features = false, features = ["system"] } tempfile = "3" thiserror = "2" -tokenizers = "0.23" +# Without the default esaxx_fast: its C++ links the static CRT, which collides with the +# dynamic one on Windows, and only speeds up training, which this crate never does. +tokenizers = { version = "0.23", default-features = false, features = ["onig"] } tokio = { workspace = true, features = ["rt-multi-thread", "time", "fs", "io-util", "process"] } tracing.workspace = true transcribe-rs = { version = "0.3.11", features = ["onnx"] } diff --git a/packaging/icon.png b/packaging/icon.png index 4875f3c4..07020d8e 100644 Binary files a/packaging/icon.png and b/packaging/icon.png differ diff --git a/packaging/release.sh b/packaging/release.sh index 99719a16..edf0cbed 100755 --- a/packaging/release.sh +++ b/packaging/release.sh @@ -9,14 +9,13 @@ set -euo pipefail cd "$(dirname "$0")/.." -PLATFORMS=(linux-x86_64 linux-aarch64 macos-x86_64 macos-aarch64 windows-x86_64) +PLATFORMS=(linux-x86_64 linux-aarch64 macos-aarch64 windows-x86_64) # Sets target, format and suffix (the updater's package) for a platform. platform() { case "$1" in linux-x86_64) target=x86_64-unknown-linux-gnu format=appimage suffix=.AppImage ;; linux-aarch64) target=aarch64-unknown-linux-gnu format=appimage suffix=.AppImage ;; - macos-x86_64) target=x86_64-apple-darwin format=app suffix=.app.tar.gz ;; macos-aarch64) target=aarch64-apple-darwin format=app suffix=.app.tar.gz ;; windows-x86_64) target=x86_64-pc-windows-msvc format=nsis suffix=.exe ;; *) echo "unknown platform: $1 (one of ${PLATFORMS[*]})" >&2; exit 1 ;;