Skip to content
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

Feature gift > Make windows install easier #242

Closed
adriens opened this issue Nov 28, 2020 · 15 comments
Closed

Feature gift > Make windows install easier #242

adriens opened this issue Nov 28, 2020 · 15 comments
Labels
carvel triage This issue has not yet been triaged for relevance discussion This issue is not a bug or feature and a conversation is needed to find an appropriate resolution

Comments

@adriens
Copy link
Contributor

adriens commented Nov 28, 2020

Context

Actually, on windows, the install process is not that easy as it requires some manual actions. It would be very convenient to be able to install ytt within a single command line, even on Windows.

Therefore I created a chocolatey package which is still under moderation process, but it's usable.

Installation guidelines

To install Carvel ytt, run the following command from the command line or from PowerShell with Admin privileges

choco install ytt --version=0.30.0
ytt --help

You're done.

NB

As long as the chocolatey moderation process has not ended, the version has to be provided. When the moderation process will be ok, the install process will be even easier:

choco install ytt
ytt --help

... then to upgrade:

choco upgrade ytt 

Feedbacks welcome

Please feel free to provide me any feedback 👍 , hopefully you'll like this modest 🎁

meme for 😆

image

@adriens adriens changed the title Make windows install easier 🎁 Make windows install easier Nov 28, 2020
@adriens adriens changed the title Make windows install easier Feature gift > Make windows install easier Nov 28, 2020
@danielhelfand
Copy link
Contributor

Thanks @adriens. We greatly appreciate the ytt Chocolatey package.

Something we discussed in our last community meeting was establishing more definitions around our release processes for Carvel tools. One thing that came up is what Windows package manager (e.g. Chocolatey, Scoop, or winget) to use to support all Carvel tools. Potentially even defining a single repository for all of them.

We would greatly appreciate any suggestions you have for Windows users in terms of installing Carvel tools.

@danielhelfand
Copy link
Contributor

One thing I am noticing though is that choco uninstall ytt is not working as expected:

ERROR: The term '?$tools' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
ytt uninstall not successful.
Error while running 'C:\ProgramData\chocolatey\lib\ytt\tools\chocolateyUninstall.ps1'.
 See log for details.
ytt not uninstalled. An error occurred during uninstall:
 ytt uninstall not successful.

Chocolatey uninstalled 0/1 packages. 1 packages failed.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

Failures
 - ytt (exited -1) - Error while running 'C:\ProgramData\chocolatey\lib\ytt\tools\chocolateyUninstall.ps1'.
 See log for details.

@adriens
Copy link
Contributor Author

adriens commented Nov 30, 2020

Hi @danielhelfand , thanks a lot for your feedback, I'll try to answer both questions:

  • Carvel Tools on Windows
  • choco uninstall process

Carvel tools on windows

Yes, it totally makes sense, in fact I also asked my self I should not rather provide a Carvel tools package that embeds all cli. S I started to implement choco packages for each of them (a global and meta version should be created hence) :

  • kapp, see choco install kapp --version=0.34.0
  • vendir see choco install vendir --version=0.14.0
  • kbld, see choco install kbld --version=0.27.0
  • imgpkg, see choco install imgpkg --version=0.2.0
  • kapp-controller
  • other tools still in bêta

They all are in the Ready to revienw status mode, awaiting for official release step.

From my point of view, it would totally make sense to package all them within a single installer as :

  • they all target the same topic
  • are very little (in terme of disk space), hence not impacting the final user

In fact, I wanted to respect your philosophy that was : one repo, one tool. I could prepare an automated build that would come and grab binaries on each repo to prepare the Chocolatey build.

In could be even easier for me if you :

  • were preparing for me a zip file, somewhere as a release asset, that I would come and grab to build. I would even force the hash to be checked to put more security
  • for windows, were renaming tools with their shot name, ie: ytt-windows-amd64.exe to ytt (no symbolic links in Windows)

Just le me know what your preferences are and I'll integrate with them 😸

Uninstall failing

Yes, indeed, I'm aware of that, I discovered it recently. I have patched it but as long as the current version is in the Ready status, I cannot push a new version (I call 0.30.0.0). The last digit is related to installer related issue on the same version of a package.... 'cause the installer itself can have bugs/evolutions too 😆
The moderation process takes a long these days, we have to be patient.

I have also discovered an another issue see adriens/chocolatey-ytt#4

I'll work on it and apply the patch on all others.

Conclusion

Please let me know about what you think about the global "Carvel Tools" zip release as a Github Asset 🙏

@adriens
Copy link
Contributor Author

adriens commented Nov 30, 2020

Uninstall process totally fixed see adriens/chocolatey-ytt#4

@adriens
Copy link
Contributor Author

adriens commented Nov 30, 2020

Here is the current status of chocolatey package for ytt :

  • Relased of reject of 0.30.0 waiting since November 14th
  • Pushing 0.30.0.0 to choco central
  • Being officially moderated by choco central
  • Enjoy the totally operational package

