-
Notifications
You must be signed in to change notification settings - Fork 6
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
Simplify installation experience for Notation CLI #76
Comments
Update the milestone to rc-3 based on the discussion. |
Hello, I am interested in working on this issue. I was thinking of an installation script which will cover all Linux distros and macOS based on its architecture, which will download a compactible release from GitHub releases and setup it. And a browser based platform detection to switch to a prompt suggesting to download .exe instead or running the script. This will reduce the task of maintaining packages for all the different Linux distros. Similar to rustup[0] Thank You! |
@kokamkarsahil Developing a generic installation script to cover all Linux distros and macOS sounds good to me. I am thinking if we could provide a script and enable users to install Notation CLI with this command:
For macOS, having a Homebrew formula might be better. |
Thanks for the reply @FeynmanZhou!
We can also make script to auto detect By checking I have create a demo script to show that: Moreover we can also point it towards main domain and do user-agent[2] check to send the install script.
Script in actionUpdated to gif
Thank You! Update: Added reference |
@kokamkarsahil Thanks for providing the demo. I will test it on my machines. We will discuss and triage this issue in the next Notary community meeting. |
Sure, will join in to discuss about it. |
The scripts from servers are convenient to use as many vendors are doing so
However, there is a security concern on running scripts downloaded from the remote server without code review in the production environment as clients might be tricked to run arbitrary code without detection / attention. Here are some comments from the Docker script:
|
The |
Thanks for the reply! I will try my best to address all the issues.
The script won't need to be stored in a remote server, it can use git and same static web server used for hosting the website like Netlify. As for tricking clients, it wouldn't be concerns if all files and instructions are clear on the site.
Sure we can also run without sudo privileges, it's on my TODO like for e.g. We can store that binary in separate folder like
The notation script doesn't make use of package management software.
We can add customize parameters to it via extra arguments via
As notation is single binary it doesn't need extra dependenices to be installed like docker and doesn't mess with dependencies..
Sure, notation script does the same, but we can also specify different version via ENV variable.
Notation script can update version. But will not be its default behavior to avoid any breaking changes from updates.
I had thought if it to add in script itself and prompt user to confirm the steps. But as script does have any step to remove file, it won't add any value. But it can stout the steps it did on terminal.
Overall they have marked it unsafe because it does a lot of changes in system while the notation script just download a binary without deleting or adding anything else to the system. Moreover, some projects use it as their default installation method like k3: https://k3s.io/
It's also on my TODO as most users don't verify them the script can auto check it and fail on unmatched checksum. Sorry if I missed addressing any problem please let me know of it I will address it ASAP. I will also join the community meeting this week for further, more discussion. Thank you! |
Notation CLI only has binary for installation. This is convenient for a few Linux distros but it is cumbersome to install on Win, macOS, and other Linux distros. There are some existing requests as follows:
notaryproject/notation#204
notaryproject/notation#431
To simplify the installation experience, we need to consider providing a native installation package on each platform/OS so that users can install Notation CLI as simply as possible. Here are the popular installation methods for consideration:
macOS
Windows
Linux / Unix
Container image (e.g. docker run)
It relies on a container engine like Docker.
The text was updated successfully, but these errors were encountered: