From 1b11111da332a5f57478a3a6477f1e2a57a34361 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 1 Feb 2019 09:42:55 -0700 Subject: [PATCH] raco pkg migrate: don't promote auto-installed Upgrading an auto install to an explicit install runs into trouble if the auto install is in a wider scope. It doens't seem necessary to promote already-installed packages for migration, anyway. --- pkgs/racket-test/tests/pkg/tests-migrate.rkt | 9 ++++++++- racket/collects/pkg/private/install.rkt | 3 ++- racket/collects/pkg/private/migrate.rkt | 1 + 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pkgs/racket-test/tests/pkg/tests-migrate.rkt b/pkgs/racket-test/tests/pkg/tests-migrate.rkt index 5d5a3e7088..a46c51c68a 100644 --- a/pkgs/racket-test/tests/pkg/tests-migrate.rkt +++ b/pkgs/racket-test/tests/pkg/tests-migrate.rkt @@ -32,4 +32,11 @@ $ "raco pkg migrate --dry-run -u other" $ "raco pkg show -l -u -a" =stdout> " [none]\n" $ "raco pkg migrate -u other" - $ "raco pkg show -l -u -a" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\npkg-a\\* +[a-f0-9.]+ \\(catalog \"pkg-a\"\\)\npkg-b +[a-f0-9.]+ +\\(catalog \"pkg-b\"\\)\n"))) + $ "raco pkg show -l -u -a" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\npkg-a\\* +[a-f0-9.]+ \\(catalog \"pkg-a\"\\)\npkg-b +[a-f0-9.]+ +\\(catalog \"pkg-b\"\\)\n" + + ;; Don't promote auto-installed. Our real interest is not having to promote auto-installed + ;; in a wider scope, but we can partly test that by checking non-promote in user-scope. + $ "raco pkg remove -u --demote pkg-b" + $ "raco pkg show -l -u -a" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\npkg-a\\* +[a-f0-9.]+ \\(catalog \"pkg-a\"\\)\npkg-b\\* +[a-f0-9.]+ +\\(catalog \"pkg-b\"\\)\n" + $ "raco pkg migrate -u other" + $ "raco pkg show -l -u -a" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\npkg-a\\* +[a-f0-9.]+ \\(catalog \"pkg-a\"\\)\npkg-b\\* +[a-f0-9.]+ +\\(catalog \"pkg-b\"\\)\n"))) diff --git a/racket/collects/pkg/private/install.rkt b/racket/collects/pkg/private/install.rkt index 5739ba747c..aaa111f1d3 100644 --- a/racket/collects/pkg/private/install.rkt +++ b/racket/collects/pkg/private/install.rkt @@ -855,6 +855,7 @@ #:strict-doc-conflicts? [strict-doc-conflicts? #f] #:use-cache? [use-cache? #t] #:skip-installed? [skip-installed? #f] + #:skip-auto-installed? [skip-auto-installed? #f] #:pre-succeed [pre-succeed void] #:dep-behavior [dep-behavior #f] #:update-deps? [update-deps? #f] @@ -897,7 +898,7 @@ (filter (lambda (d) (define pkg-name (desc->name d)) (define i (hash-ref all-scope-dbs pkg-name #f)) - (or (not i) (pkg-info-auto? i))) + (or (not i) (and (not skip-auto-installed?) (pkg-info-auto? i)))) descs)) pkg-desc=?)) diff --git a/racket/collects/pkg/private/migrate.rkt b/racket/collects/pkg/private/migrate.rkt index 97f5764f75..b684c29044 100644 --- a/racket/collects/pkg/private/migrate.rkt +++ b/racket/collects/pkg/private/migrate.rkt @@ -79,6 +79,7 @@ #:strict-doc-conflicts? strict-doc-conflicts? #:use-cache? use-cache? #:skip-installed? #t + #:skip-auto-installed? #t #:dep-behavior (or dep-behavior 'search-auto) #:quiet? quiet? #:from-command-line? from-command-line?