इसे छोड़कर कंटेंट पर जाएं

वर्ज़न निकालना

एक्सपर्ट

टेस्ट किए हुए बिल्ड को नया वर्ज़न बनाएं। यह पेज मेंटेनर के लिए है।

शुरू करने से पहले

शुरू करने से पहले का लिंक
  • टेस्टिंग की हर जाँच पास है, जिसमें एक पूरा एंड-टू-एंड रन और लंबे और फ़ॉल्ट वाले रन शामिल हैं।
  • CHANGELOG.md में नया वर्ज़न है।
  • रिलीज़ स्क्रिप्ट के लिए Python 3 इंस्टॉल है।

वर्ज़न तैयार करें

वर्ज़न तैयार करें का लिंक
  1. releases/notes-<version>.toml लिखें, जैसे releases/notes-1.0.0.toml. रिलीज़ नोट्स फ़ाइल देखें।

  2. इसे जाँचें:

    Terminal window
    python deploy/release/notes.py 1.0.0 --check

    कोई एरर नहीं दिखना चाहिए। कोई मना किया हुआ शब्द, em dash, तारीख़, लॉन्च की बातें या हाइलाइट का दोहराया हुआ इशू हो, तो यह 1 के साथ बंद होता है।

  3. रिलीज़ के टेक्स्ट बनाएं:

    Terminal window
    python deploy/release/notes.py 1.0.0

    releases/out/1.0.0/ में 7 फ़ाइलें मिलनी चाहिए।

  4. इमेज बिल्ड करें और उसे एक नए कॉन्फ़िग फ़ोल्डर पर शुरू करें:

    Terminal window
    docker build --file deploy/Dockerfile .

    पहली बार का विज़ार्ड दिखना चाहिए।

  5. टेस्टिंग की हर जाँच अपनी मशीन पर चलाएं। टेस्ट लोकल चलते हैं, GitHub पर नहीं।

  6. वर्ज़न मेंटेनर को सौंप दें। मेंटेनर main पर वर्ज़न टैग पुश करता है, और उसी से रिलीज़ शुरू होती है।

वर्ज़न और टैग के नाम

वर्ज़न और टैग के नाम का लिंक
चीज़ नाम
Git टैग (मेंटेनर पुश करता है) 1.0.0 (सादे नंबर, v नहीं)
इमेज टैग और नोट्स का version 1.0.0

वर्कफ़्लो सिर्फ़ X.Y.Z टैग पर शुरू होता है, और टैग VERSION फ़ाइल से अलग हो तो रुक जाता है।

हर वर्ज़न अपना वर्ज़न टैग और :latest पुश करता है।

वर्ज़न वापस लेना

वर्ज़न वापस लेना का लिंक
  1. फ़िक्स के साथ अगला वर्ज़न पुश करें।
  2. अपडेट सूची में ख़राब वर्ज़न पर निशान लगाएं, ताकि इंस्टॉल उसे ऑफ़र न करें।
  3. टैग को रहने दें।

लक्षण। notes.py --check 1 के साथ बंद होता है। वजह। नोट्स फ़ाइल कोई नियम तोड़ती है। संदेश में लाइन बताई जाती है। हल। नोट्स फ़ाइल को एडिट करें, releases/out की फ़ाइलों को कभी नहीं, और इसे दोबारा चलाएं।

लक्षण। वर्कफ़्लो VERSION says के साथ रुक जाता है। वजह। टैग और VERSION फ़ाइल अलग हैं। हल। main पर VERSION ठीक करें और अगला वर्ज़न टैग पुश करें।

एक्सपर्ट के लिए

एक्सपर्ट के लिए का लिंक
रिलीज़ नोट्स फ़ाइल

रिलीज़ का हर टेक्स्ट एक ही फ़ाइल से बनता है। यह जो बनाती है, उसे कभी हाथ से एडिट न करें।

