Skip to content

Bundle with plugins - #1

Merged
Yehuda-Zakesh merged 2 commits into
mainfrom
bundle-with-plugins
Sep 4, 2026
Merged

Bundle with plugins#1
Yehuda-Zakesh merged 2 commits into
mainfrom
bundle-with-plugins

Conversation

@Yehuda-Zakesh

Copy link
Copy Markdown
Owner

No description provided.

Yehuda-Zakesh and others added 2 commits September 4, 2026 03:12
הכונן נבנה במחשב מקוון ונצרך במחשב אחר, ולכן סינון בילדי התוספים לפי
הגרסה שבמחשב המסנכרן היה שגוי מעיקרו: כונן שנבנה על אוצריא ישנה נשא
בילדים ישנים, ומחשב היעד קיבל "טרם ירד — יש לבצע סנכרון" דווקא במקום
שאין בו אינטרנט לתקן את זה.

היעד עובר ל-`Otzaria/otzaria/releases`: הגרסה האחרונה, וכשהיא מסומנת
prerelease — גם היציבה האחרונה שמתחתיה, כדי שמי שעל הערוץ היציב לא יקבל
בילד שלא יעלה אצלו. הרשימה נכנסת ל-`resolveTargets` הקיים, שכבר בנוי
לכמה גרסאות; נוסף לו רק מיון יורד, כי הסדר הפך לחלק מהחוזה.

ההכרעה נשענת על הדגל `prerelease` ולא על שם ה-release — בריפו כל
ה-releases נקראים "Preview from dev" — ומספר הבילד (`+736`) נחתך מהתג,
כי `compatibleWith` באתר הוא `0.9.96` בלעדיו.

גרסת אוצריא שבמחשב לא נעלמה, אלא עברה מ"מה יורד" ל"מה מוצג": תוסף שאין
במראה בילד שירוץ עליה אינו מופיע בחנות כלל, עם שורת הסבר אחת בתחתית
הרשימה. בלעדיה חנות שחסרים בה תוספים אינה ניתנת לאבחון מרחוק.

- `installTarget` מוגבל לבילדי המראה בלבד. בילד היסטורי שתואם למחשב אך
  אינו יעד לא יירד לעולם, והחזרתו ייצרה "טרם ירד" שאין דרך לפתור.
- גרסאות היעד נשמרות בקטלוג — המחשב הלא-מקוון אינו יכול לברר אותן.
  בביטול נשמרות הקודמות: הקבצים שעל הכונן הם שלהן.
- מראה שסונכרנה לפני השדה, וגרסה מקומית שטרם זוהתה, אינן מסתירות דבר.
- מראה שאף תוסף בה אינו רץ כאן קיבלה מסך משלה, במקום "עדיין לא סונכרנו
  תוספים" — הסנכרון דווקא הצליח.

מחיקת הבילדים הישנים נופלת מ-`pruneUnusedFiles` הקיים, שמוחק כל קובץ
שאינו בקטלוג.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
מי שמתקין במחשב מנותק צריך שהתוספים כבר יהיו אצלו. מתפרסמת עכשיו, לצד
ה-exe הרזה, חבילה של ~96MB: אותו בינארי בדיוק עם מראה שלמה משורשרת
לסופו. הרצה אחת פורסת אותה, כותבת עותק רזה של עצמה, מפעילה אותו ויוצאת.

המטען אינו נדחס — ה-.otzplugin הם ZIP והתמונות webp — ולכן הפריסה היא
העתקה בזרימה בחוצץ קבוע, בלי שדבר ייטען לזיכרון. השרשור לסוף ה-PE משאיר
את הבינארי שפורסם בייט-לבייט, וכך העותק הרזה שנכתב בפריסה הוא בדיוק
ה-exe שנבדק; RCDATA היה מחייב בנייה מחדש סביב המטען.

ההחלפה סיטונית ולא ממוזגת: המראה היא נגזרת של (קטלוג, גרסאות היעד) ולא
נתוני משתמש. state.json ו-logs\, שיושבים באותה תיקייה והם מקומיים
למכונה, אינם נגעים. החותמת נכתבת אחרונה — פריסה שנקטעה משאירה תיקייה
בלי חותמת וההרצה הבאה עושה אותה מחדש, וזו כל האטומיות שנדרשת.

הממשק מציע למחוק את קובץ ההתקנה, ואינו מוחק לבד: אותה חבילה עשויה
להיות מיועדת גם למחשב שני.

האריזה ב-CI מריצה את PluginMirrorSync עצמו מול שכבת fs/net ב-Node, ולא
העתק של כללי הבחירה. הג'וב נזרע מהחבילה הקודמת ולכן מוריד מ-otzaria.org
רק את הדלתא, ומפרסם לתג bundle מתגלגל — תג שאינו v<N> נעלם מבדיקת
העדכון, ותג קבוע אינו דוחף את ה-v<N> מחוץ לדף שהיא קוראת.

מוני ההורדות והדירוגים מנוטרלים מהשוואת "האם יש מה לפרסם": נמדד
שסנכרון שדילג על כל 38 התוספים עדיין הפיק קטלוג שונה בגלל מונה אחד,
כלומר בלי הנטרול הג'וב היה מפרסם 96MB בכל ריצה יומית.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Yehuda-Zakesh
Yehuda-Zakesh merged commit 7dfe153 into main Sep 4, 2026
8 checks passed
@Yehuda-Zakesh
Yehuda-Zakesh deleted the bundle-with-plugins branch September 4, 2026 01:06
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.

1 participant