বিষয়বস্তুতে যান

নতুন ভার্সন বের করা

বিশেষজ্ঞ

টেস্ট করা একটি বিল্ডকে নতুন ভার্সনে পরিণত করুন। এই পেজ মেইনটেইনারদের জন্য।

  • টেস্টিং-এর প্রতিটি চেক পাস করেছে, সঙ্গে পুরো এন্ড-টু-এন্ড রান এবং লম্বা ও ফল্ট রান।
  • 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 ঐচ্ছিক। খালি থাকলে কোনো ডক লিংক নেই
[[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-এ।

লেখার ক্রম: থিম, Highlights, জায়গাগুলো (Requests, Library, Downloads, Indexers, Accounts, Health, Setup, Install), Also new, Security, Known issues, Before you update, Image, Thanks, পরিসংখ্যানের লাইন।

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-এ স্টার দিন, স্পনসর করুন অথবা এক কাপ কফি কিনে দিন।