diff --git a/content/en/blog/releases/0.9.0.md b/content/en/blog/releases/0.9.0.md new file mode 100644 index 0000000..43a6481 --- /dev/null +++ b/content/en/blog/releases/0.9.0.md @@ -0,0 +1,162 @@ +--- +title: "Version 0.9.0 Release" +linkTitle: "0.9.0" +date: 2023-09-10 +description: > + Backups, DeSEC DNS and more! +--- + +![Release banner showcasing new UI](/images/releases/0.9.0-banner.png) + + +{{% pageinfo color="primary" %}} +This release is made possible with the support of [NlNet foundation](https://nlnet.nl/project/SelfPrivacy/) +{{% /pageinfo %}} + +## Changelog + +### Features + +- **New backups implementation** ([#228](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/228), [#274](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/274), [#324](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/324), [#325](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/325), [#326](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/326), [#331](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/331), [#332](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/332)) +- **DeSEC as a DNS provider** ([#211](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/211)) +- **DigitalOcean as a DNS provider** ([#213](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/213)) +- Support drawer and basic support documentation logic unit ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Automatic day/night theme ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- New router and adaptive layouts ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- New Material 3 animation curves ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Add jobs button to the app bar of more screens ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Refreshed UI of modal sheets ([#228](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/228)) +- Support for `XDG_DATA_HOME` storage path on Linux for app data ([#240](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/240)) +- Accept-Language header for the server API ([#243](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/243), resolves [#205](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/205)) +- Visible providers names during server recovery ([#264](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/264), resolves [#249](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/249)) +- Volume and IPv4 cost added to overall monthly cost of the server ([#270](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/270), resolves [#115](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/115)) +- Support for autofocus on text fields for keyboard displaying ([#294](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/294), resolves [#292](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/292)) +- New dialogue to choose a domain if user DNS token provides access to several ([#330](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/330), resolves [#328](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/328)) +- New app log console ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) + +### Bug Fixes + +- Fix opening URLs from the app ([#213](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/213)) +- Fix parsing of RAM size with DigitalOcean ([#200](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/200), resolves [#199](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/199)) +- Devices and Recovery Key cubits couldn't initialize right after server installation ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Fix BottomBar showing incorrect animation when navigating from sibling routes ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- PopUpDialogs couldn't find the context. ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Update recovery flow to use new support drawer ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Improve installation failure dialogues ([#213](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/213)) +- Privacy policy link pointed at wrong domain ([#207](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/207)) +- Remove price lists for DNS ([#211](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/211)) +- Implement better domain id check on DNS restoration ([#211](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/211)) +- Add forced JSON content type to REST APIs ([#212](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/212)) +- Remove unneded DNS check depending on CLOUDFLARE ([#212](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/212)) +- Add background for dialogue pop ups and move them to root navigator ([#233](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/233), resolves [#231](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/231)) +- Make currency be properly shown again via shortcode ([#234](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/234), related to [#223](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/223)) +- Add proper server type value loading ([#236](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/236), resolves [#215](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/215)) +- Implement proper load functions for DNS and Server providers ([#237](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/237), resolves [#220](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/220)) +- Prevent moving a service if volume is null for some reason ([#245](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/245)) +- Replace hard reset from server provider with direct server reboot ([#269](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/269), resolves [#266](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/266)) +- Normalize Hetzner CPU usage percentage by cached amount of cores ([#272](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/272), resolves [#156](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/156)) +- Change broken validations string for superuser SSH ([#276](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/27)) +- Don't let service migration to start if the same volume was picked ([#297](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/297), resolves [#289](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/289)) +- Wrap DNS check in catch to avoid runtime crash ([#322](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/322)) +- Implement Backblaze bucket restoration on server recovery ([#324](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/324)) + +### Refactor + +- Migrate to Flutter 3.10 and Dart 3.0 +- Migrate to AutoRouter v6 ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Get rid of BrandText and restructure the buttons ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Remove brand alert dialogs and bottom sheet ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Remove unused UI components ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Remove BrandCards ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Allow changing values for TLS settings +- Replace String shortcode with Currency class ([#226](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/226)) +- Rearrange Server Provider interface ([#227](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/227)) +- Remove unused service state getters ([#228](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/228)) +- Remove unused utils, add duration formatter ([#228](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/228)) +- Move rest api methods according to their business logic files positions ([#235](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/235), partially resolves [#217](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/217) and [#219](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/219)) +- Make flag getter a part of server provider location object ([#238](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/238), resolves [#222](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/222)) + + +### Translation contributions + +* Ukrainian + + * FoxMeste (3) + * Mithras (31) + +* Latvian + + * Not Telling Lol (183) + + +* German + + * Mithras (41) + * FoxMeste (213) + + +* Thai + + * FoxMeste (77) + + +* Polish + + * Mithras (41) + * Thary (43) + * FoxMeste (163) + + +* Slovenian + + * Mithras (212) + + +* Czech + + * NaiJi ✨ (2) + * Mithras (109) + * FoxMeste (308) + + +* Russian + + * FoxMeste (4) + * Revertron (8) + * NaiJi ✨ (23) + * Mithras (54) + * Inex Code (59) + + +* Slovak + + * Mithras (29) + * Revertron (396) + + +* Macedonian + + * FoxMeste (7) + + +* Belarusian + + * Thary (1) + * FoxMeste (3) + * Mithras (47) + + +* French + + * Côme (211) + + +* Spanish + + * FoxMeste (7) + + +* Azerbaijani + + * Mithras (28) + * Ortibexon (403) diff --git a/content/ru/blog/releases/0.9.0.md b/content/ru/blog/releases/0.9.0.md new file mode 100644 index 0000000..63e056d --- /dev/null +++ b/content/ru/blog/releases/0.9.0.md @@ -0,0 +1,166 @@ +--- +title: "Версия 0.9.0 Релиз" +linkTitle: "0.9.0" +date: 2023-09-10 +description: > + Бекапы, DeSEC DNS и не только! +--- + +![Релизный баннер, демонстрирующий новый пользовательский интерфейс](/images/releases/0.9.0-banner.png) + + +{{% pageinfo color="primary" %}} +Релиз стал возможен при поддержке [NlNet foundation](https://nlnet.nl/project/SelfPrivacy/) +{{% /pageinfo %}} + + + +## Список изменений + +### Нововведения + +- **Новая реализация резервного копирования (бекапов)** ([#228](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/228), [#274](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/274), [#324](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/324), [#325](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/325), [#326](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/326), [#331](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/331), [#332](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/332)) +- **DeSEC в качестве DNS провайдера** ([#211](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/211)) +- **DigitalOcean в качестве DNS провайдера** ([#213](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/213)) +- Вспомогательные механизмы и окна подсказок ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Автоматическая смена дневной/ночной темы ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Новая адаптивная компоновка и порядок страниц ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Новые анимации из Material 3 ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Поддержка кнопки "Задач" для большинства экранов ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Новый интерфейс модальных окон ([#228](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/228)) +- Поддержка `XDG_DATA_HOME` директории в Linux ([#240](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/240)) +- Поддержка Accept-Language заголовка для API сервера ([#243](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/243), реализует [#205](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/205)) +- Отображение имен провайдеров при восстановлении доступа ([#264](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/264), реализует [#249](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/249)) +- Отображение стоимости IPv4 и отдельного хранилища при расчёте стоимости сервера ([#270](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/270), относится к [#115](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/115)) +- Поддержка автофокуса на текстовых полях для отображения клавиатуры ([#294](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/294), реализует [#292](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/292)) +- Новый диалог для выбора домена из множества во время установки ([#330](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/330), реализует [#328](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/328)) +- Новый журнал логов приложения ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) + + +### Исправления + +- Исправление URL-адресов из приложения ([#213](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/213)) +- Исправление парсинга количества оперативной памяти в DigitalOcean ([#200](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/200), реализует [#199](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/199)) +- Исправление инициализации кубитов во время восстановления ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Исправление некорректной анимации нижней панели ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Исправление потерянного контекста для всплывающих диалогов ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Обновление поведения окон подсказок во время восстановления ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Улучшение диалогов о сбоях при установке ([#213](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/213)) +- Исправление ссылки на политику конфиденциальности ([#207](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/207)) +- Удаление прайс-листов для DNS ([#211](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/211)) +- Реализация улучшенной проверки идентификатора домена при восстановлении DNS ([#211](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/211)) +- Добавление принудительного типа содержимого JSON в REST API ([#212](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/212)) +- Устранение незарегистрированной проверки DNS для CLOUDFLARE ([#212](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/212)) +- Добавление фона для всплывающих диалоговых окон и перемещение их в корневой навигатор ([#233](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/233), реализует [#231](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/231)) +- Исправление отображения валюты ([#234](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/234), относится к [#223](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/223)) +- Реализация правильной загрузки значения типа сервера из хранилища ([#236](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/236), реализует [#215](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/215)) +- Исправление функций загрузки для DNS и сервер провайдеров ([#237](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/237), реализует [#220](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/220)) +- Запрет перемещения сервиса, если диск по какой-либо причине пустой ([#245](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/245)) +- Заменен сброс от сервер провайдера на перезагрузку через API сервера ([#269](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/269), реализует [#266](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/266)) +- Нормализация нагрузки на процессор для Hetzner с помощью кеширования ([#272](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/272), реализует [#156](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/156)) +- Изменение неработающей строки валидации для SSH суперпользователя ([#276](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/27)) +- Запрет запуска миграции сервиса если был выбран один и тот же раздел ([#297](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/297), реализует [#289](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/289)) +- Исправление сбоя DNS проверки во время установки ([#322](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/322)) +- Реализация восстановления хранилища Backblaze при восстановлении сервера ([#324](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/324)) + + +### Улучшения + +- Обновление до Flutter 3.10 и Dart 3.0 +- Обновление до AutoRouter v6 ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Удаление BrandText и реструктуризация кнопок ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Удаление Brand диалогов и всплывающих страниц ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Удаление неиспользуемых компонентов интерфейса ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Удаление BrandCards ([#203](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/203)) +- Разрешение изменения значений для настроек TLS +- Исправление шорткода String на класс Currency ([#226](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/226)) +- Изменение интерфейса провайдера сервера ([#227](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/227)) +- Удаление неиспользуемых геттеров состояния сервиса ([#228](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/228)) +- Удаление неиспользуемых утилит ([#228](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/228)) +- Реструктуризация методов REST API в соответствии с их позициями в файлах бизнес-логики ([#235](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/235), частично реализует [#217](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/217) и [#219](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/219)) +- Добавление геттера для флага в объект локации сервера ([#238](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/238), реализует [#222](https://git.selfprivacy.org/SelfPrivacy/selfprivacy.org.app/issues/222)) + + +### Помогли с переводом + +* Украинский + + * FoxMeste (3) + * Mithras (31) + +* Латвийский + + * Not Telling Lol (183) + + +* Немецкий + + * Mithras (41) + * FoxMeste (213) + + +* Тайский + + * FoxMeste (77) + + +* Польский + + * Mithras (41) + * Thary (43) + * FoxMeste (163) + + + +* Словенский + + * Mithras (212) + + +* Чешский + + * NaiJi ✨ (2) + * Mithras (109) + * FoxMeste (308) + + +* Русский + + * FoxMeste (4) + * Revertron (8) + * NaiJi ✨ (23) + * Mithras (54) + * Inex Code (59) + + +* Словацкий + + * Mithras (29) + * Revertron (396) + + +* Македонский + * FoxMeste (7) + + +* Белорусский + + * Thary (1) + * FoxMeste (3) + * Mithras (47) + + +* Французский + + * Côme (211) + + +* Испанский + + * FoxMeste (7) + + +* Азербайджанский + + * Mithras (28) + * Ortibexon (403) diff --git a/static/images/releases/0.9.0-banner.png b/static/images/releases/0.9.0-banner.png new file mode 100644 index 0000000..d74e31e Binary files /dev/null and b/static/images/releases/0.9.0-banner.png differ