Open PhilippLgh opened 5 years ago
@Kaia2104 no concrete action item. Just to keep you posted on some of the current design decisions. @marcgarreau do you see any potential conflicts with current path resolving and UX?
Would it make sense to add this kind of path to the PATH or environment and try to leverage OS functionality?
My hypothesis is that users generally wont need to reveal or tweak this path value, but that is an uneducated assumption. I'd love to start a conversation with Kaia and team to pose some user research questions I have. Maybe an email intro is the next best step, after they've had a chance to check out your comments here.
@marcgarreau happy to answer some user research questions on our end- if you email some initial ones I can collect some responses from the right sources async, or if that's too hectic perhaps we can figure out a zoom call or something too. @PhilippLgh are you able to connect us via email? Thank you very much for all this awesome work :)
Grid normally operates on packages and there is (from a user standpoint) no distinction between a binary and a package. Grid will find the binary in the package and extract it before it runs it.
Pantheon is very different because there is no single binary and all package contents need to be available for start.
The current solution is to extend the setup routine. The plugin specifies an
unpack
property to indicate that the package contents need to be extracted which will happen directly after download.We also end up with two potentially ambiguous locations for the package and the extracted package.
The main challenge however is now that many config default values are specified at "specification time" but are only available during runtime after a package was downloaded and after it was extracted.
I introduced a new "magic string"
%PACKAGE_PATH%
that will always point to the extracted package path of the latest selected version and will be expanded before fs operations.They are not expanded in the UI to avoid an unnecessary long flag preview and field values in the settings tab. This has the potential to confuse users.
The next problem is that there we cannot rely on the internal structure of packages. So in order to expand paths for multiple versions to:
...bin_pantheon/pantheon-1.2.2/pantheon-1.2.2/lib/*
...bin_pantheon/pantheon-1.2.3/pantheon-1.2.3/lib/*
we need to specify the path as glob like%PACKAGE_PATH%/*/lib\\*
and escape the star at the end.