From 21f9d26280d4b42eb3d2488869e98ac843909a48 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Fri, 14 Jun 2024 23:18:24 +0200 Subject: [PATCH] preparations for V0.16.0 (#146) Co-authored-by: yunohost-bot --- conf/config.yaml | 25 +++++++++-------------- config_panel.toml | 14 ++----------- doc/PRE_UPGRADE.d/0.16.0~ynh1.md | 10 ++++++++++ manifest.toml | 34 +++++++++++--------------------- scripts/install | 2 -- scripts/upgrade | 7 +++++++ tests.toml | 3 +-- 7 files changed, 40 insertions(+), 55 deletions(-) create mode 100644 doc/PRE_UPGRADE.d/0.16.0~ynh1.md diff --git a/conf/config.yaml b/conf/config.yaml index b09aeac..aabc557 100644 --- a/conf/config.yaml +++ b/conf/config.yaml @@ -416,16 +416,12 @@ instance-inject-mastodon-version: __INSTANCE_INJECT_MASTODON_VERSION__ # Config pertaining to creation and maintenance of accounts on the server, as well as defaults for new accounts. -# Bool. Do we want people to be able to just submit sign up requests, or do we want invite only? +# Bool. Allow people to submit new sign-up / registration requests via the form at /signup. +# # Options: [true, false] -# Default: true +# Default: false accounts-registration-open: __ACCOUNTS_REGISTRATION_OPEN__ -# Bool. Do sign up requests require approval from an admin/moderator before an account can sign in/use the server? -# Options: [true, false] -# Default: true -accounts-approval-required: __ACCOUNTS_APPROVAL_REQUIRED__ - # Bool. Are sign up requests required to submit a reason for the request (eg., an explanation of why they want to join the instance)? # Options: [true, false] # Default: true @@ -1049,15 +1045,10 @@ advanced-throttling-multiplier: 8 # Default: "30s" advanced-throttling-retry-after: "30s" -# Int. CPU multiplier for the amount of goroutines to spawn in order to send messages via ActivityPub. -# Messages will be batched so that at most multiplier * CPU count messages will be sent out at once. -# This can be tuned to limit concurrent POSTing to remote inboxes, preventing your instance CPU -# usage from skyrocketing when an account with many followers posts a new status. -# -# Messages are split among available senders, and each sender processes its assigned messages in serial. -# For example, say a user with 1000 followers is on an instance with 2 CPUs. With the default multiplier -# of 2, this means 4 senders would be in process at once on this instance. When the user creates a new post, -# each sender would end up iterating through about 250 Create messages + delivering them to remote instances. +# Int. CPU multiplier for the fixed number of goroutines to spawn in order to send messages via ActivityPub. +# Messages will be batched and pushed to a singular queue, from which multiplier * CPU count goroutines will +# pull and attempt deliveries. This can be tuned to limit concurrent posting to remote inboxes, preventing +# your instance CPU usage skyrocketing when accounts with many followers post statuses. # # If you set this to 0 or less, only 1 sender will be used regardless of CPU count. This may be # useful in cases where you are working with very tight network or CPU constraints. @@ -1106,6 +1097,8 @@ advanced-csp-extra-uris: [] # # "allow" -- only requests that are explicitly allowed by header filters # will be accepted (unless they are also explicitly blocked). +# This mode is considered experimental and will almost certainly +# break access to your instance unless you are very careful. # # "" -- request header filtering disabled. # diff --git a/config_panel.toml b/config_panel.toml index 2819488..40fa7bb 100644 --- a/config_panel.toml +++ b/config_panel.toml @@ -25,18 +25,8 @@ help = "Here you can easily configure some things about your GoToSocial instance bind = "accounts-registration-open:__INSTALL_DIR__/config.yaml" choices = [ "true", "false" ] default = "false" - help.en = "Do we want people to be able to just submit sign up requests, or do we want invite only?" - help.fr = "Voulez-vous que les gens puissent simplement envoyer des demandes d'inscription, ou voulez-vous qu'iels doivent être invité-e-s ?" - type = "select" - - [main.accounts.accounts_approval_required] - ask.en = "Approval required?" - ask.fr = "Validation requise ?" - bind = "accounts-approval-required:__INSTALL_DIR__/config.yaml" - choices = [ "true", "false" ] - default = "true" - help.en = "Do sign up requests require approval from an admin/moderator before an account can sign in/use the server?" - help.fr = "Les demandes d'inscription doivent-elles être approuvées par un-e administrateur-ice/modérateur-ice avant qu'un compte puisse se connecter/utiliser le serveur ?" + help.en = "Allow people to submit new sign-up / registration requests via the form at `/signup`." + help.fr = "Permettre aux personnes de déposer de nouvelles demandes d'inscription via le formulaire à l'adresse `/signup`." type = "select" [main.accounts.accounts_reason_required] diff --git a/doc/PRE_UPGRADE.d/0.16.0~ynh1.md b/doc/PRE_UPGRADE.d/0.16.0~ynh1.md new file mode 100644 index 0000000..c9de3a4 --- /dev/null +++ b/doc/PRE_UPGRADE.d/0.16.0~ynh1.md @@ -0,0 +1,10 @@ +⚠️ Stating with this 0.16.0 version, GoToSocial offers a registration page. +Please be sure you deactivated registrations if you don't want to. + +Relevant changelog quote: +> **Sign up / registration**: In this release, you can open your instance to new registrations (aka sign-ups) via the new signup page at `https://__DOMAIN__/signup`. No more manually creating new users via the CLI :) +> Documentation here: +> +> **Accounts overview for moderators**: To support the new sign-up feature, and help instance admins to moderate, we made a new section in the settings panel where admins + moderators can get an overview of accounts, and filter by instance, status, and more. You'll find this new accounts view in the settings panel. + +[Read the full changelog.](https://github.com/superseriousbusiness/gotosocial/releases/tag/v0.16.0) diff --git a/manifest.toml b/manifest.toml index 1254ec3..d2dbb19 100644 --- a/manifest.toml +++ b/manifest.toml @@ -27,7 +27,7 @@ multi_instance = true ldap = false sso = false disk = "50M" -ram.build = "100M" +ram.build = "200M" ram.runtime = "100M" [install] @@ -67,25 +67,13 @@ ask.ar = "التسجيلات مفتوحة؟" ask.gl = "Rexistro aberto?" ask.ca = "Registres oberts?" ask.fr = "Inscriptions ouvertes ?" -help.en = "Do you want people to be able to just submit sign up requests (true), or do you want invite only (false)?" +help.en = "Allow people to submit new sign-up / registration requests via the form at `/signup`." help.gl = "Queres permitir que calquera poida solicitar unha conta (verdadeiro), ou queres que só sexa a través de convite (falso)?" help.ca = "Voleu que la gent puguin enviar peticions de registre (true), o voleu que les registres es facin únicament per invitació (false)?" -help.fr = "Voulez-vous que les gens puissent envoyer des demandes d'inscription (true) ou voulez-vous que les inscriptions soient uniquement sur invitation (false) ?" +help.fr = "Permettre aux personnes de déposer de nouvelles demandes d'inscription via le formulaire à l'adresse `/signup`." type = "boolean" default = false -[install.accounts_approval_required] -ask.en = "Registration approval?" -ask.gl = "Aprobar novas contas?" -ask.ca = "Verificació manual dels registres?" -ask.fr = "Vérification manuelle des inscriptions ?" -help.en = "Do sign up requests require approval from an admin/moderator before an account can sign in/use the server?" -help.gl = "Para indicar se, após crear unha conta, esta debe ser aprobada pola administración antes de poder usar o servidor" -help.ca = "Ha d'aprovar manualment un administrador/moderador el registre abans que el compte pugui iniciar sessió al servidor?" -help.fr = "Les demandes d'inscription doivent-elles être approuvées par un-e administrateur-ice/modérateur-ice avant qu'un compte puisse se connecter et utiliser le serveur ?" -type = "boolean" -default = true - [install.accounts_reason_required] ask.en = "Request registration reason?" ask.gl = "Requerir razón para crear conta?" @@ -101,14 +89,14 @@ default = true [resources] [resources.sources.main] in_subdir = false -i386.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.15.0/gotosocial_0.15.0_linux_386.tar.gz" -i386.sha256 = "7c5158f010b752a559aa3446bf28920bb8d9542109ba94c2a33cf907b3058504" -amd64.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.15.0/gotosocial_0.15.0_linux_amd64.tar.gz" -amd64.sha256 = "7819586a54869b2bfa2b27fbb2746f97e7eaa06f19fd154c7f2ad34aea3188d3" -armhf.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.15.0/gotosocial_0.15.0_linux_armv7.tar.gz" -armhf.sha256 = "50bb887000f98030c0fa1aab60cd11ceaa986e3debd315ddb5a8dfdee2b502d2" -arm64.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.15.0/gotosocial_0.15.0_linux_arm64.tar.gz" -arm64.sha256 = "6c9f49da974bdad6d40a269e43cbfd8a62f6d8b3c8497d35b1c2a41128b523c0" +i386.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.16.0-rc3/gotosocial_0.16.0-rc3_linux_386.tar.gz" +i386.sha256 = "7755365763749148e6278ec728aa9cb0827537735ca142165ffda901118354b2" +amd64.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.16.0-rc3/gotosocial_0.16.0-rc3_linux_amd64.tar.gz" +amd64.sha256 = "49ebdf55af3aaaf8eb48a5d877a75acdf9f46154cdf960e39805c564a9f91b1c" +armhf.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.16.0-rc3/gotosocial_0.16.0-rc3_linux_armv7.tar.gz" +armhf.sha256 = "24d631f2dc46dc73617d0c8db0cb4754d6cb8068112fa35ced2804e57069b1c0" +arm64.url = "https://github.com/superseriousbusiness/gotosocial/releases/download/v0.16.0-rc3/gotosocial_0.16.0-rc3_linux_arm64.tar.gz" +arm64.sha256 = "3a56ddb9babb6726e0980dec21b85859442b8247822e4388d3249c833aa3a830" autoupdate.asset.i386 = "gotosocial_.*linux_386.tar.gz$" autoupdate.asset.amd64 = "gotosocial_.*linux_amd64.tar.gz$" diff --git a/scripts/install b/scripts/install index 7ecfe6e..778b7c9 100755 --- a/scripts/install +++ b/scripts/install @@ -25,7 +25,6 @@ client_max_body_size="100M" cache_memory_target="100MiB" accounts_registration_open=$(convert_bool "$YNH_APP_ARG_ACCOUNTS_REGISTRATION_OPEN") -accounts_approval_required=$(convert_bool "$YNH_APP_ARG_ACCOUNTS_APPROVAL_REQUIRED") accounts_reason_required=$(convert_bool "$YNH_APP_ARG_ACCOUNTS_REASON_REQUIRED") accounts_allow_custom_css="false" accounts_custom_css_length="10000" @@ -97,7 +96,6 @@ ynh_app_setting_set --app="$app" --key=password --value="$password" ynh_app_setting_set --app="$app" --key=cache_memory_target --value="$cache_memory_target" ynh_app_setting_set --app="$app" --key=accounts_registration_open --value="$accounts_registration_open" -ynh_app_setting_set --app="$app" --key=accounts_approval_required --value="$accounts_approval_required" ynh_app_setting_set --app="$app" --key=accounts_reason_required --value="$accounts_reason_required" ynh_app_setting_set --app="$app" --key=accounts_allow_custom_css --value="$accounts_allow_custom_css" ynh_app_setting_set --app="$app" --key=accounts_custom_css_length --value="$accounts_custom_css_length" diff --git a/scripts/upgrade b/scripts/upgrade index 7dd22f2..960449c 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -280,6 +280,13 @@ then ynh_app_setting_delete --app="$app" --key=statuses_cw_max_chars fi +# Upgrade from <0.16.0~ynh1: +if ynh_compare_current_package_version --comparison lt --version 0.16.0~ynh1 || [ -n "${accounts_approval_required:-}" ] +then + # parameter removal + ynh_app_setting_delete --app="$app" --key=accounts_approval_required +fi + #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= diff --git a/tests.toml b/tests.toml index 9c5745d..a849f61 100644 --- a/tests.toml +++ b/tests.toml @@ -3,7 +3,7 @@ test_format = 1.0 [default] # GTS don't support it -exclude = "change_url" +exclude = [ "change_url" ] # ------------------------------- # Default args to use for install @@ -15,7 +15,6 @@ args.password = "vYh8io7r*@P&zyo!6ZhBqQQ%8M5D4M" # false by default args.accounts_registration_open = 1 # true by default -args.accounts_approval_required = 0 args.accounts_reason_required = 0 # -------------------------------