chocolatey-community / chocolatey-oneget

OneGet Provider for Chocolatey
Apache License 2.0
61 stars 18 forks source link

When will the Chocolatey provider be available for public? #5

Open jianyunt opened 8 years ago

jianyunt commented 8 years ago

Hi Rob, I am Jen working on PackageManagement (aka OneGet). Recently I downloaded your Chocolatey provider for OneGet. I found it seems still under development. Would it be possible to share your plan with us when the provider will be available for public? Thanks

ferventcoder commented 8 years ago

@jianyunt Hello! Yes, I can share the details of when we hope to have a provider available - http://us8.campaign-archive2.com/?u=86a6d80146a0da7f2223712e4&id=0165685e1f

ferventcoder commented 8 years ago

If you want to get into more specifics, my email is my github user name at gmail dot com.

CMCDragonkai commented 8 years ago

Is it possible to use this in its current state? Is there installing instructions?

ferventcoder commented 8 years ago

Great question @CMCDragonkai - I believe the instructions are included in the repo. I will need to verify fully on that in the coming weeks though.

CMCDragonkai commented 8 years ago

It's not on the README is it?

ferventcoder commented 8 years ago

Probably not - see https://github.com/chocolatey/chocolatey-oneget/blob/master/install-provider.ps1

CMCDragonkai commented 8 years ago

Is that file for installing this provider?

favorini commented 7 years ago

Any updated ETA on this provider?

jianyunt commented 7 years ago

@favorini for the time being, please try ChocolateyGet from PowerShellGet. For chocolatey-oneget provider, it depends on ferventcoder (Rob)'s schedule.

ferventcoder commented 7 years ago

Notes that we tend to mention to everyone

