Merge branch 'YunoHost:dev' into dev

This commit is contained in:
Éric Gaspar 2023-02-03 09:40:37 +01:00 committed by GitHub
commit ce5d4ca637
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
54 changed files with 203 additions and 71 deletions

View file

@ -44,5 +44,4 @@ black:
- git push -f origin "ci-format-${CI_COMMIT_REF_NAME}":"ci-format-${CI_COMMIT_REF_NAME}"
- hub pull-request -m "[CI] Format code with Black" -b Yunohost:$CI_COMMIT_REF_NAME -p || true # GITHUB_USER and GITHUB_TOKEN registered here https://gitlab.com/yunohost/yunohost/-/settings/ci_cd
only:
variables:
- $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
- tags

View file

@ -26,7 +26,7 @@ autofix-translated-strings:
- git checkout -b "ci-autofix-translated-strings-${CI_COMMIT_REF_NAME}" --no-track
- python3 maintenance/missing_i18n_keys.py --fix
- python3 maintenance/autofix_locale_format.py
- '[ $(git diff | wc -l) != 0 ] || exit 0' # stop if there is nothing to commit
- '[ $(git diff --ignore-blank-lines --ignore-all-space --ignore-space-at-eol --ignore-cr-at-eol | wc -l) != 0 ] || exit 0' # stop if there is nothing to commit
- git commit -am "[CI] Reformat / remove stale translated strings" || true
- git push -f origin "ci-autofix-translated-strings-${CI_COMMIT_REF_NAME}":"ci-remove-stale-translated-strings-${CI_COMMIT_REF_NAME}"
- hub pull-request -m "[CI] Reformat / remove stale translated strings" -b Yunohost:$CI_COMMIT_REF_NAME -p || true # GITHUB_USER and GITHUB_TOKEN registered here https://gitlab.com/yunohost/yunohost/-/settings/ci_cd

29
debian/changelog vendored
View file

@ -1,3 +1,32 @@
yunohost (11.1.5.3) stable; urgency=low
- helpers/appsv2: replacement of __PHPVERSION__ should use the phpversion setting, not YNH_PHP_VERSION (13d4e16e)
- appv2 resources: document the fact that the apt resource may create a phpversion setting when the dependencies contain php packages (2107a848)
-- Alexandre Aubin <alex.aubin@mailoo.org> Fri, 03 Feb 2023 03:05:11 +0100
yunohost (11.1.5.2) stable; urgency=low
- maintenance: new year, update copyright header (ba4f1925)
- helpers: fix remaining __FINALPATH__ in php template (note that this is backward compatible because ynh_add_config will replace __INSTALL_DIR__ by $finalpath if $finalpath exists... (9b7668da)
-- Alexandre Aubin <alex.aubin@mailoo.org> Thu, 02 Feb 2023 23:58:29 +0100
yunohost (11.1.5.1) stable; urgency=low
- debian: Bump moulinette/ssowat requirement to 11.1 (0826a541)
- helpers: Fixes $app unbound when running ynh_secure_remove ([#1582](https://github.com/yunohost/yunohost/pull/1582))
- log/appv2: don't dump all settings in log metadata (a9ac55e4)
- appv2: resource upgrade will tweak settings, we have to re-update the env_dict after upgrading resources (3110460a)
- appv2: safety-backup-before-upgrade should only contain the app (1c95bcff)
- appv2: fix env not including vars for v1->v2 upgrade (2b2d49a5)
- backup: add name of the backup in create/delete message, otherwise that creates some spooky messages with 'Backup created' directly followed by 'Backup deleted' during safety-backup-before-upgrade in v2 apps (8090acb1)
- [i18n] Translations updated for Arabic, French, Galician, Polish
Thanks to all contributors <3 ! (ButterflyOfFire, Éric Gaspar, Eryk Michalak, Florent, José M, ppr)
-- Alexandre Aubin <alex.aubin@mailoo.org> Thu, 02 Feb 2023 23:37:46 +0100
yunohost (11.1.5) stable; urgency=low
- Release as stable !

View file

@ -156,7 +156,7 @@ ynh_add_fpm_config() {
user = __APP__
group = __APP__
chdir = __FINALPATH__
chdir = __INSTALL_DIR__
listen = /var/run/php/php__PHPVERSION__-fpm-__APP__.sock
listen.owner = www-data

View file

@ -348,7 +348,7 @@ ynh_local_curl() {
# __NAMETOCHANGE__ by $app
# __USER__ by $app
# __FINALPATH__ by $final_path
# __PHPVERSION__ by $YNH_PHP_VERSION
# __PHPVERSION__ by $YNH_PHP_VERSION (packaging v1 only, packaging v2 uses phpversion setting implicitly set by apt resource)
# __YNH_NODE_LOAD_PATH__ by $ynh_node_load_PATH
# ```
# And any dynamic variables that should be defined before calling this helper like:
@ -417,7 +417,7 @@ ynh_add_config() {
# __NAMETOCHANGE__ by $app
# __USER__ by $app
# __FINALPATH__ by $final_path
# __PHPVERSION__ by $YNH_PHP_VERSION
# __PHPVERSION__ by $YNH_PHP_VERSION (packaging v1 only, packaging v2 uses phpversion setting implicitly set by apt resource)
# __YNH_NODE_LOAD_PATH__ by $ynh_node_load_PATH
#
# And any dynamic variables that should be defined before calling this helper like:
@ -452,7 +452,8 @@ ynh_replace_vars() {
ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$file"
ynh_replace_string --match_string="__INSTALL_DIR__" --replace_string="$final_path" --target_file="$file"
fi
if test -n "${YNH_PHP_VERSION:-}"; then
# Legacy / Packaging v1 only
if dpkg --compare-versions ${YNH_APP_PACKAGING_FORMAT:-0} lt 2 && test -n "${YNH_PHP_VERSION:-}"; then
ynh_replace_string --match_string="__PHPVERSION__" --replace_string="$YNH_PHP_VERSION" --target_file="$file"
fi
if test -n "${ynh_node_load_PATH:-}"; then
@ -718,7 +719,7 @@ _acceptable_path_to_delete() {
local forbidden_paths=$(ls -d / /* /{var,home,usr}/* /etc/{default,sudoers.d,yunohost,cron*})
# Legacy : A couple apps still have data in /home/$app ...
if [[ -n "$app" ]]
if [[ -n "${app:-}" ]]
then
forbidden_paths=$(echo "$forbidden_paths" | grep -v "/home/$app")
fi

View file

@ -209,5 +209,10 @@
"unbackup_app": "لن يتم حفظ التطبيق '{app}'",
"unrestore_app": "لن يتم استعادة التطبيق '{app}'",
"yunohost_already_installed": "إنّ YunoHost مُنصّب مِن قَبل",
"hook_name_unknown": "إسم الإجراء '{name}' غير معروف"
"hook_name_unknown": "إسم الإجراء '{name}' غير معروف",
"app_manifest_install_ask_admin": "اختر مستخدمًا إداريًا لهذا التطبيق",
"domain_config_cert_summary_abouttoexpire": "مدة صلاحية الشهادة الحالية على وشك الإنتهاء ومِن المفتَرض أن يتم تجديدها تلقائيا قريبا.",
"app_manifest_install_ask_path": "اختر مسار URL (بعد النطاق) حيث ينبغي تنصيب هذا التطبيق",
"app_manifest_install_ask_domain": "اختر اسم النطاق الذي ينبغي فيه تنصيب هذا التطبيق",
"app_manifest_install_ask_is_public": "هل يجب أن يكون هذا التطبيق ظاهرًا للزوار المجهولين؟"
}

View file

@ -102,14 +102,14 @@
"backup_copying_to_organize_the_archive": "Copying {size}MB to organize the archive",
"backup_couldnt_bind": "Could not bind {src} to {dest}.",
"backup_create_size_estimation": "The archive will contain about {size} of data.",
"backup_created": "Backup created",
"backup_created": "Backup created: {name}",
"backup_creation_failed": "Could not create the backup archive",
"backup_csv_addition_failed": "Could not add files to backup into the CSV file",
"backup_csv_creation_failed": "Could not create the CSV file needed for restoration",
"backup_custom_backup_error": "Custom backup method could not get past the 'backup' step",
"backup_custom_mount_error": "Custom backup method could not get past the 'mount' step",
"backup_delete_error": "Could not delete '{path}'",
"backup_deleted": "Backup deleted",
"backup_deleted": "Backup deleted: {name}",
"backup_hook_unknown": "The backup hook '{hook}' is unknown",
"backup_method_copy_finished": "Backup copy finalized",
"backup_method_custom_finished": "Custom backup method '{method}' finished",
@ -400,12 +400,12 @@
"firewall_reloaded": "Firewall reloaded",
"firewall_rules_cmd_failed": "Some firewall rule commands have failed. More info in log.",
"global_settings_reset_success": "Reset global settings",
"global_settings_setting_dns_exposure": "IP versions to consider for DNS configuration and diagnosis",
"global_settings_setting_dns_exposure_help": "NB: This only affects the recommended DNS configuration and diagnosis checks. This does not affect system configurations.",
"global_settings_setting_admin_strength": "Admin password strength requirements",
"global_settings_setting_admin_strength_help": "These requirements are only enforced when initializing or changing the password",
"global_settings_setting_backup_compress_tar_archives": "Compress backups",
"global_settings_setting_backup_compress_tar_archives_help": "When creating new backups, compress the archives (.tar.gz) instead of uncompressed archives (.tar). N.B. : enabling this option means create lighter backup archives, but the initial backup procedure will be significantly longer and heavy on CPU.",
"global_settings_setting_dns_exposure": "IP versions to consider for DNS configuration and diagnosis",
"global_settings_setting_dns_exposure_help": "NB: This only affects the recommended DNS configuration and diagnosis checks. This does not affect system configurations.",
"global_settings_setting_nginx_compatibility": "NGINX Compatibility",
"global_settings_setting_nginx_compatibility_help": "Compatibility vs. security tradeoff for the web server NGINX. Affects the ciphers (and other security-related aspects)",
"global_settings_setting_nginx_redirect_to_https": "Force HTTPS",

View file

@ -652,7 +652,7 @@
"tools_upgrade_failed": "Impossible de mettre à jour les paquets : {packages_list}",
"migration_0023_not_enough_space": "Prévoyez suffisamment d'espace disponible dans {path} pour exécuter la migration.",
"migration_0023_postgresql_11_not_installed": "PostgreSQL n'a pas été installé sur votre système. Il n'y a rien à faire.",
"global_settings_setting_backup_compress_tar_archives_help": "Lors de la création de nouvelles sauvegardes, compresser automatiquement les archives (.tar.gz) au lieu des archives non compressées (.tar). N.B. : activer cette option permet de créer des archives plus légères, mais la procédure de sauvegarde initiale sera significativement plus longues et plus gourmandes en CPU.",
"global_settings_setting_backup_compress_tar_archives_help": "Lors de la création de nouvelles sauvegardes, compresser automatiquement les archives (.tar.gz) au lieu des archives non compressées (.tar).\nN.B. : activer cette option permet de créer des archives plus légères, mais la procédure de sauvegarde initiale sera significativement plus longues et plus gourmandes en CPU.",
"global_settings_setting_security_experimental_enabled": "Fonctionnalités de sécurité expérimentales",
"global_settings_setting_security_experimental_enabled_help": "Activer les fonctionnalités de sécurité expérimentales (ne l'activez pas si vous ne savez pas ce que vous faites !)",
"global_settings_setting_nginx_compatibility_help": "Compromis 'compatibilité versus sécurité' pour le serveur web NGINX. Affecte les cryptogrammes utilisés (et d'autres aspects liés à la sécurité)",

View file

@ -5,5 +5,67 @@
"already_up_to_date": "Nic do zrobienia. Wszystko jest obecnie aktualne.",
"admin_password": "Hasło administratora",
"action_invalid": "Nieprawidłowe działanie '{action:s}'",
"aborting": "Przerywanie."
"aborting": "Przerywanie.",
"domain_config_auth_consumer_key": "Klucz konsumenta",
"domain_config_cert_validity": "Ważność",
"visitors": "Odwiedzający",
"app_start_install": "Instalowanie {app}...",
"app_unknown": "Nieznana aplikacja",
"ask_main_domain": "Domena główna",
"backup_created": "Utworzono kopię zapasową",
"firewall_reloaded": "Przeładowano zaporę sieciową",
"user_created": "Utworzono użytkownika",
"yunohost_installing": "Instalowanie YunoHost...",
"global_settings_setting_smtp_allow_ipv6": "Zezwól na IPv6",
"user_deleted": "Usunięto użytkownika",
"domain_config_default_app": "Domyślna aplikacja",
"restore_complete": "Przywracanie zakończone",
"domain_deleted": "Usunięto domenę",
"domains_available": "Dostępne domeny:",
"domain_config_api_protocol": "API protokołu",
"domain_config_auth_application_key": "Klucz aplikacji",
"diagnosis_description_systemresources": "Zasoby systemu",
"log_user_import": "Importuj użytkowników",
"system_upgraded": "Zaktualizowano system",
"diagnosis_description_regenconf": "Konfiguracja systemu",
"diagnosis_description_apps": "Aplikacje",
"diagnosis_description_basesystem": "Podstawowy system",
"unlimit": "Brak limitu",
"global_settings_setting_pop3_enabled": "Włącz POP3",
"domain_created": "Utworzono domenę",
"ask_new_admin_password": "Nowe hasło administracyjne",
"ask_new_domain": "Nowa domena",
"ask_new_path": "Nowa ścieżka",
"downloading": "Pobieranie...",
"ask_password": "Hasło",
"backup_deleted": "Usunięto kopię zapasową",
"done": "Gotowe",
"diagnosis_description_dnsrecords": "Rekordy DNS",
"diagnosis_description_ip": "Połączenie z internetem",
"diagnosis_description_mail": "Email",
"diagnosis_mail_ehlo_could_not_diagnose_details": "Błąd: {error}",
"diagnosis_mail_queue_unavailable_details": "Błąd: {error}",
"diagnosis_http_could_not_diagnose_details": "Błąd: {error}",
"installation_complete": "Instalacja zakończona",
"app_start_remove": "Usuwanie {app}...",
"app_start_restore": "Przywracanie {app}...",
"app_upgraded": "Zaktualizowano {app}",
"extracting": "Rozpakowywanie...",
"app_removed": "Odinstalowano {app}",
"upgrade_complete": "Aktualizacja zakończona",
"global_settings_setting_backup_compress_tar_archives": "Kompresuj kopie zapasowe",
"global_settings_setting_nginx_compatibility": "Kompatybilność z NGINX",
"global_settings_setting_nginx_redirect_to_https": "Wymuszaj HTTPS",
"ask_admin_username": "Nazwa użytkownika administratora",
"ask_fullname": "Pełne imię i nazwisko",
"upgrading_packages": "Aktualizowanie paczek...",
"admins": "Administratorzy",
"diagnosis_ports_could_not_diagnose_details": "Błąd: {error}",
"log_settings_set": "Zastosuj ustawienia",
"domain_config_cert_issuer": "Organ certyfikacji",
"domain_config_cert_summary": "Status certyfikatu",
"global_settings_setting_ssh_compatibility": "Kompatybilność z SSH",
"global_settings_setting_ssh_port": "Port SSH",
"log_settings_reset": "Resetuj ustawienia",
"log_tools_migrations_migrate_forward": "Uruchom migracje"
}

View file

@ -1,6 +1,6 @@
#! /usr/bin/python
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#
@ -647,7 +647,9 @@ def app_upgrade(app=[], url=None, file=None, force=False, no_safety_backup=False
safety_backup_name = f"{app_instance_name}-pre-upgrade2"
other_safety_backup_name = f"{app_instance_name}-pre-upgrade1"
backup_create(name=safety_backup_name, apps=[app_instance_name])
backup_create(
name=safety_backup_name, apps=[app_instance_name], system=None
)
if safety_backup_name in backup_list()["archives"]:
# if the backup suceeded, delete old safety backup to save space
@ -677,11 +679,17 @@ def app_upgrade(app=[], url=None, file=None, force=False, no_safety_backup=False
env_dict = _make_environment_for_app_script(
app_instance_name, workdir=extracted_app_folder, action="upgrade"
)
env_dict["YNH_APP_UPGRADE_TYPE"] = upgrade_type
env_dict["YNH_APP_MANIFEST_VERSION"] = str(app_new_version)
env_dict["YNH_APP_CURRENT_VERSION"] = str(app_current_version)
env_dict_more = {
"YNH_APP_UPGRADE_TYPE": upgrade_type,
"YNH_APP_MANIFEST_VERSION": str(app_new_version),
"YNH_APP_CURRENT_VERSION": str(app_current_version),
}
if manifest["packaging_format"] < 2:
env_dict["NO_BACKUP_UPGRADE"] = "1" if no_safety_backup else "0"
env_dict_more["NO_BACKUP_UPGRADE"] = "1" if no_safety_backup else "0"
env_dict.update(env_dict_more)
# Start register change on system
related_to = [("app", app_instance_name)]
@ -698,6 +706,17 @@ def app_upgrade(app=[], url=None, file=None, force=False, no_safety_backup=False
operation_logger=operation_logger,
)
# Boring stuff : the resource upgrade may have added/remove/updated setting
# so we need to reflect this in the env_dict used to call the actual upgrade script x_x
# Or: the old manifest may be in v1 and the new in v2, so force to add the setting in env
env_dict = _make_environment_for_app_script(
app_instance_name,
workdir=extracted_app_folder,
action="upgrade",
include_app_settings=True,
)
env_dict.update(env_dict_more)
# Execute the app upgrade script
upgrade_failed = True
try:
@ -2718,7 +2737,12 @@ def _assert_no_conflicting_apps(domain, path, ignore_app=None, full_domain=False
def _make_environment_for_app_script(
app, args={}, args_prefix="APP_ARG_", workdir=None, action=None
app,
args={},
args_prefix="APP_ARG_",
workdir=None,
action=None,
include_app_settings=False,
):
app_setting_path = os.path.join(APPS_SETTING_PATH, app)
@ -2745,7 +2769,7 @@ def _make_environment_for_app_script(
env_dict[f"YNH_{args_prefix}{arg_name_upper}"] = str(arg_value)
# If packaging format v2, load all settings
if manifest["packaging_format"] >= 2:
if manifest["packaging_format"] >= 2 or include_app_settings:
env_dict["app"] = app
for setting_name, setting_value in _get_app_settings(app).items():
# Ignore special internal settings like checksum__

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#
@ -2295,7 +2295,7 @@ def backup_create(
)
backup_manager.backup()
logger.success(m18n.n("backup_created"))
logger.success(m18n.n("backup_created", name=name))
operation_logger.success()
return {
@ -2622,7 +2622,7 @@ def backup_delete(name):
hook_callback("post_backup_delete", args=[name])
logger.success(m18n.n("backup_deleted"))
logger.success(m18n.n("backup_deleted", name=name))
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#
@ -16,6 +16,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
import copy
import os
import re
import yaml
@ -594,6 +595,16 @@ class OperationLogger:
Write or rewrite the metadata file with all metadata known
"""
metadata = copy.copy(self.metadata)
# Remove lower-case keys ... this is because with the new v2 app packaging,
# all settings are included in the env but we probably don't want to dump all of these
# which may contain various secret/private data ...
if "env" in metadata:
metadata["env"] = {
k: v for k, v in metadata["env"].items() if k == k.upper()
}
dump = yaml.safe_dump(self.metadata, default_flow_style=False)
for data in self.data_to_redact:
# N.B. : we need quotes here, otherwise yaml isn't happy about loading the yml later

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#
@ -703,6 +703,7 @@ class AptDependenciesAppResource(AppResource):
##### Provision/Update:
- The code literally calls the bash helpers `ynh_install_app_dependencies` and `ynh_install_extra_app_dependencies`, similar to what happens in v1.
- Note that when `packages` contains some phpX.Y-foobar dependencies, this will automagically define a `phpversion` setting equal to `X.Y` which can therefore be used in app scripts ($phpversion) or templates (`__PHPVERSION__`)
##### Deprovision:
- The code literally calls the bash helper `ynh_remove_app_dependencies`

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#

View file

@ -1,5 +1,5 @@
#
# Copyright (c) 2022 YunoHost Contributors
# Copyright (c) 2023 YunoHost Contributors
#
# This file is part of YunoHost (see https://yunohost.org)
#