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

Some Suggest Edition Changes #1857

Closed
Ryonez opened this issue Jun 21, 2019 · 11 comments
Closed

Some Suggest Edition Changes #1857

Ryonez opened this issue Jun 21, 2019 · 11 comments

Comments

@Ryonez
Copy link

Ryonez commented Jun 21, 2019

Okay, I believe chocolatey needs some work to bring it in line with actual package managers.

I have a package, I need it installed in a certain place. This package by default is installing to Program Files, but store user files under it's root dir. This is not ideal, even chocolatey doesn't install there for this reason.

Now, just wanting to install it, I followed the instructions here. It's an msi installer, no... wait, it installed to the default place again.

I don't have time to screw around with this, I check again, same result. Meanwhile, on that page:

Is there a better way? Absolutely, see ubiquitous install directory switch!

Ugh.
I'm not going to spend hours trying to do something a package manager should be managing. That is like a basic part of being a package manager. Even the person who made the initial request for the switch pointed this out (#258).
The fact this ended up in the pro/business thing is frankly a little disgusting and comes across as money gouging. It really does for something so basic.

Now don't get me wrong either. I'm not saying money shouldn't be earned. Here's some changes I'd make:

Open Source
Direct Installer (aka Package-less Install)
Wait, that's really a business feature??? Like, what? So I'm paying for you to download it then for me to run through the installer? It's current placement is frankly... well stupid in my opinion. Maybe there's a reason that makes sense?
Package Synchronizer - Automatic Sync
This feels pretty basic. Some apps auto update, sometime people forget and just update things. A package manager shouldn't be allowed to intentionally be out of sync. If it can correct it, it should.
Package Throttle
Again, this is pretty basic and shouldn't be behind a paywall. Some apps are large are could mess with a users network. But I wouldn't go as far as to say it's a standard. This is a preference to see this feature here.
Install Directory Override
As mentioned above, this is a basic thing for a package manager. We should be able to say where we want something installed, without throwing random commands until it works.
Package Downloader
Now the creation of packages makes sense that you charge for. However one variation I'd like to see is the ability to save the downloaded installers somewhere if we want to.
Kinda on the fence with that one. Would like to see the ability to save downloaded files somewhere, but the actual feature in place would be nice as well.

Pro (Personal)
Download CDN Cache
This is a perfect example of something to charge for. It's not necessary, but has the potential to speed up downloads or act as a fallback if the software's site is down. Great idea to make this a pro feature.
Runtime Malware/Virus Protection Another good one. While I'm not 100% why your one that you're meant to do on your end isn't enough, this is still a decent feature for those who want it.

I'm starting to realize how long this list is, so I'll stop here. The changes to the open source part is the import part, as the directly affects basic functionality.

Maybe look at the following options as well?

Open Source: Your basic package manager, with everything a package manager should be.
Pro: For advanced features that don't cost you anything to maintain them. This should be a single cost per user.
CDN+Support: A subscription for access to the cdn network and support. Makes sense this is a sub as it's an ongoing cost for you.
Architect: I'm not entirely sure what the target audience is, I'm defiantly not them >.<
Business (C4B): I think what you have here is perfectly fine.

I'm interest to see your response, maybe you can show how you came to the current layout.

@ferventcoder
Copy link
Member

Hi @Ryonez!
I see this is your first post on the issues list. So I'm going to spend some more time going through things here. We've chosen features for different editions of the product based on a business model that will allow the long term availability of service. All of those packages on the community repository and the infrastructure there? Not free at all for us to offer that to you. There are real costs there so keep that in mind as we talk through this. At the end of the day, it is your choice on whether you want to use Chocolatey - you are not required to. And if you choose that it is not for you, that is totally fine. Fair enough?

Let's start by working on terminology so we are using the same wording and it has similar meanings. The first is the word "package".

I think for the sake of argument we need to talk about Chocolatey's terminology of "packages" versus Programs and Features and software/installers. Chocolatey is a package manager that manages Chocolatey packages (nupkg files) - this puts it in line with true package management and has all of the features you would expect there. That is you put the runtime binaries into the package itself, maybe even zipping them up first, and dependencies and conflict resolution.

