Skip to content

manual-generate-release: נכס library_stats.json (ספרים/קישורים/שורות) בכל רליס DB - #41

Merged
Y-PLONI merged 2 commits into
Otzaria:otzariafrom
palmoni5:feat/library-stats-asset
Sep 22, 2026
Merged

Y-PLONI merged 2 commits into
Otzaria:otzariafrom
palmoni5:feat/library-stats-asset

Conversation

@palmoni5

Copy link
Copy Markdown
Member

מה

צעד חדש Compute library stats (advisory) ב-manual-generate-release.yml, אחרי דחיסת ה-DB. הוא מפיק library_stats.json בשורה אחת:

{"schema_version":1,"db_version":28,"books":7367,"links":5812829,"lines":6031484}

ה-release מקבל אותו כנכס רגיל: הקובץ מועתק ל-release-staging לפני חישוב build_provenance.json, ולכן הוא רשום שם עם sha256 ועולה באותה לולאת draft → verify → publish.

למה

אזור "אוצריא במספרים" בדף הבית של אתר אוצריא מציג ספרים, קישורים בין ספרים ושורות. הוא קורא את הקובץ הזה מה-release היציב האחרון (vNN-), בלי להוריד את ה-DB (1.4GB). ל-v28 הקובץ כבר הועלה ידנית.

בטיחות

  • הצעד מייעץ בלבד: sqlite3 חסר, שאילתה שנכשלה, תוצאה במבנה לא מדויק או db_version שאינו של הבנייה הזו גורמים ל-::warning::, יציאה בקוד 0 ובלי שנשאר קובץ. ה-release יוצא בדיוק כמו קודם.
  • פקודת sqlite3: רצה עם sqlite3 -init /dev/null -readonly -bail, כך שקובץ ~/.sqliterc על ה-runner לא ישנה את הפלט.
  • ביצועים: נמדד על ה-DB האמיתי (7.9GB) — 0.16 עד 0.47 שניות (covering indexes).
  • צרכנים: האפליקציה, otzaria_library_updater, Otzaria_Offline_update, LinkerToOtzaria ו-build-library-index.yml בוחרים נכסים לפי שם מדויק או regex. אף אחד מהם לא יאסוף .json חדש בטעות.
  • טסט חוזה חדש: test_library_stats_are_an_advisory_staged_asset בודק את סדר הצעדים ואת כללי הצעד המייעץ, ומריץ את ה-SQL עצמו על DB קטן לבדיקה.
  • טסטים קיימים: test_manual_release_workflow ו-test_ci_workflows עוברים.

לתשומת לב (קיים מקודם, לא נגרם כאן)

build-library-index.yml מעלה את otzaria-library-index.* ל-release אחרי הפרסום. זה כבר שובר את בדיקת ה-reuse (provenance assets + 1) לכל release שעבר אינדוקס, למשל v28.

🤖 Generated with Claude Code

palmoni5 and others added 2 commits September 23, 2026 01:20
… בכל רליס DB

צעד חדש "Compute library stats (advisory)" אחרי דחיסת ה-DB: מריץ שאילתת
json_object על build/seforim.db ‏(sqlite3 -init /dev/null -readonly) וכותב
build/library_stats.json בשורה אחת. "Stage release assets" מעתיק אותו
ל-release-staging לפני חישוב build_provenance.json, כך שהוא נכס רגיל:
רשום עם sha256 ב-provenance, עולה באותה לולאת draft → verify → publish,
ובדיקת ה-reuse ‏(provenance assets + 1) ממשיכה להתקיים.

הצעד מייעץ בלבד: sqlite3 חסר, שאילתה שנכשלה, תוצאה בצורה לא מדויקת או
db_version שאינו של הבנייה הזו — כולם ::warning:: ו-exit 0 בלי להשאיר
קובץ, והרליס יוצא בדיוק כמו קודם. טסט חוזה חדש ב-test_manual_release_workflow.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Y-PLONI
Y-PLONI force-pushed the feat/library-stats-asset branch from c25324a to baeab11 Compare September 22, 2026 22:20
@Y-PLONI
Y-PLONI merged commit b29e54f into Otzaria:otzaria Sep 22, 2026
3 checks passed
@palmoni5
palmoni5 deleted the feat/library-stats-asset branch September 23, 2026 07:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants