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>. Also please do not 'rm -rf' without confirmation, use 'rm -r' instead! #8056

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

Conversation

dagelf
Copy link

@dagelf dagelf commented Sep 15, 2024

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 Reviewer Guide 🔍

⏱️ Estimated effort to review: 2 🔵🔵⚪⚪⚪
🧪 No relevant tests
🔒 No security concerns identified
⚡ Key issues to review

Potential Data Loss
The script now includes a way to skip confirmation by creating a 'delete' file. This could lead to accidental data loss if the file is created unintentionally.

Copy link

netlify bot commented Sep 15, 2024

Deploy Preview for auto-gpt-docs canceled.

Name Link
🔨 Latest commit 536161f
🔍 Latest deploy log https://app.netlify.com/sites/auto-gpt-docs/deploys/66e693cbf48f9d0008195206

Copy link

codecov bot commented Sep 15, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 57.86%. Comparing base (0767b17) to head (536161f).
Report is 219 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #8056      +/-   ##
==========================================
+ Coverage   49.63%   57.86%   +8.23%     
==========================================
  Files         146      106      -40     
  Lines        8926     5765    -3161     
  Branches     1242      720     -522     
==========================================
- Hits         4430     3336    -1094     
+ Misses       4348     2316    -2032     
+ Partials      148      113      -35     
Flag Coverage Δ
Linux 57.86% <ø> (+8.42%) ⬆️
Windows ?
agbenchmark ?
autogpt-agent ?
forge 57.86% <ø> (-0.18%) ⬇️
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.

@dagelf
Copy link
Author

dagelf commented Sep 15, 2024

The failing CI test looks like it's unrelated to the change.

Copy link
Contributor

@Swiftyos Swiftyos left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dagelf I'm glad you caught this before you deleted all your packages!

This bit of code is pretty unused now and the tutorials are well out of date. The forge will be removed soon too.

That said, and to avoid us wiping others env without their knowledge, this is a good idea. Thank you 🙏

@Swiftyos
Copy link
Contributor

@kcze Can you check the situation with the forge ci please.

cc: @Pwuts

@dagelf
Copy link
Author

dagelf commented Sep 16, 2024

It there's a CI issue, just touch 'delete' in the directory this is called from to skip the prompts. @kcze cc: @Pwuts

@kcze
Copy link
Contributor

kcze commented Sep 17, 2024

Forge CI fail seems unrelated

It there's a CI issue, just touch 'delete' in the directory this is called from to skip the prompts.

I don't understand, CI issue is unrelated to the functionality this PR introduces

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.
3 participants