Now, folks on Windows have been working with Programs and Features and installers for years and you see that Chocolatey ALSO can manage that ecosystem. In fact, arguably that is one of its best features. That it manages all aspects of the Windows software ecosystem. Chocolatey itself does not manage Programs and Features directly, Chocolatey manages packages and installer packages manage installers (managing software in Programs and Features).

This distinction and understanding that relationship is quite important. Programs and Features is not package management, and it doesn't cover all aspects of Windows software. Thus the things that are there are not packages, they are software, they are installers, etc.

I have a package, I need it installed in a certain place.
Now, just wanting to install it, I followed the instructions here. It's an msi installer, no... wait, it installed to the default place again.

Chocolatey installs the package to a place, and the software based on the chocolatelyInstall.ps1 instructions, but typically that is the default location. It does depend on the underlying installer allowing for that to happen. As every piece of software can be a unique snowflake when it comes to Windows, can you identify the package and we can troubleshoot the issue?

I'm not going to spend hours trying to do something a package manager should be managing.

Spending time / DIY is in the spirit of FLOSS. When you get a free service or tool, it is expected that you would spend more time with it. We can disagree on this aspect and that's okay.

Package Synchronizer

All the aspects of package synchronizer allow Chocolatey to step up from strict package management and to do some system and software state management.

  • A package manager shouldn't be allowed to intentionally be out of sync.

The package is not out of sync with itself, it is out of sync with this outside competing concern that is the underlying software that the package has in Programs and Features. This concept doesn't even exist on other platforms. Having something that can resolve that isn't package management, it's a step above that.

Direct Installer (aka Package-less Install)

I wanted to cover this as I think this feature may be misunderstood. This is something that allows you to call choco install setup.exe and it will generate the Chocolatey package on the fly and install that. It uses Package Builder, thus it won't be in open source or Pro. You get the benefit of not having to build the Chocolatey package around the installer first, and that's really it.

  • So I'm paying for you to download it then for me to run through the installer?

This tone is a bit wrong. This community is one that is welcoming and respectful. I'd be careful with tone and how it comes across with any responses you may provide here.

All the rest of the items

So I think it's probably a good place to point out that we've set the features in the way we think is best and we spend a LONG time thinking about where features go and have talked to thousands of users and hundreds of organizations - where the features are and when/if they roll down to open source is not up for discussion. Plus our pricing is fair and the Pro edition supports the community - the cost is about one meal per month. But it's not free - sometimes there is an expectation that free should do everything a person needs but it's totally fine to charge for the things they don't necessarily need.

I'm unsure of what you will choose based on my response, but just know should you continue to use Chocolatey, where the features go and how that supports having a viable business is in the purview of Chocolatey Software.

Thank you, I appreciate you taking the time to read and understand this. It did turn out to be quite a longer reply.

@Ryonez
Copy link
Author

Ryonez commented Jul 1, 2019

Hey there!

Fist off, let me say thank you for taking the time to go through my post and answer it critically. I really appreciate it.

So I do understand I'm on the standpoint of someone seeking some more features, for free basically. Defiantly no dispute on that, but I still try to keep in mind that there is work being done here. Hence I was looking more at features that I didn't see much benefit at actually being behind a paywall/subscription.

But at the same time, please don't take me as someone who just wants everything for free. I'm just keenly aware how much money I have and the number of overall services that prefer subscription models can get taxing if I'm not careful. That does drive my interest in free and one payment solutions.

Let me have a look at your response.

The explanation off the difference between Chocolatey and Windows Programs and Features was very useful. I had a decent idea of what Windows does, but my understanding of Chocolatey was lacking.

Chocolatey installs the package to a place, and the software based on the chocolatelyInstall.ps1 instructions, but typically that is the default location. It does depend on the underlying installer allowing for that to happen. As every piece of software can be a unique snowflake when it comes to Windows, can you identify the package and we can troubleshoot the issue?

