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

Added support for marking virtualenvs ignored for cloud sync #589

Merged
merged 4 commits into from
Feb 5, 2024

Conversation

mitsuhiko
Copy link
Collaborator

@mitsuhiko mitsuhiko commented Feb 5, 2024

By default rye will now mark virtualenvs to not sync to cloud storage (iCloud and Dropbox).

Todo:

  • docs
  • testing on windows

Fixes #585

@dsp
Copy link
Contributor

dsp commented Feb 5, 2024

On Windows 11 Home, Version 10.0.22621 Build 22621:

Dropbox Test

1. Create Rye Project

PS C:\Users\dsp\Dropbox> rye init rye-test
success: Initialized project in C:\Users\dsp\Dropbox\rye-test
  Run `rye sync` to get started
PS C:\Users\dsp\Dropbox> cd .\rye-test\
PS C:\Users\dsp\Dropbox\rye-test> rye sync
Initializing new virtualenv in C:\Users\dsp\Dropbox\rye-test\.venv
Python version: cpython@3.12.1
Generating production lockfile: C:\Users\dsp\Dropbox\rye-test\requirements.lock
Generating dev lockfile: C:\Users\dsp\Dropbox\rye-test\requirements-dev.lock
Installing dependencies
Looking in indexes: https://pypi.org/simple/
Obtaining file:///. (from -r C:\Users\dsp\AppData\Local\Temp\tmpqjvccmhf (line 1))
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Preparing editable metadata (pyproject.toml) ... done
Building wheels for collected packages: rye-test
  Building editable for rye-test (pyproject.toml) ... done
  Created wheel for rye-test: filename=rye_test-0.1.0-py3-none-any.whl size=1251 sha256=a0634d8b4eca0d6236f25eae685de0bcb410e9c1f065195458d36ac18d73e032
  Stored in directory: C:\Users\dsp\AppData\Local\Temp\pip-ephem-wheel-cache-__n8gxnq\wheels\8b\19\c8\73a63a20645e0f1ed9aae9dd5d459f0f7ad2332bb27cba6c0f
Successfully built rye-test
Installing collected packages: rye-test
Successfully installed rye-test-0.1.0
Done!

2. Checking ADS exist:

PS C:\Users\dsp\Dropbox\rye-test> Get-Content .venv -Stream com.dropbox.ignored
1

3: Checking visually on Dropbox.com that .venv wasn't synched:

image

4. Change behavior.venv-mark-sync-ignore

PS C:\Users\dsp\Dropbox\rye-test> rye config --set-bool behavior.venv-mark-sync-ignore=false
PS C:\Users\dsp\Dropbox\rye-test> rye sync
Reusing already existing virtualenv
Generating production lockfile: C:\Users\dsp\Dropbox\rye-test\requirements.lock
Generating dev lockfile: C:\Users\dsp\Dropbox\rye-test\requirements-dev.lock
Installing dependencies
Found existing installation: rye-test 0.1.0
Uninstalling rye-test-0.1.0:
  Successfully uninstalled rye-test-0.1.0
Looking in indexes: https://pypi.org/simple/
Obtaining file:///. (from -r C:\Users\dsp\AppData\Local\Temp\tmpcpez7e5i (line 1))
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Preparing editable metadata (pyproject.toml) ... done
Building wheels for collected packages: rye-test
  Building editable for rye-test (pyproject.toml) ... done
  Created wheel for rye-test: filename=rye_test-0.1.0-py3-none-any.whl size=1251 sha256=a0634d8b4eca0d6236f25eae685de0bcb410e9c1f065195458d36ac18d73e032
  Stored in directory: C:\Users\dsp\AppData\Local\Temp\pip-ephem-wheel-cache-ikx6cioo\wheels\8b\19\c8\73a63a20645e0f1ed9aae9dd5d459f0f7ad2332bb27cba6c0f
Successfully built rye-test
Installing collected packages: rye-test
Successfully installed rye-test-0.1.0
Done!
PS C:\Users\dsp\Dropbox\rye-test> Get-Content .venv -Stream com.dropbox.ignored
1
PS C:\Users\dsp\Dropbox\rye-test> rye config --get behavior.venv-mark-sync-ignore
false

ERROR: Expected taht com.dropbox.ignored does no longer exist. I double checked the rye config file, and it seems to be corretly set to a bool flag:
image

@dsp
Copy link
Contributor

dsp commented Feb 5, 2024

Second test. Created a new rye project now with the global behavior setting behavior.venv-mark-sync-ignore set to false.

PS C:\Users\dsp\Dropbox> rye init rye-test-2
success: Initialized project in C:\Users\dsp\Dropbox\rye-test-2
  Run `rye sync` to get started
PS C:\Users\dsp\Dropbox> cd .\rye-test-2\
PS C:\Users\dsp\Dropbox\rye-test-2> rye sync
Initializing new virtualenv in C:\Users\dsp\Dropbox\rye-test-2\.venv
Python version: cpython@3.12.1
Generating production lockfile: C:\Users\dsp\Dropbox\rye-test-2\requirements.lock
Generating dev lockfile: C:\Users\dsp\Dropbox\rye-test-2\requirements-dev.lock
Installing dependencies
Looking in indexes: https://pypi.org/simple/
Obtaining file:///. (from -r C:\Users\dsp\AppData\Local\Temp\tmpjdv_b33f (line 1))
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Preparing editable metadata (pyproject.toml) ... done
Building wheels for collected packages: rye-test-2
  Building editable for rye-test-2 (pyproject.toml) ... done
  Created wheel for rye-test-2: filename=rye_test_2-0.1.0-py3-none-any.whl size=1277 sha256=de10f4c465c07189f9aa89db6643546c3e5a6535a5fb97d5560bb763266e155c
  Stored in directory: C:\Users\dsp\AppData\Local\Temp\pip-ephem-wheel-cache-qw4a_78h\wheels\8b\19\c8\73a63a20645e0f1ed9aae9dd5d459f0f7ad2332bb27cba6c0f
Successfully built rye-test-2
Installing collected packages: rye-test-2
Successfully installed rye-test-2-0.1.0
Done!
PS C:\Users\dsp\Dropbox\rye-test-2> rye config --get behavior.venv-mark-sync-ignore
false

image

This now correctly has .venv

@mitsuhiko
Copy link
Collaborator Author

This looks great. Thank you. If I can figure out solutions for iCloud Drive on Windows or other cloud tools, I will follow up with fixes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add an Option to Prevent .venv from Syncing to Cloud Storage
2 participants