Bundle with plugins - #1
Merged
Merged
Conversation
הכונן נבנה במחשב מקוון ונצרך במחשב אחר, ולכן סינון בילדי התוספים לפי הגרסה שבמחשב המסנכרן היה שגוי מעיקרו: כונן שנבנה על אוצריא ישנה נשא בילדים ישנים, ומחשב היעד קיבל "טרם ירד — יש לבצע סנכרון" דווקא במקום שאין בו אינטרנט לתקן את זה. היעד עובר ל-`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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.