[ANN]: to avoid typo-squatters on PyPI we uploaded a magical "sklearn" package with a single dependency to the actual "scikit-learn" years ago.

However many people are confused by this magic package alias and its fixed 0.0 version number.

Next month, this alias will progressively "brown-out": "pip install sklearn" will fail at some predictable times with an informative error message to tell the user to use "pip install scikit-learn" instead.

https://github.com/scikit-learn/sklearn-pypi-package#goal

#sklearn #pydata #scipy

GitHub - scikit-learn/sklearn-pypi-package

Contribute to scikit-learn/sklearn-pypi-package development by creating an account on GitHub.

GitHub
Thanks to Loïc Estève for setting this up!
@ogrisel that’s a very cool way to ramp up deprecation. Did you implement that within the fake package? What about modified hashes if it stays at 0.0 ?
@tarek yes it all happens in the setup.py file of the 0.0.post1 release of the alias package. There is intentionally no wheel for sklearn 0.0.post1.

@ogrisel I don't really understand the time-based brown-out. Why not prompt a warning message for a month and then an error message for the rest of time? (never giving away the handle because people would impersonate sklearn)

Could you elaborate on this choice please? :)

@solalnathan because warning messages raised in setup.py are hidden by pip when running "pip install sklearn".

And even for the very few users who enable the verbose mode, the warning message would be practically invisible in the overly crowded pip install verbose output.

Nobody reads the pip install verbose outputs carefully line by line, especially if sklearn is one of tens of dependencies of a give package.

@ogrisel Ok it makes a lot of sense. Thanks!
@solalnathan BTW, after the end of the brownout period, we keep the sklearn package on pypi, erroring with the informative error message at install time forever.