Repository navigation
fix(effect-package): 壊れたパッケージのログは変化したときだけ出す (#71) - #72
Conversation
…from every single read report() sat inside read(), which both packages() and package(_:) call, so an unreadable package was logged at error level on every re-listing and again each time the catalog session asked for its source. The listing is the read that shows a package, so it keeps the line; package(_:) reads the same files again for one id and now logs nothing. A new test pins both halves: the listing's lines are unchanged (logs) and a single read adds none.
…og, not on every listing A listing logged every broken package again on each re-listing, so one unreadable package wrote the same error line after every file event. The catalog now remembers the broken packages of its last listing (in its own stream task) and logs only the transitions: became broken, a problem that changed in kind or reason, and readable again. The DataSource logs nothing for a broken package, so package(_:) cannot repeat a line either. The decision and the alternative are recorded in docs/ARCHITECTURE.md (Key Design Decisions).
The round-trip alphabet and the padding held only ASCII whitespace, so narrowing the decoder's trim from .whitespacesAndNewlines to an ASCII set stayed green. The alphabet and the padding now include U+00A0 and U+3000, and the decoding table has a row for a name wrapped in both. With the trim narrowed to ASCII the suite fails (33 issues).
Examples/ is a content class of its own (the sample .lens packages: a manifest and a kernel) that no scan reached, so the invariant that the name lives in three files rested on a grep someone had to remember to run. check-product-name.sh now looks at the names under Examples/ and at every file in it, the way it already does for Tools/, and the Rename-safe naming paragraph states the scope without the by-hand sentence. A file named for the product and a file mentioning it, both planted under Examples/, each fail the check.
…teway now The comment on FileSystemGateway still read as a future condition (nothing above resolves it until EffectPackageDataSource) although this PR makes it true; the neighbouring EffectPackageDataSource comment was already fixed.
…ages, streams and empty listings
…hanges on the real catalog
|
No actionable comments were generated in the recent review. Walkthrough
Merge Risk:
|
There was a problem hiding this comment.
🟢 Approval recommended
No active review issues are reported for the changes.
No open issues 🎉
What changed in this PR
This pull request fixes duplicate logging for broken .lens effect packages. Broken-package diagnostics are now tracked per catalog stream and emitted only when the package’s problem state changes, while direct package reads remain silent.
Changes:
- Move broken-package transition logging from the data source to the repository.
- Add coverage for deduplication, recovery, changed failure reasons, stream isolation, and repeated reads.
- Update manifest whitespace tests, GPU preview expectations, product-name checks, documentation, dependency comments, and version
0.24.1.
| File | Description |
|---|---|
version.txt |
Bumps the release version to 0.24.1. |
Tests/GPUSmokeTests/PreviewSmokeTests.swift |
Uses the view’s backing size for resized drawable assertions. |
Tests/FramePathIntegrationTests/EffectCatalogIntegrationTests.swift |
Adds integration coverage for deduplicated broken-package logs. |
Tests/EffectPackageRepositoryTests/EffectPackageRepositoryTests.swift |
Tests log transitions, recovery, stream isolation, repeated listings, and related behavior. |
Tests/EffectPackageDataSourceTests/EffectPackageDataSourceTests.swift |
Verifies listings and direct package reads do not log broken packages. |
Tests/EffectPackageDataSourceTests/EffectManifestRoundTripTests.swift |
Extends manifest round-trip coverage for non-ASCII whitespace. |
Tests/EffectPackageDataSourceTests/EffectManifestDecodingTests.swift |
Adds decoding coverage for trimming non-ASCII whitespace. |
Sources/EffectPackageRepository/EffectPackageRepositoryImpl.swift |
Tracks broken-package state per catalog stream and logs only changes. |
Sources/EffectPackageDataSource/EffectPackageDataSourceImpl.swift |
Removes broken-package logging from individual package reads. |
scripts/check-product-name.sh |
Extends product-name validation to Examples/. |
Package.swift |
Clarifies the file-system dependency comment. |
docs/ARCHITECTURE.md |
Documents broken-package logging ownership and transition semantics. |
AGENTS.md |
Documents that product-name checks include Examples/. |
Review effort: Lite
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
壊れたパッケージ(
が、カタ
が一覧を作り直すたびに
行で出ていました。
は 変化したときだけ 出すようにしました(#71)。止まっていた担当の commit 5 件を元 SHA のまま種にし、事前レビューの指摘 14 件を実コードに当てて 1 件ずつ
しました。
manifest.json/effect.metalが欠けている、読めない、など)のc955c19fix(effect-package): log a broken package from the listing only, not from every single read(止まった作業から回収)。DataSource は壊れたパッケージについて0f78243fix(effect-package): log a broken package on a change, from the catalog, not on every listing(止まった作業から回収)。EffectPackageRepositoryImplが2ba2d6atest(effect-package): pin that the name trim takes non-ASCII whitespace(止まった作業から回収)f48ea8cchore(lint): scan Examples/ for the product name in make check(止まった作業から回収)edaae14docs(package): say that EffectPackageDataSource resolves FileSystemGateway now(止まった作業から回収)166e26fdocs(lint): name Examples/ in the product-name scan that AGENTS.md describes0640272test(preview): expect the resized drawable at the view's backing sizea3b29a1docs(effect-package): point the live-value claim at the D10 paragraph that states it4ea96aedocs(effect-package): count the listings the one-line test makes077dd79docs(effect-package): weigh the UseCase option for the broken-package memory5ead02cdocs(effect-package): name the folder errors the broken-package log does not dedupe86aa8c5test(effect-package): pin the broken-package log's memory across packages, streams and empty listingsccbff89docs(effect-package): say that an empty listing forgets the broken packages it hadad37a90test(effect-package): log a broken package's error once through ten changes on the real catalogdfba54achore(release): 0.24.1EffectPackageRepositoryImpl。各catalog()ストリームの task の中に、static letで、全 suite と consumer がFramePipelineUseCaseImplのlastDropReasons)とEffectCatalogUseCaseImplも process==です。種類がレビュー
事前レビューの指摘 14 件を実コードに当てて
しました。
Examples/をcontentsScaleは 1 のままでした。期待値は view のconvertToBackingで出す形に変え、ヘッダの「off-screen の scale は 1」も直しました。厳密LoopbackRigの real catalog)で 10 回のunsupportedFormatVersionの遷移をExamples/の走査は下記のgate.py、tagissue71-land、HEADdfba54a):Test run with 1062 tests in 139 suites passed ... with 12 known issues。12 件は main に元からある既知の issue)Test run with 27 tests in 6 suites passed)Examples/の走査:Examples/Planted.lens/manifest.jsonに製品名を書いてscripts/check-product-name.shを実行 →Examples/Planted.lens/manifest.json:1: product name appears outside the three allowed filesでcheck-product-name: OK。入れていないもの
Closes #71
Summary by CodeRabbit