[Distutils] HTTP authentication support
Phillip J. Eby
pje at telecommunity.com
Thu Dec 28 07:38:05 CET 2006
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::
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.
More information about the Distutils-SIG