At 03:12 PM 12/28/2006 +0900, David Smith wrote:
The usecase is too obvious: using setuptools for distribution of modules that are not publically available, such as commercial or pre-release development.
If they're not publically available, why use authenticated HTTP at all? Among the many alternatives that work with easy_install today are: * rsync-mirrored directories * NFS-mounted directories * ssh-transport SVN servers (you even get prompted for your credentials!) * proxied HTTP And in a lot of cases, one or more of the above is either already set up or easier to add than a password-protected web directory. It seems to me that the only case where HTTP auth helps is if you were already distributing your files that way.
Until 0.7 is released, considering the very small size of the patch, could we add this for now and refactor it later?
0.6 is in a bugfix-only mode at the moment. It *may* get some extra features in the bootstrapping system (ez_setup) before the final release, but that's basically it. Please note that if you want to add this feature, nothing is stopping you from subclassing PackageIndex and creating an easy_install() instance that uses an instance of your subclass. This can be done without any patching; you would simply do something like this:: class MyPackageIndex(PackageIndex): # ... class my_easy_install(easy_install): create_index = MyPackageIndex # makes it use your class instead # ... And then either write your own version of the 'main()' function, or monkeypatch your class in. Add a setup.py to your little package to specify an entry point, and your easy_install command-line replacement is good to go. If your main concern is for your projects that use setuptools, you don't even need the main() function. Just specify: cmdclass = dict(easy_install=my_easy_install), in your setup() call to tell setuptools to use your replacement class. In other words, you don't need to have this patch accepted in order to integrate the functionality with the existing system. It's just not a nice orthogonal plugin, as you have to supply replacement subclasses in the normal distutils style, instead of entry points in the setuptools style.