The current Package Management Chocolatey provider is an unfinished prototype that Microsoft created based on 3 year old Chocolatey features (and it didn't even capture all of the features available at the time - multiple sources including private, extensions, etc). We don't recommend using it until the official version is released. We made leaps and bounds features since then and fixed many security issues. If you are curious on how far back it may be, please start at 0.9.8.23 and move up from there.

Note: There could be a newer version that does have some more features in it, but it's possible this is false as it would work with extensions.

Until it is ready, please use https://github.com/jianyunt/ChocolateyGet.

Subscribe to this thread for updates. HTH

ETA Update (26 Jan 2017)

We (Chocolatey Software) really want to finish this provider. However, as part of our prioritization schedule, we work with customers to prioritize what we work on based on their needs. Being completely transparent, this has unfortunately not been a priority for them. This is why the provider has not yet been completed from Chocolatey Software's end.

We've asked for support from the community in finishing out this provider and a few folks have stepped up to help, which has been wonderful. However, I'm not sure we equipped them well enough to get things to 100%.

I understand the importance of this integration to the community. And now we are in a much better position to finish this with me moving forward in a full time role with Chocolatey. See https://twitter.com/ferventcoder/status/824277703591424001

Megasware128 commented 7 years ago

Congrats 😄

philippgille commented 7 years ago

Any updates regarding the progress?

We've asked for support from the community in finishing out this provider and a few folks have stepped up to help, which has been wonderful. However, I'm not sure we equipped them well enough to get things to 100%.

Where is the work being coordinated? On Gitter? Are there any resources on how people can help out?

ferventcoder commented 7 years ago

@philippgille sorry I missed this. First it was in having folks state they would love to help. Second it was in getting the API into a state that was best for oneget. Then getting the provider finished off. We believe that most everything necessary for oneget in the Chocolatey API is available (or will be available with 0.10.6), although while working on this I'm sure we will discover more are missing.

If you are interested in helping, we'd love to provide guidance.

Gregoorio commented 7 years ago

I've created my own repository and registered it as a Chocolatey provider register-packagesource -name ..... -location .... -providername Chocolatey -trusted -verbose (still I see ChocolateyPrototype.exe). The provider 'chocolatey v2.8.5.130' is not installed. chocolatey may be manually downloaded from https://oneget.org/ChocolateyPrototype-2.8.5.130.exe and installed.

I have packages opera, firefox, googlechrome, etc in it. I would like to use only the native powershell solution.

Install-package -source .... -name ..... (non install package from internet).

How can I verify if a package was installed correctly on several stations? Even if the package is faulty it is logged to C: \ Chocolate \ lib path The get-package command is displayed as installed correctly.

ferventcoder commented 7 years ago

@Gregoorio the prototype is not supported. So your best bet is to use ChocolateyGet for now until the official, supported provider is available.

Gregoorio commented 7 years ago

@ferventcoder. Thank you for your answer.

If I want to use chocolateyGet, do I need to have internet connection? I understand that this is a chocolate wrapper. It only works as there is internet (not working on local network).

I've added ChocolateyGet with: Install-PackageProvider ChocolateyGet -verbose

I've used Get-PackageProvider

Name Version DynamicOptions


Chocolatey 2.8.5.130 SkipDependencies, ContinueOnFailure, ExcludeVersion, ForceX86, PackageSave ... ChocolateyGet 1.0.0.1 AdditionalArguments Msi 3.0.0.0 AdditionalArguments Msu 3.0.0.0 NuGet 2.8.5.207 Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag ... PowerShellGet 1.0.0.1 PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, ... Programs 3.0.0.0 IncludeWindowsInstaller

Is there any way to register ChoclateyGet as a command - register-packagesource? As it tries to register it receives a following statement:

Register-PackageSource -name TEST -location http: //192.x.x/HomeRepository.../nuget -providername chocolateyget -trusted -Verbose VERBOSE: Performing the operation "Register Package Source." He target "Package Source 'TEST' (Http: //192.x.x.x/HomeRepository.../nuget) in provider 'chocolateyget'. "

I understand that I can't register my own local repository with the ChocolateyGet provider?

ferventcoder commented 7 years ago

Chocolatey doesn't require internet access, so neither would ChocolateyGet. As it is a bridge, you would use choco or ChocolateyGUI to configure your sources (including remove the default community repository).

My understanding of OneGet - you need an internet connection for that initial bootstrap (I could be wrong) of the provider (ChocolateyPrototype and/or ChocolateyGet).

Chocolatey itself however does not require any internet access to use or install. See https://chocolatey.org/install#completely-offline-install

ferventcoder commented 7 years ago

I'm not sure if you were under the assumption that Chocolatey requires internet access, but it never has. For the last six years (ever since it came out) it has supported adding and removing sources - it just ships with the default community package repository already configured. Usually the first thing organizations configure to turn off.

Gregoorio commented 7 years ago

Yes, you are right, to register Chocoaltey and ChocolateyGet it requires connection to the internet or to copy the appropriate files to C: \ Program Files \ PackageManagement \ ProviderAssemblies.

As you have written, ChocoalteyPrototype is not supported. Can I register my own local feed repository with a ChocolateyGet Provider?

When I register my local repository with ChocolateyGet provider registeration doesn't work However when I register my local repository with Chocolatey provider it works.

Register-PackageSource -name TEST -location http://192.x.x.x/HomeRepository..../nuget -providernam e Chocolatey -trusted -Verbose VERBOSE: Performing the operation "Register Package Source." on target "Package Source 'TEST' (http://192.x.x.x/HomeRepository.../nuget) in provider 'Chocolatey'.". VERBOSE: Storing package source TEST VERBOSE: Saving Chocolatey Config C:\Chocolatey\chocolateyinstall\Chocolatey.config VERBOSE: CreateFolder -- Already Exists C:\Chocolatey\chocolateyinstall

Name ProviderName IsTrusted Location


TEST Chocolatey True http://192.x.x.x/HomeRepository.../nuget

ferventcoder commented 7 years ago

With ChocolateyGet, you would call choco source to configure sources (repositories) directly with Chocolatey and then ChocolateyGet would use those sources. Sorry if it was not clear in my earlier response.

Gregoorio commented 7 years ago

ferventcoder. You're right, you can add your own repository through choco source add -n = ... C: \ Users \ Administrator> choco source Chocolatey v0.10.5 Bob - http: //192.x.x.x/HomeRepository..../nuget | Priority 0 | Bypass Proxy - False | Self-Service - False.

However, as I said before, I would like to use powershell. As you noticed earlier, I use powershell's typical commands.

Is it possible to register your own repository via powershell not choco? I mean the register-packagesource ..... command with the Chocolatey provider (GET).

ferventcoder commented 7 years ago

I think we've sufficiently established that you can not use register-packagesource. If you want that to work, wait for the official provider. You can also ask the folks who provided ChocolateyGet if they can add the functionality. Until that time, you should be set based on the methods prescribed above. Thanks

Gregoorio commented 7 years ago

Ok, Thank you for your time.

philippgille commented 7 years ago

If you are interested in helping, we'd love to provide guidance.

@ferventcoder: I am interested, but I don't have much spare time, so depending on how complicated it is, it might be too much effort for you to provide guidance to me in comparison to what I can accomplish in the upcoming months.

Maybe add a comment here with a high-level abstract description of the task and then break the whole thing down into little tasks and describe them, so others that stumble upon this ticket can quickly see what's to do and can join in helping.

Geogboe commented 7 years ago

Maybe add a comment here with a high-level abstract description of the task and then break the whole thing down into little tasks and describe them, so others that stumble upon this ticket can quickly see what's to do and can join in helping.

@philippgille This would be great! I've actually forked the repo and am trying to go through it but having difficulty determining where to start.

brettjacobson commented 7 years ago

Is this package provider under active development?

ferventcoder commented 7 years ago

There are some known routes to finishing this provider (not mutually exclusive):

More details in https://github.com/chocolatey/chocolatey-oneget/issues/5#issuecomment-275404099 above

tstager commented 7 years ago

Has there been any progress on the official oneget provider?

jirkapok commented 6 years ago

I volunteer to work on the provider. Since i started directly with powershell native provider it is developed in separate branch: https://github.com/jirkapok/chocolatey-oneget/tree/NativeProvider

jianyunt commented 6 years ago

Great! Thank you @jirkapok !

Gregoorio commented 6 years ago

@jirkapok. It's great that the work is still underway to solve the project. I would like to ask, if there is any possibility to develop the record of your own repository in the offline form using the command "register-packagesource ....."

So far, in our project we have been using the prototype solution Chocolatey in offline mode (internet is not required).

We write our own packages for now and it works. The problem occurs with their uninstalling and error handling.

jirkapok commented 6 years ago

I am not there yet, but i am expecting local repo for offline install as valid use case, because it is supported by both PackageManagement and Chocolatey.

Gregoorio commented 5 years ago

Dear JirkaPok

I follow the progress of the native provider and I have to say that it looks promising (https://github.com/jirkapok/chocolatey-oneget/tree/NativeProvider). I have tested this solution and I see that it works well.

However, after installing the Chocoaltey-OneGet provider and registering (register-packagesource ....http://win...) its own repository in the active powershell session, it looks like this:

PS C:> Get-PackageSource

Name ProviderName IsTrusted Location


PSGallery PowerShellGet False https://www.powershellgallery.com/api/v2 chocolatey Chocolatey-On... False https://chocolatey.org/api/v2/ REPO Chocolatey-On... False http://win...:8080/nuget

When the powershell session is closed and restarted. Checking the active repositories effect as below:

PS C:\Windows\system32> Get-PackageSource

Name ProviderName IsTrusted Location


nuget.org NuGet False https://api.nuget.org/v3/index.json PSGallery PowerShellGet False https://www.powershellgallery.com/api/v2 Chocolatey-OneGet-OutputRepos... PowerShellGet True C:\gg\chocolatey-oneget-NativeProvider\chocolatey-onege...

I would like to ask, is this normal? or is it a beta native provider problem? My newly registered repository disappears. After re-importing the Chocolatey-OneGet module, the repository reappears. (import-module Chocolatey-OneGet)

jirkapok commented 5 years ago

Thanks for feedback, Yes, it looks like some testing behavior is mixed with the provider implementation. "Chocolatey-OneGet-OutputRepository" is created for testing purpose of the module it self. The reimport is required, until you put it into your profile to be loaded automatically (powershell behavior). The reappearing repository means that data were saved correctly. Plese when communicating the development, contact me directly using Gitter or create new issue (because it is not directly related to this thread).

ethanbergstrom commented 4 years ago

To provide an update in this space, I've forked ChocolateyGet with full support for registering/installing from both offline and online private repos, DSC support, upgrading packages, and a few other odds and ends.

The changes are currently pending a pull request back into the main ChocolateyGet project, but have also been made available in the meantime as a separate module called Chocolatier in PSGallery.

Using this today in several live environments against private repos (Artifactory) with PowerShell DSC, and pretty happy with the results.

PS C:\Users\ethan> choco source
Chocolatey v0.10.15
chocolatey - https://chocolatey.org/api/v2/ | Priority 0|Bypass Proxy - False|Self-Service - False|Admin Only - False.

S C:\Users\ethan> Register-PackageSource -ProviderName chocolatier -Name test -Location C:\Users\ethan\Desktop\

Name                             ProviderName     IsTrusted  Location
----                             ------------     ---------  --------
test                             Chocolatier      False      C:\Users\ethan\Desktop

PS C:\Users\ethan> Get-PackageSource -ProviderName chocolatier

Name                             ProviderName     IsTrusted  Location
----                             ------------     ---------  --------
chocolatey                       Chocolatier      True       https://chocolatey.org/api/v2/
test                             Chocolatier      True       C:\Users\ethan\Desktop\

PS C:\Users\ethan> choco source
Chocolatey v0.10.15
chocolatey - https://chocolatey.org/api/v2/ | Priority 0|Bypass Proxy - False|Self-Service - False|Admin Only - False.
test - C:\Users\ethan\Desktop\ | Priority 0|Bypass Proxy - False|Self-Service - False|Admin Only - False.

PS C:\Users\ethan> Unregister-PackageSource chocolatey -ProviderName chocolatier

PS C:\Users\ethan> Get-PackageSource -ProviderName chocolatier

Name                             ProviderName     IsTrusted  Location
----                             ------------     ---------  --------
test                             Chocolatier      True       C:\Users\ethan\Desktop\

PS C:\Users\ethan> choco source
Chocolatey v0.10.15
test - C:\Users\ethan\Desktop\ | Priority 0|Bypass Proxy - False|Self-Service - False|Admin Only - False.

PS C:\Users\ethan> ls Desktop

    Directory: C:\Users\ethan\Desktop

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          2/9/2020  12:07 PM        2610007 7zip.install.19.0.nupkg
-a----          2/9/2020  12:10 PM          14374 chocolatey-core.extension.1.3.5.1.nupkg

PS C:\Users\ethan> Find-Package 7zip.install -ProviderName chocolatier -Source test

Name                           Version          Source           Summary
----                           -------          ------           -------
7zip.install                   19.0             test

PS C:\Users\ethan> Find-Package 7zip.install -ProviderName chocolatier -Source test | Install-Package -Force

Name                           Version          Source           Summary
----                           -------          ------           -------
7zip.install                   19.0             test
Gregoorio commented 4 years ago

Dear Ethan,

I've tested the new Chocolatier module. It works well with my own repository in a separate environment without an internet connection. Earlier, I had some problems registering my own repository in a separate environment, but now everything works fine. I use powershell commands, I tested the Choco commands and sometimes I get a messages about buying the full version,. I don't receive any advertisement using the powershell command I didn't saw any information about this.

I would like to ask:

Can I use the (accept license) parameter using the powershell command? Every time I try to use the install-package/uninstall-package command, I receive a license request (see below) I used my own repository without internet.

e.g: PS C: \ Windows \ system32> install-package -name googlechrome -source OwnRepo -Verbose

VERBOSE: Using the "Chocolatier" provider to search for packages. VERBOSE: Using the following source names: "OwnRepo". VERBOSE: Source selected: OwnRepo VERBOSE: Performing the "Install Package" operation on the target "Googlechrome" version "80 .0.3987.87" with "OwnRepo". ".

Are you sure you want to perform this action? Installing the "googlechrome" package. By installing, you accept package licenses. The package may require running "chocolateyInstall.ps1". [T] Yes [N] No [S] Suspend [?] Help (default "T"): test

In addition. Can I view all packages from the repository without entering a name? (via powershell) no choco command (choco list ...) Currently I have seen that it works only (find-package -name opera -source OwnRepo). Is it possible that the command will work in the future (find-package -source OwnRepo) - display a list of all packages in your own repository

ethanbergstrom commented 4 years ago

Hey @Gregoorio

If you pass in the -Force parameter to Install-Package, it should bypass the license agreement prompt:

For example:

Install-Package -Name googlechrome -Source OwnRepo -Verbose -Force

I don't currently have the -AcceptLicense parameter implemented, but could look at adding that. Please open an issue on the project page and I can take a look at what that would require.

Similiarly, regarding the ability to pull back all packages in a repository, that's not something that's implemented today, but I can look at adding. Please open an issue and we can look further.

Gregoorio commented 4 years ago

@Ethan,

Thanks for the information, Probably I will open the issue It would be ok if the same functionality as for the chocolatey provider worked in use the powershell command (install-package/uninstall-package etc)

Did you use the powershell command uninstall-package? It probably doesn't work all the way (Uninstall-Package -Name googlechrome) (choco uninstall googlechrome - working correctly).

Gregoorio commented 4 years ago

Hi @Ethan,

In the issue of uninstall packages. I saw that the command uninstall-package via powershell doesn't work correctly. Can you look at this the uninstall function using powershell? When I use the commnad (uninstall-package -name xxx -Verbose), nothing happens. For uninstallation, I need to use the following parameters: (uninstall-package -name xxx AdditionalArguments '-y --remove-dependencies' -Verbose) - I think this command as to long.

ethanbergstrom commented 4 years ago

@Gregoorio you might try importing the provider or specifying the providername? Uninstall-package with additional arguments works just fine for me: image

If you're still experiencing issues, I'd recommend opening an issue on the project page and we can investigate further.

J-HS-L commented 3 years ago

Has there been lots more progress on all of this? If not, is it at least about to be prioritised from ~Jan 2021, after ~5yrs being at the bottom?

TY/BR.

J-HS-L commented 3 years ago

Has there been lots more progress, on all of this? If not, is it about to be prioritised from ~Jan 2021, after ~5yrs of being at the bottom?

Is this still the main source for OneGet? And this for PowerShellGet, or is CholateyGet more actively dev'd?

UPDATE Ah, regarding that 2nd Qn of mine, I saw this on the front-page of the chocolatier repo: image

Thank-you / Best Regards.