Skip to content
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

Please do not 'rm -rf <unquoted variable> #8417

Open
wants to merge 7 commits into
base: master
Choose a base branch
from

Conversation

dagelf
Copy link

@dagelf dagelf commented Oct 23, 2024

Updated "classic" forge to not accidentally delete my environment without warning. (Updated #8056)

Background

I just did the "tutorial" and thankfully I implemented this change before I did, because I would've been MOST unhappy if this happened:

[coenraad@r2t2 AutoGPT]$ ./run agent create test
🎉 New agent 'test' created. The code for your new agent is in: agents/test
[coenraad@r2t2 AutoGPT]$ ./run agent start test
⌛ Running setup for agent 'test'...
Path /home/coenraad/AutoGPT/agents/benchmark for agbenchmark does not exist
Press ENTER to remove /home/coenraad/.venv
^C

$ /usr/bin/du $(poetry env info --path) --max-depth=0 -h|sort -h
14G	/home/coenraad/.venv

My connectivity isn't that great, and this environment, being my development environment, has packages accumulated over months. This is not my reproducible production machine, it's my personal dev machine... maybe I shouldn't try out new projects outside of a sandbox.... but a lot of people do, and this can really bite them.

Changes 🏗️

Quoted the "$ENV_PATH". Also made sure the script fails, if the rm command fails.
Also added a double confirmation.
Also added a way to skip the confirmation: touch delete. We can add that to the docs or any CI, if confirmed safe.

This also closes #7404

PR Quality Scorecard ✨

  • Have you used the PR description template?   +2 pts
  • Is your pull request atomic, focusing on a single change?   +5 pts
  • Have you linked the GitHub issue(s) that this PR addresses?   +5 pts
  • Have you documented your changes clearly and comprehensively?   +5 pts
  • Have you changed or added a feature?   -4 pts
    • Have you added/updated corresponding documentation?   +4 pts
    • Have you added/updated corresponding integration tests?   +5 pts
  • Have you changed the behavior of AutoGPT?   -5 pts
    • Have you also run agbenchmark to verify that these changes do not regress performance?   +10 pts

I would be most unhappy if this was removed on my dev machine:

$ /usr/bin/du $(poetry env info --path) --max-depth=0 -h|sort -h
14G	/home/user/.venv
I would be MOST unhappy if this happened on my dev machine;

$ /usr/bin/du $(poetry env info --path) --max-depth=0 -h|sort -h
14G	/home/user/.venv
I would be most unhappy if this was deleted on my dev machine:

$ /usr/bin/du $(poetry env info --path) --max-depth=0 -h|sort -h
14G	/home/user/.venv

Also, not quoting a variable fed to "rm -rf" can lead to catastrophy.
Copy link

PR-Agent was enabled for this repository. To continue using it, please link your git user with your CodiumAI identity here.

PR Reviewer Guide 🔍

Here are some key observations to aid the review process:

🎫 Ticket compliance analysis 🔶

7404 - Partially compliant

Fully compliant requirements:

  • Warn the user before removing the virtual environment
  • Ask for confirmation before deleting the venv

Not compliant requirements:

  • Explain why the venv is being removed or point users in the right direction
⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Recommended focus areas for review

Error Handling
The script uses rm -r instead of rm -rf for removing the environment, which might fail if there are read-only files. Consider using rm -rf for consistency with the original script.

User Experience
The script doesn't explain why the environment is being removed or provide guidance on recreating it. Consider adding a brief explanation or link to documentation.

Copy link

netlify bot commented Oct 23, 2024

Deploy Preview for auto-gpt-docs canceled.

Name Link
🔨 Latest commit 75a4146
🔍 Latest deploy log https://app.netlify.com/sites/auto-gpt-docs/deploys/6720333d0f15f8000877dab0

Copy link

codecov bot commented Oct 23, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 54.64%. Comparing base (fca8d61) to head (75a4146).
Report is 41 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #8417      +/-   ##
==========================================
+ Coverage   49.62%   54.64%   +5.01%     
==========================================
  Files         144       97      -47     
  Lines        8916     5538    -3378     
  Branches     1240      686     -554     
==========================================
- Hits         4425     3026    -1399     
+ Misses       4344     2412    -1932     
+ Partials      147      100      -47     
Flag Coverage Δ
Linux ?
Windows 54.64% <ø> (+4.60%) ⬆️
agbenchmark ?
autogpt-agent ?
forge 54.64% <ø> (-3.40%) ⬇️
macOS ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@ntindle
Copy link
Member

ntindle commented Oct 29, 2024

This is going to be challenging to merge as the CI for the classic is broken since moving it. #8338

@dagelf
Copy link
Author

dagelf commented Oct 30, 2024

If it's broken, merging this won't break it further ...... at least people following the instructions linked in the original issue won't be able to accidentally wipe their environments.

@dagelf
Copy link
Author

dagelf commented Oct 30, 2024

I will look at the CI if I get a chance though......

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: 👍🏼 Mergeable
Development

Successfully merging this pull request may close these issues.

agent setup rm -rf <venv> ... should warn beforehand.
2 participants