-
Notifications
You must be signed in to change notification settings - Fork 214
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
Use File.size? when checking for config files #2140
Conversation
WalkthroughWalkthroughThe recent updates across various controllers and configuration files in the application center around a shift from checking the existence of configuration files (such as Changes
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
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.
Verified that fix works and allows autolab to load, doesn't break existing functionality. LGTM.
Description
Use
File.size?
instead ofFile.exist?
when checking the existence of config files, namelysmtp_config.yml
github_config.yml
oauth_config.yml
lti_config.yml
lti_platform_jwk.json
lti_tool_jwk.json
Motivation and Context
For Docker compose installs, the
Makefile
automatically creates empty config files (usingtouch
) when a user updates their installation. This is to avoid problems where the Docker volume mapping creates a directory instead of a file when the path does not exist.However, the codebase currently uses
File.exist?
when checking for the existence of config files, which breaks since the empty config files do exist, causing the code to attempt to load configuration from blank files.By replacing the size with
File.size?
instead, it returnsnil
when the file does not exist OR the file exists but is empty. This is the desired semantics.How Has This Been Tested?
Create blank config files in the
config
subdirectory, e.g.touch smtp_config.yml github_config.yml oauth_config.yml lti_config.yml lti_platform_jwk.json lti_tool_jwk.json
. Run Autolab.Previously, there would be a variety of errors, starting with a failure to load github config.
After, Autolab should run fine, and e.g. the upload buttons for the LTI
json
files will not have the message saying that the files already exist.Ensure that all relevant File existence checks in the codebase have been replaced with
File.size?
Types of changes
Checklist:
overcommit --install && overcommit --sign
to use pre-commit hook for linting