-
Notifications
You must be signed in to change notification settings - Fork 16
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
Reconcile cache folder names between shell script and Python code #31
Comments
Example endpoint:
The corresponding folder structure will be:
The For cases where a short name is given with For cases where no main class is given, the file In a nutshell: the filename will match what the endpoint string has, whereas the content will match the corresponding FQCN always. In addition, whenever a jgo environment is rebuilt (i.e. from scratch or with |
Before, caching would only work if no main class was specified but inferred from the jar instead. buildSuccess file specified in #31
Before, caching would only work if no main class was specified but inferred from the jar instead. buildSuccess file specified in #31
I just ran into a nasty problem on macOS which is probably relating to this work:
So I guess we need to concoct a directory naming scheme that guarantees the length doesn't grow too long. Maybe hashing the names of the secondary endpoints? It should be something we can also easily implement in bash, for the shell script version... |
I'm just bumping this issue with directory names being too long. There isn't a proper workaround and I'm running into this a couple of times per week. Shaving deps is the only option at the moment but it prevents me from doing as much as I'd like to |
We could change this to just use
and then have random/enumerated/hashed sub-directories that contain all the jars etc and a config file that specifies additional dependencies. Whenever jgo is executed, it would then go through these sub-directories and pick the one that has the correct config. In this case it may be best to simply use hashes, as long as we can guarantee that no collisions happen. |
That sounds great to me. Hashes seem to make the most sense. |
The shell script version of
jgo
names the cache folder structure with groupId as a single folder. E.g.,org.scijava:jython-shaded:2.7.1.1
will be cached at~/.jgo/org.scijava/jython-shaded/2.7.1.1
. Whereas in Python, the groupId dots are replaced with nested folders, e.g.~/.jgo/org/scijava/jython-shaded/2.7.1.1
. This means that an endpoint built with one of the implementations cannot be reused by the other implementation.The text was updated successfully, but these errors were encountered: