From c54f75886afd28fe22e39fbacd8a3498407da9a1 Mon Sep 17 00:00:00 2001 From: Tomo <68489118+tomodachi94@users.noreply.github.com> Date: Fri, 25 Aug 2023 17:15:18 -0700 Subject: [PATCH 1/4] CCSMB-9 --- Standards/CCSMB-9.md | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 Standards/CCSMB-9.md diff --git a/Standards/CCSMB-9.md b/Standards/CCSMB-9.md new file mode 100644 index 0000000..d36b2ec --- /dev/null +++ b/Standards/CCSMB-9.md @@ -0,0 +1,38 @@ +# CCSMB 9: Disabling Automatic Updating and Dependency Installation in Lua Programs +*Author: Tomodachi94 <@tomodachi94>* + +## Rationale +This RFC allows users to programmatically disable autoupdating and dependency installation in programs. +Some users opt to use package managers when installing programs, which typically manage updates and dependencies on their own; additionally, some users would like to remain on a specific version for stability. + +## Autoupdating specification +Programs implementing an autoupdater MAY support the following options for disabling that function. + +Programs which are specifically designed to update programs, namely installers and package managers, SHOULD NOT implement the following. + +Programs implementing an autoupdater MUST implement all options listed below in order to be considered compliant. + +### `settings` API setting +Compliant programs MUST allow disabling autoupdating through the `autoupdating.disableAutoupdating` setting. If the option is set to `true`, autoupdating must be disabled. + +Programs running on operating systems which remove the `settings` API MAY be considered compliant if they choose not to implement the `autoupdating.disableAutoupdating` setting. + +### Global variable + +Compliant programs MUST allow disabling autoupdating through the `DISABLE_AUTOUPDATING` global variable. If the global is set to `true`, autoupdating must be disabled. + +## Dependency installation specification +Programs implementing autoinstallation of dependencies MAY support the following options for disabling that function. + +Programs which are specifically designed to install dependencies, namely installers and package managers, SHOULD NOT implement the following. + +Programs implementing autoinstallation of dependencies MUST implement all options listed below in order to be considered compliant. + +### `settings` API setting +Compliant programs MUST allow disabling autoupdating through the `dependencies.disableAutomaticDependencyInstallation` setting. If the option is set to `true`, autoinstallation of dependencies must be disabled. + +Programs running on operating systems which remove the `settings` API MAY be considered compliant if they choose not to implement the `autoupdating.disableAutoupdating` setting. + +### Global variable + +Compliant programs MUST allow disabling autoinstallation of dependencies through the `DISABLE_DEPENDENCY_INSTALLATION` global variable. If the global is set to `true`, autoupdating must be disabled. From e784fccf31e5fbb2ef39ef50a9e74926aad06930 Mon Sep 17 00:00:00 2001 From: Tomo <68489118+Tomodachi94@users.noreply.github.com> Date: Sun, 24 Mar 2024 15:09:10 -0700 Subject: [PATCH 2/4] minor reworks --- Standards/CCSMB-9.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Standards/CCSMB-9.md b/Standards/CCSMB-9.md index d36b2ec..7095dc3 100644 --- a/Standards/CCSMB-9.md +++ b/Standards/CCSMB-9.md @@ -1,4 +1,5 @@ # CCSMB 9: Disabling Automatic Updating and Dependency Installation in Lua Programs + *Author: Tomodachi94 <@tomodachi94>* ## Rationale @@ -13,13 +14,13 @@ Programs which are specifically designed to update programs, namely installers a Programs implementing an autoupdater MUST implement all options listed below in order to be considered compliant. ### `settings` API setting -Compliant programs MUST allow disabling autoupdating through the `autoupdating.disableAutoupdating` setting. If the option is set to `true`, autoupdating must be disabled. +Compliant programs MUST allow disabling autoupdating through the `ccsmb.autoupdate.enable` setting. If the option is set to `false`, autoupdating MUST be disabled. If the option is unset, compliant programs MAY choose to enable or disable autoupdating for itself. Programs running on operating systems which remove the `settings` API MAY be considered compliant if they choose not to implement the `autoupdating.disableAutoupdating` setting. ### Global variable -Compliant programs MUST allow disabling autoupdating through the `DISABLE_AUTOUPDATING` global variable. If the global is set to `true`, autoupdating must be disabled. +Compliant programs MUST allow disabling autoupdating through the `CCSMB_DISABLE_AUTOUPDATING` global variable. If the global is set to `true`, autoupdating MUST be disabled. If the variable is unset, compliant programs MAY choose to enable or disable autoupdating for itself. ## Dependency installation specification Programs implementing autoinstallation of dependencies MAY support the following options for disabling that function. @@ -29,10 +30,10 @@ Programs which are specifically designed to install dependencies, namely install Programs implementing autoinstallation of dependencies MUST implement all options listed below in order to be considered compliant. ### `settings` API setting -Compliant programs MUST allow disabling autoupdating through the `dependencies.disableAutomaticDependencyInstallation` setting. If the option is set to `true`, autoinstallation of dependencies must be disabled. +Compliant programs MUST allow disabling dependency installation through the `ccsmb.dependencyInstallation.enable` setting. If the option is set to `true`, autoinstallation of dependencies MUST be disabled. If the option is unset, compliant programs MAY choose to enable or disable dependency installation for itself. Programs running on operating systems which remove the `settings` API MAY be considered compliant if they choose not to implement the `autoupdating.disableAutoupdating` setting. ### Global variable -Compliant programs MUST allow disabling autoinstallation of dependencies through the `DISABLE_DEPENDENCY_INSTALLATION` global variable. If the global is set to `true`, autoupdating must be disabled. +Compliant programs MUST allow disabling autoinstallation of dependencies through the `CCSMB_DISABLE_DEPENDENCY_INSTALLATION` global variable. If the global is set to `true`, autoupdating MUST be disabled. If the option is unset, compliant programs MAY choose to enable or disable dependency installation for itself. From 4486ea41771c7d55c80b4ff016538bf97b2c9796 Mon Sep 17 00:00:00 2001 From: Tomo <68489118+Tomodachi94@users.noreply.github.com> Date: Sun, 24 Mar 2024 15:12:10 -0700 Subject: [PATCH 3/4] recommend 'equivalent means' for settings https://github.com/CCSMB/Standards/pull/25#discussion_r1320848072 --- Standards/CCSMB-9.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Standards/CCSMB-9.md b/Standards/CCSMB-9.md index 7095dc3..26de366 100644 --- a/Standards/CCSMB-9.md +++ b/Standards/CCSMB-9.md @@ -16,7 +16,7 @@ Programs implementing an autoupdater MUST implement all options listed below in ### `settings` API setting Compliant programs MUST allow disabling autoupdating through the `ccsmb.autoupdate.enable` setting. If the option is set to `false`, autoupdating MUST be disabled. If the option is unset, compliant programs MAY choose to enable or disable autoupdating for itself. -Programs running on operating systems which remove the `settings` API MAY be considered compliant if they choose not to implement the `autoupdating.disableAutoupdating` setting. +Programs running on operating systems which remove the `settings` API MAY be considered compliant if they choose not to implement the `autoupdating.disableAutoupdating` setting. Such operating systems MAY implement equivalent functionality through other means appropriate for that system. ### Global variable @@ -32,7 +32,7 @@ Programs implementing autoinstallation of dependencies MUST implement all option ### `settings` API setting Compliant programs MUST allow disabling dependency installation through the `ccsmb.dependencyInstallation.enable` setting. If the option is set to `true`, autoinstallation of dependencies MUST be disabled. If the option is unset, compliant programs MAY choose to enable or disable dependency installation for itself. -Programs running on operating systems which remove the `settings` API MAY be considered compliant if they choose not to implement the `autoupdating.disableAutoupdating` setting. +Programs running on operating systems which remove the `settings` API MAY be considered compliant if they choose not to implement the `autoupdating.disableAutoupdating` setting. Such operating systems MAY implement equivalent functionality through other means appropriate for that system. ### Global variable From 05fa310cfd9dcbf75d6f4bcaafa3dd9206f8adb5 Mon Sep 17 00:00:00 2001 From: Tomo <68489118+Tomodachi94@users.noreply.github.com> Date: Sun, 24 Mar 2024 15:36:52 -0700 Subject: [PATCH 4/4] fix inconsistencies --- Standards/CCSMB-9.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Standards/CCSMB-9.md b/Standards/CCSMB-9.md index 26de366..048219b 100644 --- a/Standards/CCSMB-9.md +++ b/Standards/CCSMB-9.md @@ -16,11 +16,11 @@ Programs implementing an autoupdater MUST implement all options listed below in ### `settings` API setting Compliant programs MUST allow disabling autoupdating through the `ccsmb.autoupdate.enable` setting. If the option is set to `false`, autoupdating MUST be disabled. If the option is unset, compliant programs MAY choose to enable or disable autoupdating for itself. -Programs running on operating systems which remove the `settings` API MAY be considered compliant if they choose not to implement the `autoupdating.disableAutoupdating` setting. Such operating systems MAY implement equivalent functionality through other means appropriate for that system. +Programs running on operating systems which remove the `settings` API MAY be considered compliant if they choose not to implement the `ccsmb.autoupdate.enable` setting. Such operating systems MAY implement equivalent functionality through other means appropriate for that system. ### Global variable -Compliant programs MUST allow disabling autoupdating through the `CCSMB_DISABLE_AUTOUPDATING` global variable. If the global is set to `true`, autoupdating MUST be disabled. If the variable is unset, compliant programs MAY choose to enable or disable autoupdating for itself. +Compliant programs MUST allow disabling autoupdating through the `CCSMB_ENABLE_AUTOUPDATING` global variable. If the global is set to `false`, autoupdating MUST be disabled. If the variable is unset, compliant programs MAY choose to enable or disable autoupdating for itself. ## Dependency installation specification Programs implementing autoinstallation of dependencies MAY support the following options for disabling that function. @@ -32,8 +32,8 @@ Programs implementing autoinstallation of dependencies MUST implement all option ### `settings` API setting Compliant programs MUST allow disabling dependency installation through the `ccsmb.dependencyInstallation.enable` setting. If the option is set to `true`, autoinstallation of dependencies MUST be disabled. If the option is unset, compliant programs MAY choose to enable or disable dependency installation for itself. -Programs running on operating systems which remove the `settings` API MAY be considered compliant if they choose not to implement the `autoupdating.disableAutoupdating` setting. Such operating systems MAY implement equivalent functionality through other means appropriate for that system. +Programs running on operating systems which remove the `settings` API MAY be considered compliant if they choose not to implement the `ccsmb.dependencyInstallation.enable` setting. Such operating systems MAY implement equivalent functionality through other means appropriate for that system. ### Global variable -Compliant programs MUST allow disabling autoinstallation of dependencies through the `CCSMB_DISABLE_DEPENDENCY_INSTALLATION` global variable. If the global is set to `true`, autoupdating MUST be disabled. If the option is unset, compliant programs MAY choose to enable or disable dependency installation for itself. +Compliant programs MUST allow disabling autoinstallation of dependencies through the `CCSMB_ENABLE_DEPENDENCY_INSTALLATION` global variable. If the global is set to `false`, autoupdating MUST be disabled. If the option is unset, compliant programs MAY choose to enable or disable dependency installation for itself.