mirror of
https://github.com/readest/readest.git
synced 2026-10-19 10:13:29 +00:00
chore: remove the packages/tao submodule (#6085)
* chore: remove the packages/tao submodule The root Cargo.toml stopped patching tao in #6081: the tauri fork now needs tao ^0.37, and upstream 0.37.0 carries the iOS scene-configuration fixes the fork existed for. Verified on the iOS 18.5 simulator with the CarPlay display attached: the app launches and Readest's CarPlay Now Playing scene connects and renders with plain tao 0.37.0. Nothing references the submodule any more, so drop it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * chore: update agent memories Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
77e44eb92d
commit
44bba08f3d
6 changed files with 63 additions and 14 deletions
8
.github/workflows/pull-request.yml
vendored
8
.github/workflows/pull-request.yml
vendored
|
|
@ -411,10 +411,10 @@ jobs:
|
|||
with:
|
||||
toolchain: stable
|
||||
# This action defaults RUSTFLAGS to -D warnings. Path-patched
|
||||
# dependencies (packages/tao, packages/tauri) build without
|
||||
# cap-lints, so upstream warnings in them (e.g. glib deprecations
|
||||
# in tao's Linux backend) would fail the app build. Warnings in
|
||||
# our own crate are enforced by the rust_lint job instead.
|
||||
# dependencies (packages/tauri, packages/swift-rs) build without
|
||||
# cap-lints, so upstream warnings in them would fail the app
|
||||
# build. Warnings in our own crate are enforced by the rust_lint
|
||||
# job instead.
|
||||
rustflags: ''
|
||||
# Disable this action's built-in rust-cache so the explicit
|
||||
# Swatinem/rust-cache below is the single cache (it's the one
|
||||
|
|
|
|||
3
.gitmodules
vendored
3
.gitmodules
vendored
|
|
@ -22,6 +22,3 @@
|
|||
[submodule "apps/readest-app/src-tauri/plugins/tauri-plugin-webview-upgrade"]
|
||||
path = apps/readest-app/src-tauri/plugins/tauri-plugin-webview-upgrade
|
||||
url = https://github.com/readest/tauri-plugin-webview-upgrade.git
|
||||
[submodule "packages/tao"]
|
||||
path = packages/tao
|
||||
url = https://github.com/readest/tao.git
|
||||
|
|
|
|||
|
|
@ -61,9 +61,9 @@ Index only — one line per memory. Detail lives in the topic files; do not rest
|
|||
- Resolved/stable → [Sync Fixes](sync-fixes.md)
|
||||
|
||||
## Build, Testing & CI
|
||||
- [tauri fork bump: exclude + swift-rs relabel](tauri-fork-bump-workspace-exclude-swift-rs.md) root must EXCLUDE packages/tauri; `patch not used` = fork silently dropped; tao patch REMOVED; cef stub PUSHED 3156d92b7 to readest + feat/cef-feature-stub; force-push BROKE nix CI (#6080), tag cef-stub-old-base repaired; NEVER orphan a pinned fork commit; iOS build UNVERIFIED
|
||||
- [tauri fork bump: exclude + swift-rs relabel](tauri-fork-bump-workspace-exclude-swift-rs.md) MERGED #6081; root must EXCLUDE packages/tauri; `patch not used` = fork silently dropped; NEVER orphan a pinned fork commit; tao patch dropped; upstream 0.37.0 CarPlay VERIFIED on iOS 18.5 sim (Now Playing rendered, no crash); packages/tao submodule REMOVED (a362ac598, unpushed); iOS 26 sim + device unchecked
|
||||
- [TypeScript 7 upgrade #5260](typescript-7-upgrade-5260.md) MERGED #5893; no tsserver/tsgo (lint = `tsc`); next 16.3.3; rootDir fix
|
||||
- [Nix FOD hash staleness](nix-fod-hash-staleness.md) MERGED #5779; hash from the PR check's `got:` line, NEVER docker/OrbStack
|
||||
- [Nix FOD hash staleness](nix-fod-hash-staleness.md) MERGED #5779; hash from the PR check's `got:` line, NEVER docker/OrbStack; `--keep-going` since #6081; PR head may be chrox/readest-app (remote `chrox`)
|
||||
- [git push needs the SOCKS proxy](git-push-socks-proxy.md) ssh ProxyCommand only; `--no-verify` + ServerAliveInterval
|
||||
- [worktree:new REBASES a PR branch](worktree-new-rebases-pr-force-push.md) pushing to a fork from it = FORCE push; use the real head
|
||||
- [Workflow-file pushes need SSH](push-workflow-file-needs-ssh-not-gh-oauth.md) gh OAuth lacks `workflow` scope
|
||||
|
|
|
|||
|
|
@ -17,3 +17,14 @@ metadata:
|
|||
Third hit 2026-08-26: PR #5893 (TypeScript 7 + Next 16.3) changed pnpm-lock.yaml; the fod-hashes job failed in 5m17s with `specified: sha256-jQoa1YvCJU2bmEkr70u8MENxS1cGb2ahai53TfI6DQE=` / `got: sha256-zEq7gAPixg8P9DeRtEKS0rCVlphJfBSVl7LOvvAQj+g=`, bumped in `40bda11b9`. Recipe holds exactly: push first, then read `got:`. Fastest way to the value is `gh run view --repo readest/readest --job <job-id> --log-failed | grep -iE "specified:|got:"` -- the run-level `--log-failed` also works but the job id from the PR check URL is more direct. There is no local nix on chrox's Mac (`which nix` = not found), so this cannot be pre-computed before opening the PR.
|
||||
|
||||
Second hit 2026-08-25: PR #5865 changed Cargo.lock (image crate `webp` feature -> image-webp); the fod-hashes PR check failed with specified/got, cargoHash bumped in `50d57e30d` from the got: line, check green in one round.
|
||||
|
||||
Fourth hit 2026-09-06: PR #6081 (tauri fork bump, Cargo.lock + pnpm-lock.yaml
|
||||
both changed) failed fod-hashes on cargoHash first (`got:` sha256-5uavqv6V...),
|
||||
and only after that bump did the next run report pnpmDeps (`got:`
|
||||
sha256-E6z6mXT4...): `nix build` stopped at the first FOD failure. dcf5d1e9a
|
||||
added `--keep-going` to the `nix-deps-check.yml` build so ONE run now prints
|
||||
every stale hash; still expect one push per unknown hash, never precompute.
|
||||
Both bumped in dcf5d1e9a + 555c887bf. GOTCHA: this PR's head is
|
||||
`chrox/readest-app:dev` (remote `chrox`), NOT `readest/readest:dev`; a push to
|
||||
`origin dev` created a stray branch on the main repo (deleted right away).
|
||||
Check `gh pr view N --json isCrossRepository,headRepositoryOwner` before pushing.
|
||||
|
|
|
|||
|
|
@ -35,10 +35,27 @@ iOS home indicator). Upstream ba3490b3e "Use workspace dependency management
|
|||
uses `--triple` on Xcode 27 and keeps the legacy path on Xcode 26.x, which
|
||||
is what Readest found broken, so the vendored copy stays for now.
|
||||
3. `tao = { path = "packages/tao" }` (0.35.3 + 2 iOS scene fixes) can never
|
||||
match `^0.37` again. Upstream tao 0.37.0 carries both fixes (#1245
|
||||
`f2163508` autorelease UISceneConfiguration, `a3ff3f03` connecting-scene
|
||||
role), so the patch line was REMOVED. The `packages/tao` submodule is still
|
||||
in `.gitmodules` and should be deleted in a follow-up.
|
||||
match `^0.37` again, so the patch line was REMOVED in #6081. CORRECTION
|
||||
(verified against tao-0.37.0 sources 2026-09-06): upstream ports only ONE
|
||||
half. `f2163508` (#1245, velocitysystems) = the use-after-free fix
|
||||
(`Retained::autorelease_ptr`). `a3ff3f03` (Lucas Nogueira) passes the
|
||||
connecting session's ROLE through but STILL calls
|
||||
`setDelegateClass(TaoSceneDelegate)` for EVERY role. The fork's 419f5bba
|
||||
returns a name-less config WITHOUT a delegate override for non-window roles
|
||||
so UIKit takes the Info.plist manifest entry; with plain 0.37.0 a CarPlay
|
||||
session gets TaoSceneDelegate -> NSGenericException "does not implement
|
||||
CarPlay template application lifecycle methods" on connect (fork comment,
|
||||
real device). No upstream PR from chrox/readest exists; the fork patch does
|
||||
NOT apply cleanly onto 0.37.0 (context moved). VERIFIED 2026-09-06 on the
|
||||
iOS 18.5 simulator (iPhone 16 Pro, `pnpm dev-ios-sim` of main 34e4ebeeb,
|
||||
binary contains tao-0.37.0): app launches and renders; CarPlay display
|
||||
attached via Simulator I/O > External Displays > CarPlay; Readest opened on
|
||||
CarPlay and showed the CPNowPlaying template with the current book, process
|
||||
alive, no crash report, no NSGenericException. So upstream 0.37.0 is FINE
|
||||
for CarPlay despite the TaoSceneDelegate override; the theoretical concern
|
||||
above did NOT materialize. `packages/tao` submodule REMOVED in local dev
|
||||
commit a362ac598 (2026-09-06, `git submodule deinit` + `git rm`, workflow
|
||||
comment updated; NOT pushed). Not yet checked: iOS 26.3 sim, real device.
|
||||
|
||||
Also: `rust-version` bumped 1.77.2 -> 1.90 in root `[workspace.package]` and
|
||||
`src-tauri/Cargo.toml` (user request). MSRV-aware fallback is NOT active with
|
||||
|
|
@ -87,3 +104,28 @@ superproject ref still pins; tag it first. `.gitmodules` pins no branch. CLAUDE.
|
|||
version-pinned and a newer crates.io release silently drops them.
|
||||
- Cargo.lock changed a lot (fork crates' dev-deps left the lock); expect the
|
||||
Nix FOD hash to need refreshing, see [[nix-fod-hash-staleness]].
|
||||
|
||||
Outcome: shipped as PR #6081 "chore: bump tauri to version 2.11.5" (head on the
|
||||
`chrox/readest-app` fork, squash-merged ee86510cc 2026-09-05T20:32Z) after two
|
||||
CI fixes: cargoHash + pnpmDeps hash bumps and the `as_chunks` clippy rewrite in
|
||||
epub_parser.rs. Main then took #6083 (nix Linux package on CEF). The temporary
|
||||
fork tag `cef-stub-old-base` was DELETED once main pinned 3156d92b7; the
|
||||
leftover `packages/tauri-plugins/` dir is gone. STILL OPEN: `packages/tao`
|
||||
submodule is registered in .gitmodules but unused (remove in a follow-up PR);
|
||||
iOS build with the relabelled swift-rs + upstream tao 0.37 not yet verified.
|
||||
|
||||
Sim recipe that worked (2026-09-06): boot `xcrun simctl boot <udid>` + `open -a
|
||||
Simulator` FIRST, `pnpm dev-ios-sim` (Next export + cargo sim build + xcodebuild
|
||||
+ `simctl install booted`, ~12 min; the install is the LAST step, so check the
|
||||
installed binary mtime before launching or you test the stale July app),
|
||||
`xcrun simctl launch booted com.bilingify.readest`, log via `xcrun simctl spawn
|
||||
booted log stream --predicate 'process == "Readest" OR eventMessage CONTAINS
|
||||
"Readest"'`. CarPlay: `osascript -e 'tell application "System Events" to tell
|
||||
process "Simulator" to click menu item "CarPlay" of menu "External Displays" of
|
||||
menu item "External Displays" of menu "I/O" of menu bar 1'` WORKS from this
|
||||
session (older memory said TCC blocked osascript; not the case now); computer-
|
||||
use screenshots hide menus and non-allowlisted windows, and its clicks on the
|
||||
CarPlay window did not register as touches; `System Events click at` needs the
|
||||
window raised (AXRaise errored -25204). chrox tapped the CarPlay icon by hand.
|
||||
`xcrun simctl io booted screenshot --display external` captures the CarPlay
|
||||
framebuffer (800x480).
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 419f5bba5d16b177c75b6610778fe2014f7b0ac9
|
||||
Loading…
Add table
Add a link
Reference in a new issue