-
-
Notifications
You must be signed in to change notification settings - Fork 3
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
jgo managed packages in conda #1
Comments
Good question. To make things more conda-environment-friendly, we could enhance these defaults. It could be as simple as wrapping all the Tricky things and downsides:
A middle ground could be to leave Maven's local repository cache alone, but keep the |
Generally, I would like to use mvn clean install
conda activate # if not yet activated
jgo groupId:artifactId:version-SNAPSHOT This would be made unnecessarily complicated if the default
Using two rc files seems odd to me. Which one would take precedence in case of clashes? I feel that only one rc file should be read. We could make |
These are all good points. Conda has a package cache that is actually hard linked per environment. So saving space should be possible with either approach. The RC file location is a really good point. With Certainly understand the motivation for using the default maven repository path. That said, installing packages could prove tricky for cases where users lack internet connection for whatever reason or are relying on old Interesting. I'm not familiar with how the internals of |
The Maven Way™ to control it is via
Here is an example from a fresh install, @jakirkham:
(The In the example above, I requested to launch the Bundling all the stuff into a directory like this makes launching simpler: the actual invocation of
So as you can see, the endpoint cache is really minimal, particularly when hard or soft links are used. I don't feel strongly whether we use
Note that once an endpoint exists in the I'm pretty pressed for time at the moment preparing for the I2K conference, but willing to revisit this after the new year if work needs to be done. |
Ok, so the contents of As to the hard linking concerns, while it may be possible for these issues to come up, am not sure how often they will show up in practice. Most users install In the cases where No worries. This can wait I think. Just wanted to raise this point before we had 100s of packages like this. 😄 |
Yes, by default. If you specify
On macOS,
Probably our best bet long-term would be to enhance the linking logic of |
Something like this? diff --git a/jgo/jgo.py b/jgo/jgo.py
index 2c1d612..80c26f5 100644
--- a/jgo/jgo.py
+++ b/jgo/jgo.py
@@ -264,7 +264,7 @@ def default_config():
# settings
config.add_section('settings')
config.set('settings', 'm2Repo', os.path.join(str(pathlib.Path.home()), '.m2', 'repository'))
- config.set('settings', 'cacheDir', os.path.join(str(pathlib.Path.home()), '.jgo'))
+ config.set('settings', 'cacheDir', os.path.join(os.getenv('CONDA_PREFIX', str(pathlib.Path.home())), '.jgo'))
config.set('settings', 'links', 'hard')
# repositories That keeps the |
I think that jgo should not check for conda environment but a variable like Apologies for brevity, sent from phone. |
@hanslovsky I agree about |
@ctrueden Once scijava/jgo#23 is merged we can go on here. |
Sorry, catching up here.
Interesting. Was not aware of that. Curious how well these to package managers behave when installed like that. AFAIK the recommended way to download Miniconda or Anaconda remains to get them from Anaconda directly. That said, a sysadmin could install Conda somewhere where users could not modify it. Users of this install could still create new environments and download/install packages (insomuch as the admin has not blocked these). These environments and packages would live in the users home directory in this case. Though these locations are configurable.
Shouldn't be any need for hidden directories within the Conda environment.
SGTM Can backup the old value for this variable as well. That way it can be easily restored after deactivating. |
It works well because Homebrew installations are owned by the active user, rather than root. So the miniconda installation is mutable as usual.
Merged! |
If multiple users install miniconda through brew, does that not clash with the install location at I used to install
Thank you! |
Multi-user brew installations are very rare in my experience. Some people do it. See this SO post for some related issues. Not really Conda's problem! 😉
Yeah, I'm not a fan of Linux package managers for inherently extensible things like Conda, Eclipse and Fiji. Too much brokenness. |
Is this resolved with #4? Or should we wait until for the next
Agreed.
I feel the issue is the clash of paradigms (global settings/behavior that are locally overwritten by user config files/extension (what Linux expects) vs user-space only local installations). Apart from that, I never had issues extending eclipse or intellij (or conda) installed through package manager. (Eclipse settings is a whole other topic, but as we say in German "Das Kind ist in den Brunnen gefallen"). |
At least from my perspective, yes, it is solved. On these other details, will defer to others.
Yeah, this sums up my feelings on these more unusual installs. Only wanted to point out in many cases like this Conda still tries to do something reasonable and provide as many options to the end user as possible. |
As other packages are looking to use
jgo
particularly in aconda
setting, have a question about its use. Namely where should artifacts downloaded byjgo
live? According to the README IIUC these live in the users home directory. However in many casesconda
users have gotten use to package content living within theconda
environment. For instance, withjulia
we install all packages into a special path within the environment. The advantage being these are isolated from other environments with differentjulia
installs and possibly other non-conda
installs ofjulia
. Would this strategy make sense forjgo
and Maven installed packages? Or are there use cases where this would be problematic?The text was updated successfully, but these errors were encountered: