-
-
Notifications
You must be signed in to change notification settings - Fork 10
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
Usability concerns #60
Comments
I agree it is not convenient but it is powerful. This, to me, suggests that something built on top of Yakut would be in order. Perhaps a VSCode plugin that uses Yakut and injects workspace defaults as Yakut defaults, does git pull of the public, regulated types, etc? I think opportunities to simplify the command-line would be accepted (I'm not the maintainer here though) but I don't think it's a good idea to provide any pre-compiled data types or otherwise tightly bind the tool with the types. While gui_tool worked well with little to no configuration the auto-magic defaults quickly became an impediment as our systems matured. I don't want to have that kind of inflexibility nor hidden behaviours in Yakut. |
Just to be clear, I'm not advocating for removing configuration, but for providing convenient defaults instead. Regarding bundled datatypes, what if |
It is a bad example that needs to be improved. The point of that snippet is not to illustrate how to invoke the
I am generally okay with that change but I am not entirely sure if it is actually better than the current behavior because when it comes to generating anything, by default the user would expect the output to show up in the current working directory. Maybe we could provide a dedicated command that sets up the default system configuration when run, like Another option is to provide an automatic installation script that does all these things automatically per system, like: bash -c "$(wget -O - https://raw.githubusercontent.com/OpenCyphal/yakut/main/setup.bash)"
# Also 'setup.pwsh' for Windows, etc.
No, this is not going to happen. In v0 it was a terrible decision that led to much confusion, causing many developers and vendors to fork the public regulated repository just to add some obscure application-specific types to the standard
This is not as bad but then would it be much different from simply copy-pasting the public regulated data type URI to your shell? Compare: # A helper command specifically for the public regulated data types:
yakut compile-public-regulated-dsdl
# What we have right now, where the URI is copy-pasted from the README:
yakut compile https://github.com/OpenCyphal/public_regulated_data_types/archive/refs/heads/master.zip Actually, we already have a snippet in the README that merely needs to be copy-pasted to compile the standard namespace, so I would say that it is pretty much a non-issue? Maybe I am missing something though.
Absolutely. This is tracked in PyCyphal with a slightly different bent: OpenCyphal/pycyphal#153. I want to get rid of the notion of DSDL pre-compilation completely (but it won't rid you of the need to download DSDL sources). Would you be inclined to help with that? I expect this to improve the UX of Yakut and PyCyphal scripting significantly. There's also the outstanding problem of migrating the Python DSDL generator to Nunavut but it appears to be unaffected by this change (@coderkalyan was working on this for a while but right now the effort seems to be stagnating). |
If yakut could implicitly compile DSDL's then this is no longer an issue and So if I understand the concerns correctly, my proposal would be:
Driver autodetection or configuration during |
If we implemented OpenCyphal/pycyphal#153 then the need for Then we could have your I suggest we discuss |
I don't know if it's just me, but I find the yakut tool a bit inconvenient to use. It requires a lot of initial configuration compared to the old uavcan_gui tool. And this is especially hard for less tech-savvy field operators.
Initial confusion is that the first command given in the README is
yakut --path=/the/path compile path/to/my_namespace --output=destination/directory
. However, I could not understand why it needs 3 paths for compilation. As far as I understand only the arguments and the--output
paths are used, while--path
is ignored?Then README explains to setup environment variables so that default compilation output goes to user data directory. Wouldn't it be better to have this as default instead of current working directory? AFAIK, this is the most common use case.
Would it be possible to ship public regulated data types together with yakut? Or maybe add a command that would download and compile them for you?
Another convienient option would be to load custom DSDLs from user directory and compile them automatically, as was the case with uavcan_gui tool.
I can contribute some of these changes, but firstly wanted to hear some opinions about this.
The text was updated successfully, but these errors were encountered: