Opened 2 years ago

Closed 2 years ago

#31118 closed defect (fixed)

sage --package update-latest: Fix for package-names-containing-dashes; accept package classes :standard:, :optional: etc., restrict to normal Python packages; fix sage --package fix-checksum

Reported by: mkoeppe Owned by:
Priority: blocker Milestone: sage-9.3
Component: scripts Keywords:
Cc: vbraun, slabbe, jhpalmieri, dimpase, vdelecroix Merged in:
Authors: Matthias Koeppe Reviewers: Dima Pasechnik
Report Upstream: N/A Work issues:
Branch: 182b3d2 (Commits, GitHub, GitLab) Commit: 182b3d22106e206a95d9ffbf2104f5c2a32dd3b5
Dependencies: Stopgaps:

GitHub link to the corresponding issue

Description (last modified by mkoeppe)

... 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.

Change History (12)

comment:1 Changed 2 years ago by mkoeppe

Branch: u/mkoeppe/sage___package_update_latest__fix_for_package_names_containing_dashes

comment:2 Changed 2 years ago by mkoeppe

Authors: Matthias Koeppe
Cc: jhpalmieri dimpase added
Commit: 9d747fc169e04f78dc9d1ba8e13c4e09f162d3a6
Status: newneeds_review

New commits:

9d747fcsage --package update-latest: Distinguish pypi package name and spkg name

comment:3 Changed 2 years ago by git

Commit: 9d747fc169e04f78dc9d1ba8e13c4e09f162d3a6c826c73010ca7eeaa399ffcb08a3d951b08f4e2c

Branch pushed to git repo; I updated commit sha1. New commits:

c826c73sage --package update-latest: Accept package classes :standard:, :optional: etc., restrict to normal Python packages

comment:4 Changed 2 years ago by mkoeppe

Description: modified (diff)
Priority: minormajor
Summary: sage --package update-latest: Fix for package-names-containing-dashessage --package update-latest: Fix for package-names-containing-dashes; accept package classes :standard:, :optional: etc., restrict to normal Python packages

comment:5 Changed 2 years ago by git

Commit: c826c73010ca7eeaa399ffcb08a3d951b08f4e2cf74f66c31a358b3ff5dd2381ce4b7c1f5899858d

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

f74f66csage --package update-latest: Accept package classes :standard:, :optional: etc., restrict to normal Python packages

comment:6 Changed 2 years ago by mkoeppe

Cc: vdelecroix added

comment:7 Changed 2 years ago by git

Commit: f74f66c31a358b3ff5dd2381ce4b7c1f5899858d182b3d22106e206a95d9ffbf2104f5c2a32dd3b5

Branch pushed to git repo; I updated commit sha1. New commits:

182b3d2sage -package fix-checksum: Handle package classes, ignore non-normal packages

comment:8 Changed 2 years ago by mkoeppe

Description: modified (diff)
Summary: sage --package update-latest: Fix for package-names-containing-dashes; accept package classes :standard:, :optional: etc., restrict to normal Python packagessage --package update-latest: Fix for package-names-containing-dashes; accept package classes :standard:, :optional: etc., restrict to normal Python packages; fix sage --package fix-checksum

comment:9 Changed 2 years ago by dimpase

Priority: majorblocker
Reviewers: Dima Pasechnik
Status: needs_reviewpositive_review

OK, this appears to fix sage -package fix-checksum.

comment:10 Changed 2 years ago by mkoeppe

By the way, only sage -package fix-checksum without specifying the package was broken because it looped over all packages, including script packages. Hardly a blocker, but it does not really matter

comment:11 Changed 2 years ago by dimpase

inability to update spkgs is a blocker all right.

comment:12 Changed 2 years ago by vbraun

Branch: u/mkoeppe/sage___package_update_latest__fix_for_package_names_containing_dashes182b3d22106e206a95d9ffbf2104f5c2a32dd3b5
Resolution: fixed
Status: positive_reviewclosed
Note: See TracTickets for help on using tickets.