
On Thu, Oct 19, 2017, at 04:10 PM, Donald Stufft wrote:
I’m in favor, although one question I guess is whether it should be a a PEP or an ad hoc spec. Given (2) it should *probably* be a a PEP (since without (2), its just another file in the .dist-info directory and that doesn’t actually need standardized at all). I don’t think that this will be a very controversial PEP though, and should be pretty easy.
I have opened a PR to document what is already there, without adding any new features. I think this is worth doing even if we don't change anything, since it's a de-facto standard used for different tools to interact. https://github.com/pypa/python-packaging-user-guide/pull/390 We can still write a PEP for caching if necessary.
I’m also in favor of this. Although I would suggest SQLite rather than a JSON file for the primary reason being that a JSON file isn’t multiprocess safe without being careful (and possibly introducing locking) whereas SQLite has already solved that problem.
SQLite was actually my first thought, but from experience in Jupyter & IPython I'm wary of it - its built-in locking does not work well over NFS, and it's easy to corrupt the database. I think careful use of atomic writing can be more reliable (though that has given us some problems too). That may be easier if there's one cache per user, though - we can perhaps try to store it somewhere that's not NFS. Thomas