@danielhelfand danielhelfand added the discussion This issue is not a bug or feature and a conversation is needed to find an appropriate resolution label Nov 30, 2020
@danielhelfand
Copy link
Contributor

Thanks for the detailed write up, @adriens. We'll be sure to consider Chocolatey packages as part of the broader discussion of our release process. And thanks for putting these initial packages together.

@adriens
Copy link
Contributor Author

adriens commented Dec 12, 2020

Chocolatey Version

Hi guys, ytt now is officially released on Choco central !

Now, things are as easy as :

  • Install : choco install ytt
  • Upgrade : choco upgrade ytt
  • Uninstall : choco uninstall ytt

Hopefully you'll enjoy, other good news are coming 🎆

adriens added a commit to adriens/ytt that referenced this issue Dec 12, 2020
adriens added a commit to adriens/ytt that referenced this issue Dec 12, 2020
@DennisDenuto
Copy link
Contributor

@adriens Thanks for the gift. We (@pivotal-dean and I) like the idea of having a single chocolatey repo to install all the tools.

In could be even easier for me if you :
were preparing for me a zip file, somewhere as a release asset, that I would come and grab to build. I would even force the > hash to be checked to put more security
for windows, were renaming tools with their shot name, ie: ytt-windows-amd64.exe to ytt (no symbolic links in Windows)
Just le me know what your preferences are and I'll integrate with them

We are currently iterating on defining a suitable release process for the team. We are hesitant in introducing an additional step to distribute windows binaries differently from the other OS's.

What about instead of us having to provide a zip file with all the binaries inside it, instead a 'helper script' uses a 'version' file containing a map of the binary name -> version. This file could be used to programmatically download the necessary binaries.

for e.g.
version file contents:

ytt: SHA256, v0.31.0
kapp: SHA256, vx.y.z
...

would construct the following url for ytt:
https://github.com/vmware-tanzu/carvel-ytt/releases/download/v0.31.0/ytt-windows-amd64.exe
You could also then verify the downloaded contents with the sha in the version file.

@adriens
Copy link
Contributor Author

adriens commented Jan 12, 2021

Hi,

What about instead of us having to provide a zip file with all the binaries inside it, instead a 'helper script' uses a 'version' file containing a map of the binary name -> version. This file could be used to programmatically download the necessary binaries.

yes, totally agree, it looks much more elegant.

For now I'm respecting package philosophy : one package for one software. I appreciate the fact when the packager makes no constraint on the main software developer. In addition to this, I can easily automate the build and release process without having to ask you to modifiy your release process 👍

I will put effort on this according to the frequency of your releases 😸 .

@adriens
Copy link
Contributor Author

adriens commented Jan 12, 2021

Btw, I've submitted the v0.31.0 which is under moderation process : adriens/chocolatey-ytt#5

@cari-lynn
Copy link
Contributor

The work to include these Chocolatey packages is being discussed and tracked in this issue. Closing this one.

@adriens
Copy link
Contributor Author

adriens commented Aug 24, 2021

I'll implement the CI for kapp this week-end.

@github-actions github-actions bot added the carvel triage This issue has not yet been triaged for relevance label Aug 24, 2021
@DennisDenuto
Copy link
Contributor

Thanks @adriens

I'll implement the CI for kapp this week-end.

I am taking this to mean you are going to do something similar for https://github.com/adriens/chocolatey-kapp that you did for https://github.com/adriens/chocolatey-imgpkg (using appveyor)?

As previously discussed with you, @cari-lynn and I (with your help) are planning on combining the carvel tools into a single repo to contain all the chocolatey files (https://github.com/vmware-tanzu/carvel/issues/220). So, we think we might have to re-purpose some of this automation work in this new mono-repo (or potentially re-implement this automation using github actions)

Let's continue this discussion in this issue https://github.com/vmware-tanzu/carvel/issues/220

@aaronshurley aaronshurley removed the carvel triage This issue has not yet been triaged for relevance label Nov 30, 2021
@mechanicalbot
Copy link

I created PR ScoopInstaller/Main#4138 to another package manager for windows scoop. Hopefully there would be more options to install on windows after they merge it 🙂

@github-actions github-actions bot added the carvel triage This issue has not yet been triaged for relevance label Nov 19, 2022
@mloskot
Copy link

mloskot commented May 8, 2023

@danielhelfand

One thing that came up is what Windows package manager (e.g. Chocolatey, Scoop, or winget) to use to support all Carvel tools.

FYI, I've packed ytt for winget, so users can now do winget install Carvel.ytt, see, #829

I've also created PR with Carvel docs updated, see carvel-dev/carvel#629

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
carvel triage This issue has not yet been triaged for relevance discussion This issue is not a bug or feature and a conversation is needed to find an appropriate resolution
Projects
None yet
Development

No branches or pull requests

7 participants