फ़ील्ड इसमें क्या है
version सादा X.Y.Z
theme एक लाइन
images {registry, name} की सूची। सिर्फ़ Docker Hub holyarrs/holyarrs
docs_url वैकल्पिक। ख़ाली होने का मतलब है कि Docs लिंक नहीं होगा
[[highlights]] ठीक 3, हर एक में line, issues और shot. इनके इशू किसी ग्रुप लाइन में नहीं आते
[groups] हर जगह की लाइनें। New डिफ़ॉल्ट है। बाकी Changed: , Fixed: या Docs: से शुरू होती हैं। हर लाइन अपने इशू पर ख़त्म होती है, जैसे (#46). जिस जगह की 3 से कम लाइनें हों, वह Also new के नीचे जाती है
वैकल्पिक [before_you_update] (breaking, manual_steps, backup, rollback), security, known_issues, credits, [stats]. ख़ाली हिस्से छिपा दिए जाते हैं

GitHub लॉगिन तभी इस्तेमाल करें जब वह पता हो, नोट्स फ़ाइल में या releases/credits-map.json में।

बॉडी का क्रम: theme, Highlights, जगहें (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, stats लाइन।

releases/out/<version>/ में आउटपुट किस काम आता है
changelog.md चेंजलॉग की एंट्री
github.md GitHub रिलीज़ की बॉडी
update-notes.json वे नोट्स जो ऐप दिखाता है
reddit.txt Reddit पोस्ट
discord-dm.txt, discord-announce.md Discord. हर एक 1,000 अक्षरों से कम रहता है
roadmap-card.json रोडमैप कार्ड

notes.py ये लेता है: --file (दूसरी नोट्स फ़ाइल), --map (दूसरा क्रेडिट मैप), --out (दूसरा आउटपुट फ़ोल्डर) और --date. --check लंबी लाइनों और लगभग दोहराई गई लाइनों पर चेतावनी देता है।

इमेज वर्कफ़्लो

HolyArrs - Release वर्कफ़्लो तब शुरू होता है जब कोई वर्ज़न टैग पुश होता है। इसमें तीन चरण हैं:

  1. linux/amd64, linux/arm64 और linux/arm/v7 के लिए इमेज बिल्ड और पुश करना, वर्ज़न टैग और latest के साथ।
  2. README.md से Docker Hub का डिस्क्रिप्शन अपडेट करना।
  3. इस वर्ज़न के CHANGELOG.md वाले हिस्से के साथ GitHub रिलीज़ पब्लिश करना।
अपडेट सूची

ऐप एक साइन की हुई अपडेट सूची पढ़ता है। हर वर्ज़न अपनी एंट्री जोड़ता है और उसे साइन करता है। साइन करने वाली कुंजी रेपो में कभी नहीं जाती। जिस सूची को HolyArrs जाँच नहीं पाता, उसे वह नहीं मानता।

वर्ज़न निकलने के बाद जाँचें कि इमेज का वर्ज़न लेबल टैग से मिलता है, और पहले दिन नए इशू पर नज़र रखें:

Terminal window
docker inspect --format '{{ index .Config.Labels "org.opencontainers.image.version" }}' holyarrs
Unraid टेस्ट टेम्पलेट

deploy/release/nas-template.py एक तय इमेज के लिए Unraid का यूज़र टेम्पलेट लिखता है। यह कुछ भी पुल, इंस्टॉल या पब्लिश नहीं करता।

Terminal window
python deploy/release/nas-template.py --image 'holyarrs/holyarrs@sha256:<digest>' --config '/mnt/<pool>/appdata/holyarrs-test' --movies /mnt/user/holyarrs-test-data/movies --downloads /mnt/user/holyarrs-test-data/downloads --port 6262 --output holyarrs-test.xml

<digest> और <pool> की जगह अपनी वैल्यू डालें।

फ़्लैग नोट
--image रजिस्ट्री का मैनिफ़ेस्ट डाइजेस्ट, Docker इमेज ID नहीं
--config किसी पूल का पाथ। टूल /mnt/user और /mnt/user0 को नहीं मानता
--movies, --tv, --music, --downloads वैकल्पिक। अलग पाथ अलग माउंट होते हैं, इसलिए इंपोर्ट में फ़ाइलें कॉपी होती हैं
--port डिफ़ॉल्ट 6262
--allowed-hosts वैकल्पिक, कॉमा से अलग किए गए होस्ट नाम
--output लिखी जाने वाली XML फ़ाइल

टेम्पलेट PUID=99, PGID=100 और UMASK=022 सेट करता है। उस अकाउंट को टेस्ट मीडिया पर लिखने की अनुमति दें। फ़ाइल को /boot/config/plugins/dockerMan/templates-user/ में रखें और उसे Docker > Add Container > Template के नीचे चुनें।

HolyArrs मुफ़्त है। अगर इससे आपका समय बचा, तो GitHub पर स्टार दें, स्पॉन्सर करें या मुझे एक कॉफ़ी पिलाएं।