Sure, for this case it was the hydrus software. The GitHub has a msi available for it, so I was giving it that switch to set the location.

Spending time / DIY is in the spirit of FLOSS. When you get a free service or tool, it is expected that you would spend more time with it. We can disagree on this aspect and that's okay.

The side I disagree on is that there is a feature to help cut that time down, but it requires a subscription. I suspect if it wasn't there there'd probably be a pr from the community to add it, but with it actually there, it doesn't need to be added.
I'm also currently unaware if even after taking the time to manually set the location if Chocolatey will remember this for updates.

I'm not sure if this also counts as fully FLOSS software. I am ignorant with the terminologies a bit, but this software has different levels. The things you have to pay for aren't FLOSS are they? And if it isn't, but your free offering is separated and offered under a FLOSS license, would you accept a pr adding this normally paid for feature into the FLOSS version?

I don't disagree though that users should spend time with the software they use. The problem is, why use Chocolatey if finding the needed switch can potentially take hours of messing around just to have something install to the correct place, when a user could take 5 mins to just install it manually. Sure, they'd have to manually check for updates if the software doesn't, but at that point the convenience of the package manager is almost rendered useless because it takes that much longer to use. Chocolatey is different I think with it needing to handle different types of installers, but having the user needing to play with it until it works is a disadvantage.

All the aspects of package synchronizer allow Chocolatey to step up from strict package management and to do some system and software state management.

I don't fully understand, but your explanation of the difference between what chocolatey does and what the Windows Programs and Features does help me see there is a difference there. Thank you.

Direct Installer (aka Package-less Install)

I wanted to cover this as I think this feature may be misunderstood. This is something that allows you to call choco install setup.exe and it will generate the Chocolatey package on the fly and install that. It uses Package Builder, thus it won't be in open source or Pro. You get the benefit of not having to build the Chocolatey package around the installer first, and that's really it.

Ahh gotcha, That makes more sense.

So I'm paying for you to download it then for me to run through the installer?

This tone is a bit wrong. This community is one that is welcoming and respectful. I'd be careful with tone and how it comes across with any responses you may provide here.

I feel the tone there is fair based on the understanding of the feature. Is it different from what I said? Also bear in mind it's not directed at a person. I find the idea itself really stupid. It's made worse by the fact it's a business feature. Out of all the features I'd peg this one as the one that makes the least amount of sense to me. The description even "Install and upgrade directly from exe/msi files!", like, that's just downloading the files and you running it as far as I can tell.
If I was swearing, I can understand it upsetting you. But I feel that I'm within my rights to call it stupid. It's just what it is to me, and why I asked if there's a way for it to make sense. Please do not take it personally.

So I think it's probably a good place to point out that we've set the features in the way we think is best and we spend a LONG time thinking about where features go and have talked to thousands of users and hundreds of organizations - where the features are and when/if they roll down to open source is not up for discussion.

I'm a little sad that you aren't interested in continuing those discussions. The world is dynamic and things change. That's not to say you should do everything that your community demands, but it does seem like you're 100% closed of from further discussions on it.

Plus our pricing is fair and the Pro edition supports the community - the cost is about one meal per month. But it's not free - sometimes there is an expectation that free should do everything a person needs but it's totally fine to charge for the things they don't necessarily need.

Completely agree. Nothing has to be free, and I am thankful for what you guys have made available.

I'm unsure of what you will choose based on my response, but just know should you continue to use Chocolatey, where the features go and how that supports having a viable business is in the purview of Chocolatey Software.

Fair enough. Atm, I'm thinking I probably won't use it much. Part of that is the current way charges are made.

It's Annual. While it could be worked to the cost of a meal a month, the charge is made for those 12 meals straight away. I'm unable to make such a large sum payment. I'm also unsure if pro is what would make me really come into using the software a lot. My preferred next step would be to try it for a month, however I can't just buy a month's time. That's going to just straight up stop me from trying pro out.

Thank you, I appreciate you taking the time to read and understand this. It did turn out to be quite a longer reply.

You're all good, I'm just extremely pleased you didn't toss this under the rug.

