... the current code is confused about pypa-normalized names vs. spkg-normalized names:
$ ./sage -package update-latest importlib_metadata
Traceback (most recent call last):
File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/build/bin/sage-package", line 42, in <module>
run()
File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/build/bin/../sage_bootstrap/cmdline.py", line 337, in run
app.update_latest(args.package_name)
File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/build/bin/../sage_bootstrap/app.py", line 141, in update_latest
pypi.update()
File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/build/bin/../sage_bootstrap/pypi.py", line 104, in update
package = Package(self.name)
File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/build/bin/../sage_bootstrap/package.py", line 48, in __init__
self._init_type()
File "/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/build/bin/../sage_bootstrap/package.py", line 309, in _init_type
with open(os.path.join(self.path, 'type')) as f:
IOError: [Errno 2] No such file or directory: u'/Users/mkoeppe/s/sage/sage-rebasing/worktree-algebraic-2018-spring/build/pkgs/importlib-metadata/type'
We also update the code so that it uses the files checksums.ini and install-requires.txt to recognize normal Python packages.
As a result, the interface has changed slightly:
sage --package update-latest :all: now also updates optional and experimental packages
- use
sage --package update-latest :standard: for (a better version of) the previous behavior
We also fix sage --package fix-checksum so it does not trip over non-normal packages.
CC: @vbraun @seblabbe @jhpalmieri @dimpase @videlec
Component: scripts
Author: Matthias Koeppe
Branch/Commit: 182b3d2
Reviewer: Dima Pasechnik
Issue created by migration from https://trac.sagemath.org/ticket/31118