Someone appears to have some interest in keeping up basemap maintenance. I’ll leave it up to the group to decide if it is worth it or if there is a better option for Victor (cc’ed). Personally, I never attempted any sort of repackaging work like they did in conda-forge because pip installs of basemap have other difficulties (namely, the proj4 and by extension, the libgeos dependency). With conda-forge handling the packaging for me, I just never bothered even uploading new packages to PyPI.
I write to you because you appear as the current (and last) maintainer of basemap. I am aware that basemap has been deprecated already quite long, but for work-related reasons I need to maintain some software that still relies on basemap.
What should I do in order to join the matplotlib team and provide myself some basemap maintenance for a bit more time? I do not plan to add new features, but I think I could help in solving the current problem of package size that prevents basemap from being available in PyPI (this is a problem for my CI stuff because I cannot rely on PyPI to install basemap as dependency and I need to provide my own basemap wheels to the deployment environment).
Essentially I workaround the package size issue in the same way as it is done in Anaconda: to split the library and separate necessary data from “optional” data. In Anaconda, you will find “basemap” (which excludes high-resolution data) and “basemap-data-hires” (with just these excluded files). I was playing a bit with the basemap setup file and I could manage to split the package in three parts:
basemap-data: this is a package with just the basemap data of lower resolution (approx. 20 MB).
basemap-lite: this is just the basemap source code and the compiled geoslib, and it has basemap-data as dependency (less than 1 MB).
basemap-extras: this is the equivalent to basemap-data-hires in Anaconda (about 110 MB).
This repackaging has the advantage that at least basemap-data and basemap-lite fulfill the package size requirement of PyPI. Furthermore, since basemap-data and basemap-extras only contain data, it is possible to create for it just one universal wheel file valid for all Python versions and operating systems. Then basemap-lite needs one wheel file per Python version and operating system, but thanks to keeping the data in a separate package a lot of file redundancy is avoided.