Hey everyone, Microsoft is working on a thing called OneGet to be shipped in new versions of Windows, which will essentially be a standard interface for accessing whatever package managers are on the system (and bootstrapping new ones).
Currently users of OneGet access it using PowerShell (but an API is planned and other interfaces will be available), and package managers interact with it through libraries called "Providers" (which currently must be implemented in .NET or PowerShell, but the system is extensible to other environments). The idea is that you'll be able to point OneGet at some sort of package file, or url, or the name of some project you vaguely remember hearing about, and it'll figure out how to install it and keep it updated. The ultimate goal is to make package management on Windows at least as easy as it is on Linux, while taking advantage of existing systems, rather than imposing a new unified package manager. It has a github repo at https://github.com/oneget/oneget and someone wrote a more detailed introduction (which hopefully makes some sense) here: http://www.howtogeek.com/200334/windows-10-includes-a-linux-style-package-manager-named-oneget/ Sorry if this doesn't make sense, I've been immersed in this and related projects for a long time, and I've internalized so much of it that I don't know what the important points are for an introduction. So, if you can ask questions to help me clarify those things, I'd appreciate it. I've been working on a OneGet provider for Python, written in C#, which would basically be a frontend for PyPI/pip, but would avoid calling out to python for certain operations like searching PyPI, and would bootstrap python/pip as needed. However, the project lead asked at a meeting last week how useful it would be to be able to implement providers in other languages (by writing what we're calling a "meta-provider"). I could use the work I've done so far to make this happen for Python. So that would mean that any package manager written in Python could have providers that are also written in Python. To get an idea of what a provider for a package manager looks like, this is the interface in C#: https://github.com/OneGet/oneget/blob/master/OneGet/Providers/IPackageProvider.cs and here's a builtin provider that only implements "GetInstalledPackages" and "UninstallPackage": https://github.com/OneGet/oneget/blob/master/OneGet/Builtin/ArpProvider.cs. All the methods except for "GetPackageProviderName" are optional. There might also be some metadata required, I'd need to work out some details of how this would work for Python. So, is this interesting to anyone? Would anyone want to work on making a Python package manager available through this system (especially pip, as that would save me a lot of work), assuming I can provide some good documentation/sample code and no C# or PowerShell coding is required? Did I even explain this well enough for the question to make sense? _______________________________________________ Distutils-SIG maillist - [email protected] https://mail.python.org/mailman/listinfo/distutils-sig
