-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CCSMB-9: Disabling Automatic Updating and Dependency Installation in Lua Programs #25
base: master
Are you sure you want to change the base?
Changes from 3 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
# 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 `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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Here too we should probably define what happens if its true |
||
|
||
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. | ||
tomodachi94 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
### 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. | ||
tomodachi94 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
## 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 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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And if its false? I may be annoying about this but I think all options should be clearly defined There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. If its set to true, it should be enabled, not disabled, its way more clear |
||
|
||
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. | ||
tomodachi94 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
### 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. | ||
tomodachi94 marked this conversation as resolved.
Show resolved
Hide resolved
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we should add the text referring to RFC 2119 at the top here if we're gonna use the keywords