@ferventcoder
Copy link
Member

Sure, for this case it was the hydrus software. The GitHub has a msi available for it, so I was giving it that switch to set the location.

Take a look at Hydrus - https://chocolatey.org/packages/hydrus-network#files. It doesn't use an MSI, it uses an EXE that looks like InnoSetup:

silentArgs = '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /DIR="C:\Program Files\Hydrus Network"'

The package passes a location to the installer, so you'll need to completely override the arguments being passed through and provide your own:

choco install hydrus-network --install-arguments="'/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /DIR=C:\hydrus'" --override-arguments

@ferventcoder
Copy link
Member

I'm also currently unaware if even after taking the time to manually set the location if Chocolatey will remember this for updates.

Turn on useRememberedArgumentsForUpgrades - choco feature enable -n useRememberedArgumentsForUpgrades

https://chocolatey.org/docs/chocolatey-configuration#general-1

@ferventcoder
Copy link
Member

I'm not sure if this also counts as fully FLOSS software. I am ignorant with the terminologies a bit, but this software has different levels. The things you have to pay for aren't FLOSS are they?

It is open source, the technical term for a model that has open source and then commercial bits that are not open sourced is "open core."

And if it isn't, but your free offering is separated and offered under a FLOSS license, would you accept a pr adding this normally paid for feature into the FLOSS version?

Being open source at any rate doesn't mean that one is required to accept every PR. Given that those commercial features have some significant work behind them and that they are offered on the commercial side I can honestly say it's unlikely we'd have open source compete with the commercial features.

@ferventcoder
Copy link
Member

The problem is, why use Chocolatey if finding the needed switch can potentially take hours of messing around just to have something install to the correct place, when a user could take 5 mins to just install it manually.

The correct place should be the default option for the package. If you see ruby packages, they go to the root because that is where they are supposed to be installed, not into program files. If this package is incorrect on where it installs, then that is a package issue.

The idea of needing to override that is when folks want to go to a custom location, thus the need to configure things (e.g. "I install everything to my D drive")

@ferventcoder
Copy link
Member

It's Annual.

We've made some progress investigating a monthly aspect. Something we could offer in the future if we get some things in order.

I'm a little sad that you aren't interested in continuing those discussions. The world is dynamic and things change. That's not to say you should do everything that your community demands, but it does seem like you're 100% closed of from further discussions on it.

We don't always have the right answers on things, and we do turn to folks for help on certain aspects. However, and this is again being transparent, we are likely to engage with folks who are invested in seeing the platform stick around long term. Folks that are newer have perspective and that perspective can be good, but it can be context dependent.

@Ryonez
Copy link
Author

Ryonez commented Jul 1, 2019

Damn, thank you very much for the help there. I'll give it another go and enable the useRememberedArgumentsForUpgrades

I'll save the url as well, that would negate the having to test things because I don't know what the installer is being used.

It's Annual.

We've made some progress investigating a monthly aspect. Something we could offer in the future if we get some things in order.

I shall keep an eye out in case you end up making such an offering.

However, and this is again being transparent, we are likely to engage with folks who are invested in seeing the platform stick around long term. Folks that are newer have perspective and that perspective can be good, but it can be context dependent.

Yup, I'm becoming more aware on just how deep my lack of understanding with Chocolatey runs. I thank you for your patience, and would like to ask if you have any good guides that you would recommend me looking at? I'd like to give this an honest go, and not just walk away because I missed something that should have been obvious to me.

@ferventcoder
Copy link
Member

if you have any good guides that you would recommend me looking at?

We are also working on improving the documentation over the next few months.

@Ryonez
Copy link
Author

Ryonez commented Jul 2, 2019

Cheers for that.

I'll let you go and spend some time going through them all. I'm sure you have more important things you'd like to get back to.

Once again, thank you!

@gep13
Copy link
Member

gep13 commented Jul 2, 2019

@Ryonez one other resource that you might find useful for asking questions is the chat room here:

https://gitter.im/chocolatey/choco

There is normally always someone in there that can answer any usage questions that you might have.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants