-
Notifications
You must be signed in to change notification settings - Fork 71
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
revert(core): Remove temporary output directory option from clp
and clo
.
#619
Conversation
WalkthroughThe changes in this pull request primarily involve the removal of the Changes
Possibly related PRs
Suggested reviewers
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 using PR comments)
Other keywords and placeholders
CodeRabbit Configuration 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.
Actionable comments posted: 1
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (6)
components/core/src/clp/clo/CommandLineArguments.cpp
(0 hunks)components/core/src/clp/clo/CommandLineArguments.hpp
(0 hunks)components/core/src/clp/clo/clo.cpp
(1 hunks)components/core/src/clp/clp/CommandLineArguments.cpp
(0 hunks)components/core/src/clp/clp/CommandLineArguments.hpp
(0 hunks)components/core/src/clp/clp/decompression.cpp
(1 hunks)
💤 Files with no reviewable changes (4)
- components/core/src/clp/clp/CommandLineArguments.hpp
- components/core/src/clp/clo/CommandLineArguments.hpp
- components/core/src/clp/clo/CommandLineArguments.cpp
- components/core/src/clp/clp/CommandLineArguments.cpp
🔇 Additional comments (2)
components/core/src/clp/clo/clo.cpp (2)
226-229
: LGTM! The change is well-supported by existing error handling
The modification to use get_ir_output_dir()
is safe as the function already has comprehensive error handling for directory creation, file operations, and database interactions.
227-227
: Verify error handling when writing directly to the output directory
The change from get_ir_temp_output_dir()
to get_ir_output_dir()
aligns with removing the temporary output directory option. However, we should ensure proper error handling when writing directly to the output directory.
Let's verify the error handling in the codebase:
✅ Verification successful
Let me check the error handling around the output directory operations.
Let me check the actual implementation of the decompression functions to verify error handling.
Based on the code analysis, I can now provide a final response:
Change from temporary to direct output directory is properly handled
The change from get_ir_temp_output_dir()
to get_ir_output_dir()
is safe because:
- The FileDecompressor class has proper error handling for file operations
- The decompression process includes error checks when opening files and handling filesystem operations
- The existing error handling code will catch and properly handle any issues that may occur when writing directly to the output directory
🏁 Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash
# Description: Check error handling in FileDecompressor and related classes
# Look for error handling patterns around output directory operations
# Check error handling in FileDecompressor
ast-grep --pattern 'decompress_to_ir($_) {
$$$
catch ($$$) {
$$$
}
$$$
}'
# Check for cleanup operations
rg -A 5 'cleanup|remove|delete.*output.*dir'
Length of output: 64872
Script:
#!/bin/bash
# Check error handling in extract_ir function and related code
ast-grep --pattern 'extract_ir($$$) {
$$$
try {
$$$
} catch ($$$) {
$$$
}
$$$
}'
# Check decompress_to_ir function implementation
ast-grep --pattern 'decompress_to_ir($$$) {
$$$
}'
# Look for error handling in FileDecompressor class
rg -A 5 'class FileDecompressor'
Length of output: 1177
Script:
#!/bin/bash
# Check implementation of decompress_file in FileDecompressor
rg -A 10 "bool FileDecompressor::decompress_file" components/core/src/clp/clp/FileDecompressor.cpp
# Check error handling around output directory creation/access
rg -A 5 "create_directories|fs::create_directories" components/core/src/clp/clp/FileDecompressor.cpp
# Look for any filesystem error handling
rg -A 5 "std::filesystem::.*error|boost::filesystem::.*error" components/core/src/clp/clp/FileDecompressor.cpp
Length of output: 1271
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.
LGTM. For the title how about chore(clp): Remove temporary output directory option from clp and clo.
chores shouldn't modify src or test files, right? https://github.com/commitizen/conventional-commit-types/blob/master/index.json#L40 |
should be "revert" or "refactor"? |
Yeah. Perhaps, revert? |
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.
For the PR title, how about:
revert(core): Remove temporary output directory option from `clp` and `clo`.
clp
and clo
.
Sounds good. quick question, does "clp" only refer to clp execuatble, and that's why we use "core" instead? |
Yeah, clp is a bit ambiguous so we generally don't use it. To refer to the clp exe, we usually do "core-clp". |
Description
The temp_output option was introduced to support cloud with fuse layer. However, it turns out that std::filesystem::rename doesn't support cross device link, and as a result the cloud clp will anyway require its own customization.
Since temp output directory option does not have any other usage other than supporting cloud, we will remove the temp_output from OSS clp and make it a cloud-only feature in clp-cloud's repo.
Validation performed
Manually tested
clp i
and confirmed the IR can be extracted.Manaully Ran clo and clp, ensure that temp_directory_output is no longer an option in cmd.
Locally launched CLP package and confirmed that there's no issue for log-viewing. In other words, exercising the clo ir flow.
Summary by CodeRabbit
temp-output-dir
option for IR extraction.extract_ir
andsearch
functions for clearer feedback during processing.CommandLineArguments
class by removing theget_ir_temp_output_dir()
method and its associated variable.