Оновлення Weblate#
Оновлення образу Docker#
До офіційного образу Docker (див. install/docker) інтегровано усі кроки оновлення. Кроків, які слід виконати вручну, окрім отримання коду найсвіжішої версії, немає.
Дивись також
Загальні настанови щодо оновлення#
Перед оновленням, будь ласка, ознайомтеся із поточними вимогами, оскільки їх могло бути змінено. Щойно усі потрібні пакунки буде встановлено або оновлено, будь ласка, скоригуйте ваш settings.py
так, щоб він відповідав змінам у налаштуваннях (зверніться до settings_example.py
, щоб дізнатися більше про правильні значення).
Завжди ознайомлюйтеся з настановами щодо специфіки версії до оновлення. Якщо ви пропустили кілька попередніх версій, виконайте настанови для всіх версій, які ви пропускаєте під час оновлення. Іноді краще оновитися до проміжної версії, щоб забезпечити безпроблемне перенесення даних. Оновлення з пропусканням кількох випусків мають працювати, але їхня перевірка на коректність виконується набагато менш ретельно, ніж перевірка оновлень без пропуску версій.
Примітка
До оновлення рекомендуємо вам створити повну резервну копію бази даних, щоб ви могли повернутися до попереднього стану бази даних, якщо не вдасться виконати оновлення, див. Резервне копіювання і пересування Weblate.
Зупиніть процеси wsgi і Celery. Оновлення може призвести до несумісних змін у базі даних, тому завжди безпечніше, якщо під час оновлення застарілі процеси не працюватимуть.
Оновіть код Weblate.
Для встановлень за допомогою pip цього можна досягти такою командою:
pip install -U "Weblate[all]==version"
Або, якщо ви просто хочете отримати найсвіжішу випущену версію:
pip install -U "Weblate[all]"
Якщо ви не хочете встановлювати усі необов’язкові залежності, зробіть так:
pip install -U Weblate
Якщо ви працюєте із копією з Git, вам слід отримати новий початковий коді і оновити встановлену у вас версію:
cd weblate-src git pull # Update Weblate inside your virtualenv . ~/weblate-env/bin/pip install -e '.[all]' # Install dependencies directly when not using virtualenv pip install --upgrade -r requirements.txt # Install optional dependencies directly when not using virtualenv pip install --upgrade -r requirements-optional.txt
У нового випуску Weblate можуть бути нові необов’язкові залежності. Будь ласка, перевірте, чи забезпечують вони роботу потрібних вам можливостей.
Оновіть файл налаштувань. Зверніться до файла
settings_example.py
або специфічних для випуску настанов, щоб ознайомитися із потрібними для цього діями.Оновіть структуру бази даних:
weblate migrate --noinput
Зберіть оновлені статичні файли (див. Запуск сервера і Обслуговування статичних файлів):
weblate collectstatic --noinput --clear
Стисніть файли JavaScript і CSS (необов’язково, див. Стиснення клієнтських даних):
weblate compress
Якщо ви працюєте із версією з Git, вам слід також повторно створювати файли локалей кожного разу після оновлення. Зробити це можна за допомогою такої команди:
weblate compilemessages
Перевірте, чи є працездатною ваша конфігурація (див. також Промислові налаштування):
weblate check --deploy
Перезапустіть засіб обробки Celery (див. Фонові завдання з використанням Celery).
Специфічні для версій настанови#
Оновлення з версії 2.x#
Якщо ви оновлюєте систему з версії 2.x, завжди спочатку оновіться до версії 3.0.1, а потім продовжіть оновлення у межах послідовності версій 3.x. Оновлення, у яких пропущено цей крок, вважаються непідтримуваними — вони не працюватимуть як слід.
Оновлення з версії 3.x#
Якщо ви оновлюєте систему з версії 3.x, завжди спочатку оновіться до версії 4.0.4 або 4.1.1, а потім продовжіть оновлення у межах послідовності версій 4.x. Оновлення, у яких пропущено цей крок, вважаються непідтримуваними — вони не працюватимуть як слід.
Оновлення з 4.0 до 4.1#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Помітні зміни у налаштуваннях або залежностях:
До
settings_example.py
внесено декілька змін. Найпомітнішими є зміна проміжного програмного забезпечення. Будь ласка, скоригуйте параметри відповідним чином.Передбачено нові формати файлів. Можливо, вам варто включити їх до списку зміненого
WEBLATE_FORMATS
.Передбачено нові перевірки якості. Можливо, вам варто включити їх до списку зміненого
CHECK_LIST
.Змінено параметр
DEFAULT_THROTTLE_CLASSES
так, щоб уможливити звітування щодо обмеження частоти у програмному інтерфейсі.Маємо деякі нові і оновлені вимоги щодо програмного забезпечення.
Змінено
INSTALLED_APPS
.Параметр
MT_DEEPL_API_VERSION
було вилучено у версії 4.7. Замість нього для рушія комп’ютерного перекладу DeepL використано новий параметрMT_DEEPL_API_URL
. Можливо, вам доведеться скоригуватиMT_DEEPL_API_URL
відповідно до параметрів вашої передплати.
Дивись також
Оновлення з 4.1 до 4.2#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Помітні зміни у налаштуваннях або залежностях:
Підтримки оновлення з випусків 3.x більше не передбачено. Будь ласка, спочатку виконайте оновлення до версії 4.0 або 4.1.
Маємо деякі нові і оновлені вимоги щодо програмного забезпечення.
До
settings_example.py
внесено декілька змін. Найпомітнішими є нове проміжне програмне забезпечення та зміна порядку виконання застосунків.Ключі для заснованих на JSON форматів більше не включать початкової крапки. Рядки скориговано під час перенесення бази даних, але зовнішні складники можуть потребувати коригування, якщо ви покладаєтеся на ключі для експортування або використання програмного інтерфейсу.
Налаштування Celery змінено так, що у них більше не використовується черга
memory
. Будь ласка, скоригуйте ваші скрипти запуску та значення параметраCELERY_TASK_ROUTES
.Домен Weblate тепер налаштовується у параметрах, див.
SITE_DOMAIN
(абоWEBLATE_SITE_DOMAIN
). Вам слід буде налаштувати його до запуску Weblate.Поля імені користувача і адреси електронної пошти у базі даних користувачів тепер мають містити неповторювані текстові дані (регістр символів не береться до уваги). У попередніх версіях це обмеження не було застосовано примусово для PostgreSQL.
Дивись також
Оновлення з 4.2 до 4.3#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Помітні зміни у налаштуваннях або залежностях:
Передбачено певні зміни у перевірках якості. Можливо, вам варто включити їх до списку зміненого
CHECK_LIST
.Атрибут початкової мови було перенесено з проєкту до складника, який доступний у програмному інтерфейсі. Вам слід оновити Клієнт Weblate, якщо ви ним користуєтеся.
Перенесення бази даних з версії 4.3 може бути тривалим. Тривалість залежить від кількості рядків, переклад яких виконується (очікуваний час для перенесення 100000 початкових рядків складає близько однієї години).
Змінено
INSTALLED_APPS
.Нове налаштування
SESSION_COOKIE_AGE_AUTHENTICATED
, яке доповнюєSESSION_COOKIE_AGE
.Якщо ви користувалися hub або lab для інтеграції із GitHub або GitLab, вам слід переналаштувати параметри, див.
GITHUB_CREDENTIALS
іGITLAB_CREDENTIALS
.
Змінено в версії 4.3.1:
Налаштування Celery змінено так, щоб додати чергу
memory
. Будь ласка, скоригуйте ваші скрипти запуску та значення параметраCELERY_TASK_ROUTES
.
Змінено в версії 4.3.2:
Метод
post_update
у додатках тепер приймає додатковий параметрskip_push
.
Дивись також
Оновлення з 4.3 до 4.4#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Помітні зміни у налаштуваннях або залежностях:
Змінено
INSTALLED_APPS
, тут слід додаватиweblate.configuration
.Тепер потрібен Django 3.1.
Якщо ви використовуєте MySQL або MariaDB, підвищено вимоги щодо мінімальних версій, див. MySQL і MariaDB.
Змінено в версії 4.4.1:
Одномовний gettext now uses both
msgid
andmsgctxt
when present. This will change identification of translation strings in such files breaking links to Weblate extended data such as screenshots or review states. Please make sure you commit pending changes in such files prior upgrading and it is recommended to force loading of affected component usingweblate loadpo
.Збільшено мінімальну обов’язкову версію translate-toolkit для виправлення декількох проблем із форматами файлів.
Дивись також
Оновлення з 4.4 до 4.5#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Помітні зміни у налаштуваннях або залежностях:
Перехід на нову версію може бути досить тривалим, якщо у вас доволі великі глосарії.
Глосарії у новій версії зберігаються як звичайні складники.
Вилучено програмний інтерфейс глосаріїв. Для доступу до глосаріїв скористайтеся звичайним програмним інтерфейсом перекладів.
Змінено
INSTALLED_APPS
, тут слід додаватиweblate.metrics
.
Змінено в версії 4.5.1:
Існує нова залежність від модуля pyahocorasick.
Дивись також
Оновлення з 4.5 до 4.6#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Помітні зміни у налаштуваннях або залежностях:
Передбачено нові формати файлів. Можливо, вам варто включити їх до списку зміненого
WEBLATE_FORMATS
.У програмному інтерфейсі для створення складників тепер автоматично використовуються Внутрішні адреси Weblate, див.
POST /api/projects/(string:project)/components/
.Відбулися зміни у залежностях, і
PASSWORD_HASHERS
тепер пріоритетно використовує Argon2 для хешування паролів.
Дивись також
Оновлення з 4.6 до 4.7#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Помітні зміни у налаштуваннях або залежностях:
До
settings_example.py
внесено декілька змін. Найпомітнішими є зміна проміжного програмного забезпечення (MIDDLEWARE
). Будь ласка, скоригуйте параметри відповідним чином.Для рушія комп’ютерного перекладу DeepL тепер використовують загальний параметр
MT_DEEPL_API_URL
з метою гнучкішої адаптації до різних моделей передплати. Використання параметраMT_DEEPL_API_VERSION
припинено.Тепер потрібен Django 3.2.
Дивись також
Оновлення з 4.7 до 4.8#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
У цьому випуску ніяких додаткових кроків із оновлення виконувати не потрібно.
Дивись також
Оновлення з 4.8 до 4.9#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Метрику зберігання даних змінено. Оновлення для великих сайтів може тривати досить довго.
Дивись також
Оновлення з 4.9 до 4.10#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Роботу із окремими для проєкту групами змінено. Оновлення для сайтів із тисячами проєктів може тривати досить довго.
До Django 4.0 внесено деякі несумісні із попередніми версіями зміни, див. Backwards incompatible changes in 4.0. У поточній версії Weblate усе ще передбачено підтримку Django 3.2, якщо оновлення до сучасної версії є проблематичним. Серед найпомітніших змін, які можуть стосуватися Weblate, такі:
Відкинуто підтримку PostgreSQL 9.6 — для роботи Django 4.0 потрібна PostgreSQL 10 або новіша версія.
Було змінено формат
CSRF_TRUSTED_ORIGINS
.
У контейнері Docker нової версії використано Django 4.0. Опис змін наведено вище.
Дивись також
Оновлення з 4.10 до 4.11#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Для роботи Weblate з цієї версії потрібен Python 3.7 або новіша версія.
Було змінено реалізацію Керування правами доступу на рівні проєкту — вилучено префікс проєкту з назв груп. Це стосується користувачів програмного інтерфейсу.
У новій версії Weblate для виявлення набору символів використано модуль
charset-normalizer
замість модуляchardet
.Змінено у 4.11.1: зміни у параметрі
REST_FRAMEWORK
(вилучення одно з модулів уDEFAULT_AUTHENTICATION_CLASSES
).
Дивись також
Оновлення з 4.11 до 4.12#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Ніяких особливих кроків робити не треба.
Дивись також
Оновлення з 4.12 до 4.13#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
При оновленні тепер буде автоматично оновлено мови; скористайтеся
UPDATE_LANGUAGES
, щоб вимкнути оновлення.Обробку контексту і місця можна змінити для форматів файлів Файли RC Windows, Файли HTML, Формат IDML і Текстові файли. У більшості випадків, у новій версії контекст буде показано як місце.
У новій версії служби комп’ютерного перекладу можна налаштувати з інтерфейсу користувача. Параметри з файла налаштувань буде імпортовано під час перенесення бази даних.
Дивись також
Оновлення з 4.13 до 4.14#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Перевірки форматування Java у новій версії відповідають прапорцям GNU gettext. Прапорці, які встановлено у Weblate буде автоматично перенесено, але для сторонніх скриптів вам доведеться скористатися
java-printf-format
замістьjava-format
іjava-format
замістьjava-messageformat
.Залежність jellyfish було замінено на rapidfuzz.
Змінено у 4.14.2: Визнано застарілими небезпечні налаштування служб керування версіями за допомогою ключів програмного інтерфейсу та _TOKEN/_USERNAME замість списку _CREDENTIALS. У Docker, будь ласка, додайте відповідну інструкцію _HOST. Приклади наведено для
WEBLATE_GITHUB_HOST
таGITHUB_CREDENTIALS
.
Дивись також
Оновлення з 4.14 до 4.15#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Для роботи нової версії Weblate потрібне розширення
btree_gin
у PostgreSQL. Під час процедури перенесення його буде встановлено, якщо процес має достатні привілеї. Див. Створення бази даних у PostgreSQL щодо налаштовування вручну.В образі для Docker більше типово не вмикається режим діагностики. Якщо він вам потрібен, увімкніть його за допомогою змінної середовища
WEBLATE_DEBUG
.Перенесення бази даних може тривати годинами у великих екземплярах через потребу у повторному створенні деяких з покажчиків.
Змінено у 4.15.1: було змінено типове значення для
DEFAULT_PAGINATION_CLASS
у решті параметрів бібліотек.
Дивись також
Оновлення з 4.15 до 4.16#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
У новій версії биття Celery зберігає план завдань у базі даних. Для цього слід змінити
CELERY_BEAT_SCHEDULER
іINSTALLED_APPS
.Припинено підтримку застарілого параметра системи керування версіями для реєстраційних даних, див. Оновлення з 4.13 до 4.14.
Оновлення django-crispy-forms потребує змін у
INSTALLED_APPS
.Інтеграція django-cors-headers потребує змін у
INSTALLED_APPS
іMIDDLEWARE
.
Дивись також
Оновлення з 4.16 до 4.17#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Перенесення переписаного сховища статистичних даних може бути досить тривалим для об’ємних екземплярів Weblate (десь близько 15 хвилин на ГБ таблиці
metrics_metric
). Щоб зменшити час непрацездатності, ви можете скопіюватиweblate/metrics/migrations/*.py
з Weblate 4.17 до 4.16 і запустити перенесення у фоновому режимі. Щойно обробку буде завершено, виконайте звичайне повне оновлення версії.Docker container now requires PostgreSQL 12 or newer, please see Оновлення контейнера PostgreSQL for upgrade instructions. Weblate itself supports older versions as well, when appropriate Django version is installed.
Попередження
Migration on MySQL will try to load all metrics into memory due to limitation of the Python database driver. You might need to prune metrics prior to migration if you want to continue using MySQL. Please consider switching to PostgreSQL, see Перенесення даних з інших баз даних до PostgreSQL.
Дивись також
Upgrade from 4.17 to 4.18#
Будь ласка, виконайте настанови із розділу Загальні настанови щодо оновлення для виконання оновлення.
Dropped support for PostgreSQL 10, 11, MySQL 5.7 and MariaDB 10.2, 10.3.
Dropped support for Python 3.7.
The Формат Fluent format changed identification of some strings, you might need to force reloading of the translation files to see the changes.
Дивись також
Оновлення з Python 2 до Python 3#
У Weblate більше не передбачено підтримки версій Python, які є старішими за 3.6. Якщо ви все ще працюєте із застарілою версією, будь ласка, виконайте спочатку перенесення даних до Python 3 на наявній версії, а потім виконайте оновлення Weblate. Див. Оновлення з Python 2 до Python 3 у документації до Weblate 3.11.1.
Перенесення даних з інших баз даних до PostgreSQL#
Якщо ви працюєте з Weblate на основі бази даних, відмінної від PostgreSQL, вам слід перенести базу даних до PostgreSQL, оскільки із ним Weblate працює оптимально. Нижче наведено список кроків, які слід виконати для перенесення ваших даних з однієї бази даних до іншої. Будь ласка, не забудьте зупинити вебсервер та сервер Celery перед перенесенням даних, інакше дані може бути пошкоджено.
Створення бази даних у PostgreSQL#
Зазвичай, варто зробити так, щоб Weblate працював із окремою базою даних і окремим обліковим записом користувача:
# If PostgreSQL was not installed before, set the main password
sudo -u postgres psql postgres -c "\password postgres"
# Create a database user called "weblate"
sudo -u postgres createuser -D -P weblate
# Create the database "weblate" owned by "weblate"
sudo -u postgres createdb -E UTF8 -O weblate weblate
Перенесення даних за допомогою дампів JSON Django#
Найпростішим підходом до перенесення є використання дампів JSON Django. Такий спосіб добре працює для малих встановлень. Для більших сайтів вам варто скористатися pgloader, див. Перенесення даних до PostgreSQL за допомогою pgloader.
Додайте PostgreSQL як додаткове з’єднання із базою даних до
settings.py
:
DATABASES = {
"default": {
# Database engine
"ENGINE": "django.db.backends.mysql",
# Database name
"NAME": "weblate",
# Database user
"USER": "weblate",
# Database password
"PASSWORD": "password",
# Set to empty string for localhost
"HOST": "database.example.com",
# Set to empty string for default
"PORT": "",
# Additional database options
"OPTIONS": {
# In case of using an older MySQL server, which has MyISAM as a default storage
# 'init_command': 'SET storage_engine=INNODB',
# Uncomment for MySQL older than 5.7:
# 'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
# If your server supports it, see the Unicode issues above
"charset": "utf8mb4",
# Change connection timeout in case you get MySQL gone away error:
"connect_timeout": 28800,
},
},
"postgresql": {
# Database engine
"ENGINE": "django.db.backends.postgresql",
# Database name
"NAME": "weblate",
# Database user
"USER": "weblate",
# Database password
"PASSWORD": "password",
# Set to empty string for localhost
"HOST": "database.example.com",
# Set to empty string for default
"PORT": "",
},
}
Запустіть перенесення і відкиньте усі дані, які було вставлено до таблиць:
weblate migrate --database=postgresql
weblate sqlflush --database=postgresql | weblate dbshell --database=postgresql
Створіть дамп застарілої бази даних а імпортуйте його до PostgreSQL
weblate dumpdata --all --output weblate.json
weblate loaddata weblate.json --database=postgresql
Скоригуйте
DATABASES
так, щоб типово використовувалася лише база даних PostgreSQL, вилучіть застаріле з’єднання.
Після цього Weblate має бути готовим для запуску з базою даних PostgreSQL.
Перенесення даних до PostgreSQL за допомогою pgloader#
pgloader — типовий інструмент для перенесення даних до PostgreSQL. Ви можете скористатися ним для перенесення бази даних Weblate.
Скоригуйте ваш
settings.py
так, щоб у ньому було використано базу даних PostgreSQL.Перенесіть схему до бази даних PostgreSQL:
weblate migrate weblate sqlflush | weblate dbshell
Запустіть pgloader для перенесення даних. Наведений нижче скрипт може бути використано для перенесення бази даних, але вам варто докладніше ознайомитися із pgloader, щоб зрозуміти принципи його роботи і скоригувати роботу так, щоб вона відповідала вашій конфігурації:
LOAD DATABASE FROM mysql://weblate:password@localhost/weblate INTO postgresql://weblate:password@localhost/weblate WITH include no drop, truncate, create no tables, create no indexes, no foreign keys, disable triggers, reset sequences, data only ALTER SCHEMA 'weblate' RENAME TO 'public' ;
Перенесення даних з Pootle#
As Weblate was originally written as replacement from Pootle, it is supported
to migrate user accounts from Pootle. You can dump the users from Pootle and
import them using weblate importusers
.