Як опублікувати новий реліз модпаку
Ось покрокова інструкція, як опублікувати нову версію модпаку.
1. Накричи на інших учасників, якщо в них залишилися якісь термінові справи для завершення.
Накричи на інших учасників, якщо в них залишилися якісь термінові справи для завершення.
Заверши всі перевірки PR та злий їх. Якщо залишилися якісь термінові завдання, подумай, чи не надто вони ризиковані та чи варто відкласти їх до наступної версії, щоб протестувати більш ретельно. TFG любить швидкі виправлення, але ще краще, якщо нам не доведеться їх робити.
2. Перевір наявність оновлень модів.
Це можна зробити у більшості лаунчерів, але не оновлюй такі моди:
- Drippy Loading Screen & FancyMenu — зараз мають баг, який спотворює індикатор прогресу на екрані завантаження. Якщо/коли це буде виправлено, тоді їх можна буде оновити.
- KubeJS — версія 2001.6.5-build.26 зламала API для їстівних/питних предметів. Якщо вони колись розберуться зі своїм бардаком, тоді це можна буде оновити.
- PandaLib & Panda's Falling Trees — ніколи не оновлюй! Новіші версії повністю змінили алгоритм визначення дерев і зламали сумісність із TFC. Це виправлено у версії 1.21 цих модів, але автор більше не підтримує 1.20 (щоб уникнути зламу чогось іншого). У нас також багато TFG-Core mixins навколо цієї версії.
- TFC Astikor Carts — ніколи не оновлюй це! Новіші версії не працюють із mixins, які має TFG-Core, і не містять нічого нового, що нам було б потрібно.
- ModernFix — спричиняє проблеми зі складанням предметів у стоси та бездіяльними дерев’яними відрами після версії 5.27.51.
- TooManyRecipeViewers — викликає лаги при перегляді рецептів після версії 0.8.1.
Оновлювати інші моди має бути безпечно, але перед публікацією обов’язково запусти гру й трохи протестуй їх.
Також перевір, чи не було оновлень у AE2 Cosmolite або його ресурс паку, бо вони не зображатимуться у лаунчері.
Не забудь перевірити, чи не з’явилися оновлення для шейдерів або ресурс-паків.
2а. Онови pakku-lock.json
Якщо ти тримаєш свій екземпляр Minecraft окремо від робочого простору (як і слід), скопіюй файл pakku-lock.json зі свого робочого простору в інстанцію. Відкрий командний рядок або термінал у своєму робочому просторі.
Якщо ти ніколи раніше не користувався Pakku, попроси іншого розробника провести тебе крізь процес. Документація знаходиться тут.
Здебільшого ти будеш використовувати лише дві команди:
java -jar pakku.jar update modid— для оновлення мода (можна використати URL сайту curseforge, щоб отримати правильний ID мода)java -jar pakku.jar fetch— для завантаження оновлень і забезпечення того, щоб твій модпак мав версії модів, перелічені у pakku-lock.json
Після оновлення всього обов’язково запусти гру, щоб протестувати оновлення. Потім скопіюй файл pakku-lock.json назад у свій робочий простір.
2б. Онови pakku.json
Щоб змінити тип публікації, відредагуй файл pakku.json і знайди рядок release_type ближче до верху. Зміни це на alpha, beta або release, якщо потрібно.
Якщо ти додаєш «optional» моди, можеш включити їх тут із "export": false, але май на увазі, що лише деякі лаунчери це враховують. CurseForge завантажує все, навіть якщо тут позначено як optional, тому ми й маємо окрему вікі‑сторінку «optional mod list».
Більшість часу тобі не потрібно оновлювати цей файл.
2в. Онови TFG-Core
Якщо будь‑які з оновлених модів також є залежностями для TFG‑Core, їх теж потрібно оновити. Подивись у файли gradle.properties та gradle/scripts/dependencies.gradle, щоб знайти залежності.
3. Опублікувати TFG-Core
Просто відкрий gradle.properties і зміни номер версії в mod_version, після чого виконай push у dev. Скрипти збірки автоматично опублікують новий реліз на CurseForge та Modrinth. Після публікації зазвичай потрібно до 30 хвилин, щоб обидва сайти зробили реліз доступним для всіх.
Зауваж, що реліз, який видно на сайті, не обов’язково означає, що він доступний для Pakku.
Поки чекаєш на це, ти можеш продовжити з деякими з наведених нижче кроків.
4. Онови журнал змін.
Онови файл CHANGELOG.md у Modpack-Modern. Переглянь останню історію modpack-modern, core-modern та tools-modern і додай усе. Якщо були якісь нещодавні оновлення модів, які варто відзначити, або оновлення шейдерів TFG — запиши їх тут також.
Поки все інше не буде готове, залиш верхній заголовок як `## Unreleased, адже зміна цього запустить процес публікації модпаку.
5. Перевір версії на невідповідності.
У Tools-Modern є інструмент під назвою PakkuLockChecker. Він пройде через твій файл pakku-lock.json і перевірить невідповідності версій між CurseForge та Modrinth чи моди відсутні на будь-якому з сайтів. Це допоможе уникнути проблем із синхронізацією та забезпечить узгодженість між платформами.
Цілком нормально, що багато модів відсутні на Modrinth, а деякі мають невідповідності версій. Тому тобі варто звертати увагу лише на важливі, такі як TFG-Core та інші ключові моди.
6. Запусти Language Merger
Синхронізуй репозиторій Tools-Modern і запусти інструмент LanguageMerger. Це забезпечить, що модпак матиме всі останні зміни в англійському тексті. Закоміть файли en_us json у модпак після цього.
7. Зачекай на TFG-Core.
Продовжуй виконувати java -jar pakku.jar update TerraFirmaGreg-Core доти, доки твій файл pakku-lock.json не матиме правильних версій одночасно для CurseForge та Modrinth. Інструмент PakkuLockChecker може бути корисним саме тут.
8. Запусти модпак востаннє.
Якщо твій екземпляр Minecraft і робоча тека є окремими директоріями (як і має бути), скопіюй туди свої тека config та defaultconfigs, а потім запусти гру востаннє.
Запусти кілька швидких тестів, як відкриття свого тестового світу, перевірка /kjs errors server_scripts на наявність попереджень, перевірка чи minecraft:barrier має якісь використання в рецептах (що вказує на порожні теги), спроба випити землю (це може трапитися, якщо дані TFC пошкоджені), перевірка що field guide не зламаний, спроба створити новий світ щоб переконатися що він працює, перевірка що будь-які нові квести не виконуються миттєво при першому завантаженні...
Якщо все гаразд, скопіюй файл config/crash_assistant/modlist.json зі свого екземпляра назад у робочу теку. Цей файл використовується у звітах про помилки Crash Assistant, щоб показати, які зміни в модах зробив користувач.
9. Запусти тест на Linux‑сервері
Переконайся, що все, що ти змінив у модпаку, опубліковано в dev, а потім зачекай, поки система збірки завершить створення збірки.
Попроси когось із тих, хто має Linux‑сервер (наприклад, Tom чи Sakura), завантажити зібраний serverpack і запустити його. Деякі помилки та збої проявляються лише на серверах.
Можна пропустити цей крок, якщо ти робиш невеликий, але терміновий реліз із купою швидких аиправлень рецептів чи чимось подібним, але якщо це не терміново — краще протестувати.
10. Фінальний крок
Якщо ти публікуєш уперше, переконайся, що інший досвідчений розробник перевірив усі твої кроки перед тим, як продовжувати.
На початку файлу CHANGELOG.md модпаку створи новий розділ ## Unreleased, а існуючий зміни так, щоб він мав правильний номер релізу та дату. Формат має бути саме таким ## [0.xx.yy] - DD-MM-YYYY.
Зроби push своїх змін у гілку dev. Зачекай трохи, і скрипт збірки створить pull request. Переглянь уважно все у описі pull request Якщо все добре, признач Xikaro рецензентом і познач pull request як Ready for Review.
Коли він схвалить, процес публікації починається. Зачекай ще приблизно 15 хвилин, і в Discord з’явиться нове оголошення в каналі #modern-releases. Ти можеш переслати цей пост у наші треди на серверах TFC та GT (у канали Content та pack-advertisement відповідно), а також у канал tfg-announcements на сервері flurben.