Removing the planet2 name from the code
This commit is contained in:
parent
431efb40d1
commit
9f337c632a
|
@ -4,7 +4,7 @@
|
||||||
racket/path
|
racket/path
|
||||||
raco/command-name
|
raco/command-name
|
||||||
rackunit/log
|
rackunit/log
|
||||||
planet2/lib)
|
pkg/lib)
|
||||||
|
|
||||||
(define submodules '())
|
(define submodules '())
|
||||||
(define run-anyways? #t)
|
(define run-anyways? #t)
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
(require racket/gui/base
|
(require racket/gui/base
|
||||||
racket/class
|
racket/class
|
||||||
string-constants
|
string-constants
|
||||||
planet2/name
|
pkg/name
|
||||||
racket/list
|
racket/list
|
||||||
framework)
|
framework)
|
||||||
(provide install-pkg)
|
(provide install-pkg)
|
||||||
|
@ -213,7 +213,7 @@
|
||||||
setup/plt-installer
|
setup/plt-installer
|
||||||
help/bug-report
|
help/bug-report
|
||||||
setup/unpack
|
setup/unpack
|
||||||
planet2
|
pkg
|
||||||
(submod "." install-pkg))
|
(submod "." install-pkg))
|
||||||
(provide frame@)
|
(provide frame@)
|
||||||
(define-unit frame@
|
(define-unit frame@
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
setup/dirs
|
setup/dirs
|
||||||
setup/link
|
setup/link
|
||||||
framework
|
framework
|
||||||
(prefix-in planet2: planet2)
|
(prefix-in pkg: pkg)
|
||||||
(for-syntax racket/base
|
(for-syntax racket/base
|
||||||
racket/list)
|
racket/list)
|
||||||
"buginfo.rkt"
|
"buginfo.rkt"
|
||||||
|
@ -248,9 +248,9 @@
|
||||||
#f
|
#f
|
||||||
#:top-panel synthesized-panel))
|
#:top-panel synthesized-panel))
|
||||||
|
|
||||||
(define planet2-info
|
(define pkg-info
|
||||||
(make-big-text
|
(make-big-text
|
||||||
(string-constant bug-report-field-planet2)
|
(string-constant bug-report-field-pkg)
|
||||||
#:stretch? #t
|
#:stretch? #t
|
||||||
#:top-panel synthesized-panel))
|
#:top-panel synthesized-panel))
|
||||||
|
|
||||||
|
@ -322,7 +322,7 @@
|
||||||
(format "Human Language: ~a\n" (send human-language get-value))
|
(format "Human Language: ~a\n" (send human-language get-value))
|
||||||
(format "(current-memory-use) ~a\n" (send memory-use get-value))
|
(format "(current-memory-use) ~a\n" (send memory-use get-value))
|
||||||
(format "Links: ~a\n" (send links-ctrl get-value))
|
(format "Links: ~a\n" (send links-ctrl get-value))
|
||||||
(format "Planet2 (show):\n~a\n" (send (send planet2-info get-editor) get-text))
|
(format "raco pkg (show):\n~a\n" (send (send pkg-info get-editor) get-text))
|
||||||
"\n"
|
"\n"
|
||||||
"\nCollections:\n"
|
"\nCollections:\n"
|
||||||
(format "~a" (send (send collections get-editor) get-text))
|
(format "~a" (send (send collections get-editor) get-text))
|
||||||
|
@ -440,14 +440,14 @@
|
||||||
(links #:root? #t)
|
(links #:root? #t)
|
||||||
(links #:user? #f #:root? #t)))
|
(links #:user? #f #:root? #t)))
|
||||||
|
|
||||||
(define planet2-info-sp (open-output-string))
|
(define pkg-info-sp (open-output-string))
|
||||||
(parameterize ([current-output-port planet2-info-sp])
|
(parameterize ([current-output-port pkg-info-sp])
|
||||||
(with-handlers ([exn:fail? (lambda (exn)
|
(with-handlers ([exn:fail? (lambda (exn)
|
||||||
(printf "ERROR:\n~a" (exn-message exn)))])
|
(printf "ERROR:\n~a" (exn-message exn)))])
|
||||||
(planet2:show)))
|
(pkg:show)))
|
||||||
(send (send planet2-info get-editor)
|
(send (send pkg-info get-editor)
|
||||||
insert
|
insert
|
||||||
(get-output-string planet2-info-sp))
|
(get-output-string pkg-info-sp))
|
||||||
|
|
||||||
(send human-language set-value (format "~a" (this-language)))
|
(send human-language set-value (format "~a" (this-language)))
|
||||||
(send memory-use set-value (format "~a" (current-memory-use)))
|
(send memory-use set-value (format "~a" (current-memory-use)))
|
||||||
|
|
|
@ -555,7 +555,7 @@ plt-extras :+= (package: "slatex")
|
||||||
|
|
||||||
;; -------------------- planet
|
;; -------------------- planet
|
||||||
mz-extras :+= (package: "planet")
|
mz-extras :+= (package: "planet")
|
||||||
mz-extras :+= (package: "planet2")
|
mz-extras :+= (package: "pkg")
|
||||||
|
|
||||||
;; -------------------- mrlib
|
;; -------------------- mrlib
|
||||||
mr-extras :+= (+ (package: "mrlib/")
|
mr-extras :+= (+ (package: "mrlib/")
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#"text/s-expr" empty
|
#"text/s-expr" empty
|
||||||
(λ (op) (write v op))))
|
(λ (op) (write v op))))
|
||||||
|
|
||||||
(define (planet2-index/basic get-pkgs pkg-name->info)
|
(define (pkg-index/basic get-pkgs pkg-name->info)
|
||||||
(define (write-info req pkg-name)
|
(define (write-info req pkg-name)
|
||||||
(response/sexpr (pkg-name->info pkg-name)))
|
(response/sexpr (pkg-name->info pkg-name)))
|
||||||
(define (display-info req pkg-name)
|
(define (display-info req pkg-name)
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
dispatch)
|
dispatch)
|
||||||
|
|
||||||
(provide/contract
|
(provide/contract
|
||||||
[planet2-index/basic
|
[pkg-index/basic
|
||||||
(-> (-> (listof string?))
|
(-> (-> (listof string?))
|
||||||
(-> string? (hash/c symbol? any/c))
|
(-> string? (hash/c symbol? any/c))
|
||||||
(-> request? response?))])
|
(-> request? response?))])
|
|
@ -6,7 +6,7 @@
|
||||||
racket/port
|
racket/port
|
||||||
net/url
|
net/url
|
||||||
file/md5
|
file/md5
|
||||||
planet2/util)
|
pkg/util)
|
||||||
|
|
||||||
(define (gravatar-hash email)
|
(define (gravatar-hash email)
|
||||||
(bytes->string/utf-8
|
(bytes->string/utf-8
|
|
@ -7,7 +7,7 @@
|
||||||
racket/function
|
racket/function
|
||||||
racket/runtime-path
|
racket/runtime-path
|
||||||
web-server/dispatch
|
web-server/dispatch
|
||||||
planet2/util
|
pkg/util
|
||||||
racket/match
|
racket/match
|
||||||
racket/package
|
racket/package
|
||||||
racket/system
|
racket/system
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
racket/bool
|
racket/bool
|
||||||
racket/list
|
racket/list
|
||||||
net/sendmail
|
net/sendmail
|
||||||
meta/planet2-index/basic/main
|
meta/pkg-index/basic/main
|
||||||
web-server/http/id-cookie
|
web-server/http/id-cookie
|
||||||
file/sha1
|
file/sha1
|
||||||
(prefix-in bcrypt- bcrypt))
|
(prefix-in bcrypt- bcrypt))
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
(λ ()
|
(λ ()
|
||||||
(match key
|
(match key
|
||||||
[(or 'author 'checksum 'source)
|
[(or 'author 'checksum 'source)
|
||||||
(error 'planet2 "Package ~e is missing a required field: ~e"
|
(error 'pkg "Package ~e is missing a required field: ~e"
|
||||||
(hash-ref pkg-info 'name) key)]
|
(hash-ref pkg-info 'name) key)]
|
||||||
['tags
|
['tags
|
||||||
empty]
|
empty]
|
||||||
|
@ -296,7 +296,7 @@
|
||||||
log-req
|
log-req
|
||||||
#:breadcrumb
|
#:breadcrumb
|
||||||
(list "Login" "Account Registration Error")
|
(list "Login" "Account Registration Error")
|
||||||
`(p "Email addresses may not contain / on Planet2:"
|
`(p "Email addresses may not contain / on the Racket PNR:"
|
||||||
(tt ,email)))))
|
(tt ,email)))))
|
||||||
|
|
||||||
(when (string=? "" email)
|
(when (string=? "" email)
|
||||||
|
@ -328,11 +328,11 @@
|
||||||
(send/suspend
|
(send/suspend
|
||||||
(λ (k-url)
|
(λ (k-url)
|
||||||
(send-mail-message
|
(send-mail-message
|
||||||
"planet2@racket-lang.org"
|
"pkg@racket-lang.org"
|
||||||
"Account confirmation for Planet2"
|
"Account confirmation for Racket PNR"
|
||||||
(list email)
|
(list email)
|
||||||
empty empty
|
empty empty
|
||||||
(list "Someone tried to register your email address for an account on Planet2. If you want to authorize this registration and log in, please click the following link:"
|
(list "Someone tried to register your email address for an account on the Racket PNR. If you want to authorize this registration and log in, please click the following link:"
|
||||||
""
|
""
|
||||||
(format "https://pkg.racket-lang.org~a" k-url)
|
(format "https://pkg.racket-lang.org~a" k-url)
|
||||||
""
|
""
|
||||||
|
@ -429,7 +429,7 @@
|
||||||
(binding:form-value
|
(binding:form-value
|
||||||
res))]
|
res))]
|
||||||
[fail?
|
[fail?
|
||||||
(error 'planet2 "Missing field ~e" id)]
|
(error 'pnr "Missing field ~e" id)]
|
||||||
[else
|
[else
|
||||||
#f]))
|
#f]))
|
||||||
|
|
||||||
|
@ -437,14 +437,14 @@
|
||||||
(define (edit-details pkg-req)
|
(define (edit-details pkg-req)
|
||||||
(define new-pkg (request-binding/string pkg-req "name"))
|
(define new-pkg (request-binding/string pkg-req "name"))
|
||||||
(when (string=? new-pkg "")
|
(when (string=? new-pkg "")
|
||||||
(error 'planet2 "Name must not be empty: ~e" new-pkg))
|
(error 'pnr "Name must not be empty: ~e" new-pkg))
|
||||||
(define new-source (request-binding/string pkg-req "source"))
|
(define new-source (request-binding/string pkg-req "source"))
|
||||||
(when (string=? new-source "")
|
(when (string=? new-source "")
|
||||||
(error 'planet2 "Source must not be empty: ~e" new-source))
|
(error 'pnr "Source must not be empty: ~e" new-source))
|
||||||
(define new-desc (request-binding/string pkg-req "description"))
|
(define new-desc (request-binding/string pkg-req "description"))
|
||||||
|
|
||||||
(unless (valid-name? new-pkg)
|
(unless (valid-name? new-pkg)
|
||||||
(error 'planet2
|
(error 'pnr
|
||||||
"Illegal character in name; only alphanumerics, plus '-' and '_' allowed: ~e"
|
"Illegal character in name; only alphanumerics, plus '-' and '_' allowed: ~e"
|
||||||
new-pkg))
|
new-pkg))
|
||||||
|
|
||||||
|
@ -452,14 +452,14 @@
|
||||||
(or (regexp-match #rx"^[Pp][Ll][Tt]" new-pkg)
|
(or (regexp-match #rx"^[Pp][Ll][Tt]" new-pkg)
|
||||||
(regexp-match #rx"^[Pp][Ll][Aa][Nn][Ee][Tt]" new-pkg)
|
(regexp-match #rx"^[Pp][Ll][Aa][Nn][Ee][Tt]" new-pkg)
|
||||||
(regexp-match #rx"^[Rr][Aa][Cc][Kk][Ee][Tt]" new-pkg)))
|
(regexp-match #rx"^[Rr][Aa][Cc][Kk][Ee][Tt]" new-pkg)))
|
||||||
(error 'planet2
|
(error 'pnr
|
||||||
"Packages that start with plt, planet, and racket are not allowed without special permission. Please create your package with a different name, then email curation to request a rename: ~e"
|
"Packages that start with plt, planet, and racket are not allowed without special permission. Please create your package with a different name, then email curation to request a rename: ~e"
|
||||||
new-pkg))
|
new-pkg))
|
||||||
|
|
||||||
(when (and (package-exists? new-pkg)
|
(when (and (package-exists? new-pkg)
|
||||||
(not (equal? (package-ref (package-info new-pkg) 'author)
|
(not (equal? (package-ref (package-info new-pkg) 'author)
|
||||||
(current-user pkg-req #t))))
|
(current-user pkg-req #t))))
|
||||||
(error 'planet2
|
(error 'pnr
|
||||||
"Packages may only be modified by their authors: ~e"
|
"Packages may only be modified by their authors: ~e"
|
||||||
new-pkg))
|
new-pkg))
|
||||||
|
|
||||||
|
@ -502,7 +502,7 @@
|
||||||
(when (and (package-exists? pkg)
|
(when (and (package-exists? pkg)
|
||||||
(not (equal? (package-ref (package-info pkg) 'author)
|
(not (equal? (package-ref (package-info pkg) 'author)
|
||||||
(current-user pkg-req #t))))
|
(current-user pkg-req #t))))
|
||||||
(error 'planet2
|
(error 'pnr
|
||||||
"Packages may only be modified by their authors: ~e"
|
"Packages may only be modified by their authors: ~e"
|
||||||
pkg))
|
pkg))
|
||||||
|
|
||||||
|
@ -565,7 +565,7 @@
|
||||||
(not (string=? new-tag "")))
|
(not (string=? new-tag "")))
|
||||||
(define i (package-info pkg-name))
|
(define i (package-info pkg-name))
|
||||||
(unless (valid-name? new-tag)
|
(unless (valid-name? new-tag)
|
||||||
(error 'planet2
|
(error 'pnr
|
||||||
"Illegal character in tag; only alphanumerics allowed, plus '_' and '-': ~e"
|
"Illegal character in tag; only alphanumerics allowed, plus '_' and '-': ~e"
|
||||||
new-tag))
|
new-tag))
|
||||||
(package-info-set!
|
(package-info-set!
|
||||||
|
@ -611,7 +611,7 @@
|
||||||
`(span (input ([name "source"]
|
`(span (input ([name "source"]
|
||||||
[type "text"]
|
[type "text"]
|
||||||
[value ,(package-ref* i 'source "")]))
|
[value ,(package-ref* i 'source "")]))
|
||||||
" (" (a ([href "http://pre.racket-lang.org/docs/html/planet2/Package_Concepts.html#(tech._package._source)"]) "details") ")")
|
" (" (a ([href "http://pre.racket-lang.org/docs/html/pkg/Package_Concepts.html#(tech._package._source)"]) "details") ")")
|
||||||
`(a ([href
|
`(a ([href
|
||||||
,(package-url->useful-url (package-ref i 'source))])
|
,(package-url->useful-url (package-ref i 'source))])
|
||||||
,(package-ref i 'source)))))
|
,(package-ref i 'source)))))
|
||||||
|
@ -664,13 +664,7 @@
|
||||||
`(div ([class "install"])
|
`(div ([class "install"])
|
||||||
"Install this package with:" (br) (br)
|
"Install this package with:" (br) (br)
|
||||||
(tt "raco pkg install " ,pkg-name) (br) (br)
|
(tt "raco pkg install " ,pkg-name) (br) (br)
|
||||||
"or, by evaluating:" (br)
|
"or, with the 'File|Install Package...' menu option in DrRacket.")
|
||||||
(pre
|
|
||||||
,(format "~a\n~a\n~a\n"
|
|
||||||
"#lang racket"
|
|
||||||
"(require planet2)"
|
|
||||||
(format "(install \"~a\")"
|
|
||||||
pkg-name))))
|
|
||||||
"")
|
"")
|
||||||
,(if (and pkg-name delete-handler)
|
,(if (and pkg-name delete-handler)
|
||||||
`(div ([class "delete"])
|
`(div ([class "delete"])
|
||||||
|
@ -716,7 +710,7 @@
|
||||||
(package-info-set! pkg-name i))))
|
(package-info-set! pkg-name i))))
|
||||||
|
|
||||||
(define basic-start
|
(define basic-start
|
||||||
(planet2-index/basic package-list package-info))
|
(pkg-index/basic package-list package-info))
|
||||||
|
|
||||||
(define (go port)
|
(define (go port)
|
||||||
(printf "launching on port ~a\n" port)
|
(printf "launching on port ~a\n" port)
|
|
@ -3,7 +3,7 @@
|
||||||
racket/file
|
racket/file
|
||||||
web-server/http
|
web-server/http
|
||||||
web-server/servlet-env
|
web-server/servlet-env
|
||||||
meta/planet2-index/basic/main
|
meta/pkg-index/basic/main
|
||||||
racket/port
|
racket/port
|
||||||
racket/match
|
racket/match
|
||||||
racket/runtime-path
|
racket/runtime-path
|
||||||
|
@ -371,7 +371,7 @@
|
||||||
(define (go port)
|
(define (go port)
|
||||||
(printf "Launching server on port ~a\n" port)
|
(printf "Launching server on port ~a\n" port)
|
||||||
(serve/servlet
|
(serve/servlet
|
||||||
(planet2-index/basic
|
(pkg-index/basic
|
||||||
(λ () pkg-list)
|
(λ () pkg-list)
|
||||||
(λ (pkg-name)
|
(λ (pkg-name)
|
||||||
(and
|
(and
|
|
@ -1,13 +1,13 @@
|
||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
for i in planet2 tests/planet2 meta/planet2-index ; do
|
for i in pkg tests/pkg meta/pkg-index ; do
|
||||||
rsync -a --progress -h --delete --exclude root --exclude compiled --exclude doc ../../$i/ plt-etc:local/galaxy/$i/
|
rsync -a --progress -h --delete --exclude root --exclude compiled --exclude doc ../../$i/ plt-etc:local/galaxy/$i/
|
||||||
done
|
done
|
||||||
|
|
||||||
for i in official planet-compat ; do
|
for i in official planet-compat ; do
|
||||||
rsync -a --progress -h --delete plt-etc:local/galaxy/meta/planet2-index/$i/root/ $i/root/
|
rsync -a --progress -h --delete plt-etc:local/galaxy/meta/pkg-index/$i/root/ $i/root/
|
||||||
done
|
done
|
||||||
|
|
||||||
rsync -a --progress -h --delete --exclude root --exclude compiled --exclude doc ../../planet2/ plt-etc:local/plt/collects/$i/
|
rsync -a --progress -h --delete --exclude root --exclude compiled --exclude doc ../../pkg/ plt-etc:local/plt/collects/$i/
|
||||||
|
|
||||||
rsync -a --progress -h --delete --exclude compiled ../../web-server ../../net plt-etc:local/plt/collects/
|
rsync -a --progress -h --delete --exclude compiled ../../web-server ../../net plt-etc:local/plt/collects/
|
|
@ -812,9 +812,9 @@ path/s is either such a string or a list of them.
|
||||||
"collects/meta/drdr2" responsible (jay) drdr:command-line #f
|
"collects/meta/drdr2" responsible (jay) drdr:command-line #f
|
||||||
"collects/meta/images/mkheart.rkt" drdr:command-line #f
|
"collects/meta/images/mkheart.rkt" drdr:command-line #f
|
||||||
"collects/meta/images/taking-screenshots/racket-widget.scm" drdr:command-line #f
|
"collects/meta/images/taking-screenshots/racket-widget.scm" drdr:command-line #f
|
||||||
"collects/meta/planet2-index" responsible (jay)
|
"collects/meta/pkg-index" responsible (jay)
|
||||||
"collects/meta/planet2-index/official/main.rkt" drdr:command-line #f
|
"collects/meta/pkg-index/official/main.rkt" drdr:command-line #f
|
||||||
"collects/meta/planet2-index/planet-compat/main.rkt" drdr:command-line (raco "test" *)
|
"collects/meta/pkg-index/planet-compat/main.rkt" drdr:command-line (raco "test" *)
|
||||||
"collects/meta/props" responsible (eli jay) drdr:command-line (racket "-um" * "verify")
|
"collects/meta/props" responsible (eli jay) drdr:command-line (racket "-um" * "verify")
|
||||||
"collects/meta/web" drdr:command-line #f
|
"collects/meta/web" drdr:command-line #f
|
||||||
"collects/mred" responsible (mflatt)
|
"collects/mred" responsible (mflatt)
|
||||||
|
@ -867,7 +867,7 @@ path/s is either such a string or a list of them.
|
||||||
"collects/picturing-programs" responsible (sbloch)
|
"collects/picturing-programs" responsible (sbloch)
|
||||||
"collects/plai" responsible (jay)
|
"collects/plai" responsible (jay)
|
||||||
"collects/planet" responsible (robby)
|
"collects/planet" responsible (robby)
|
||||||
"collects/planet2" responsible (jay)
|
"collects/pkg" responsible (jay)
|
||||||
"collects/plot" responsible (ntoronto)
|
"collects/plot" responsible (ntoronto)
|
||||||
"collects/plot/scribblings/plot.scrbl" drdr:timeout 180
|
"collects/plot/scribblings/plot.scrbl" drdr:timeout 180
|
||||||
"collects/plot/tests/extreme-bounds-tests.rkt" drdr:timeout 150
|
"collects/plot/tests/extreme-bounds-tests.rkt" drdr:timeout 150
|
||||||
|
@ -1157,8 +1157,8 @@ path/s is either such a string or a list of them.
|
||||||
"collects/tests/planet/test-docs-complete.rkt" drdr:command-line (raco "make" *)
|
"collects/tests/planet/test-docs-complete.rkt" drdr:command-line (raco "make" *)
|
||||||
"collects/tests/planet/thread-safe-resolver.rkt" drdr:command-line (raco "make" *) drdr:timeout 1000
|
"collects/tests/planet/thread-safe-resolver.rkt" drdr:command-line (raco "make" *) drdr:timeout 1000
|
||||||
"collects/tests/planet/version.rkt" drdr:command-line (raco "make" *)
|
"collects/tests/planet/version.rkt" drdr:command-line (raco "make" *)
|
||||||
"collects/tests/planet2" responsible (jay) drdr:command-line (mzc *)
|
"collects/tests/pkg" responsible (jay) drdr:command-line (mzc *)
|
||||||
"collects/tests/planet2/test-pkgs" drdr:command-line #f
|
"collects/tests/pkg/test-pkgs" drdr:command-line #f
|
||||||
"collects/tests/profile" responsible (eli)
|
"collects/tests/profile" responsible (eli)
|
||||||
"collects/tests/r6rs" responsible (mflatt)
|
"collects/tests/r6rs" responsible (mflatt)
|
||||||
"collects/tests/racket" responsible (mflatt)
|
"collects/tests/racket" responsible (mflatt)
|
||||||
|
|
6
collects/pkg/info.rkt
Normal file
6
collects/pkg/info.rkt
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
#lang setup/infotab
|
||||||
|
|
||||||
|
(define scribblings
|
||||||
|
'(("scribblings/pkg.scrbl" (multi-page) (tool 100))))
|
||||||
|
(define raco-commands
|
||||||
|
'(("pkg" pkg/raco "manage packages" 81)))
|
|
@ -48,10 +48,10 @@
|
||||||
(for/list ([v (in-list l)])
|
(for/list ([v (in-list l)])
|
||||||
(format "\n ~a" v)))))
|
(format "\n ~a" v)))))
|
||||||
|
|
||||||
(define-logger planet2)
|
(define-logger pkg)
|
||||||
|
|
||||||
(define (log-exn x what)
|
(define (log-exn x what)
|
||||||
(log-planet2-error (~a "failure ~a\n"
|
(log-pkg-error (~a "failure ~a\n"
|
||||||
" error: ~s")
|
" error: ~s")
|
||||||
what
|
what
|
||||||
(exn-message x)))
|
(exn-message x)))
|
||||||
|
@ -94,7 +94,7 @@
|
||||||
(unless fail-okay?
|
(unless fail-okay?
|
||||||
(raise x)))])
|
(raise x)))])
|
||||||
(make-parent-directory* file)
|
(make-parent-directory* file)
|
||||||
(log-planet2-debug "\t\tDownloading ~a to ~a" (url->string url) file)
|
(log-pkg-debug "\t\tDownloading ~a to ~a" (url->string url) file)
|
||||||
(call-with-output-file file
|
(call-with-output-file file
|
||||||
(λ (op)
|
(λ (op)
|
||||||
(call/input-url+200
|
(call/input-url+200
|
||||||
|
@ -233,7 +233,7 @@
|
||||||
(url-query addr/no-query)
|
(url-query addr/no-query)
|
||||||
(list
|
(list
|
||||||
(cons 'version (version))))]))
|
(cons 'version (version))))]))
|
||||||
(log-planet2-debug "resolving via ~a" (url->string addr))
|
(log-pkg-debug "resolving via ~a" (url->string addr))
|
||||||
(call/input-url+200
|
(call/input-url+200
|
||||||
addr
|
addr
|
||||||
read))
|
read))
|
||||||
|
@ -591,13 +591,13 @@
|
||||||
(values package-path
|
(values package-path
|
||||||
'file
|
'file
|
||||||
(λ ()
|
(λ ()
|
||||||
(log-planet2-debug "\tAssuming URL names a file")
|
(log-pkg-debug "\tAssuming URL names a file")
|
||||||
(download-file! pkg-url package-path)))]))
|
(download-file! pkg-url package-path)))]))
|
||||||
(dynamic-wind
|
(dynamic-wind
|
||||||
void
|
void
|
||||||
(λ ()
|
(λ ()
|
||||||
(download-package!)
|
(download-package!)
|
||||||
(log-planet2-debug "\tDownloading done, installing ~a as ~a"
|
(log-pkg-debug "\tDownloading done, installing ~a as ~a"
|
||||||
package-path pkg-name)
|
package-path pkg-name)
|
||||||
(install-package package-path
|
(install-package package-path
|
||||||
download-type
|
download-type
|
||||||
|
@ -667,7 +667,7 @@
|
||||||
[#"plt"
|
[#"plt"
|
||||||
(make-directory* pkg-dir)
|
(make-directory* pkg-dir)
|
||||||
(unpack pkg pkg-dir
|
(unpack pkg pkg-dir
|
||||||
(lambda (x) (log-planet2-debug "~a" x))
|
(lambda (x) (log-pkg-debug "~a" x))
|
||||||
(lambda () pkg-dir)
|
(lambda () pkg-dir)
|
||||||
#f
|
#f
|
||||||
(lambda (auto-dir main-dir file) pkg-dir))]
|
(lambda (auto-dir main-dir file) pkg-dir))]
|
||||||
|
@ -890,7 +890,7 @@
|
||||||
(not (and (string? inst-vers*)
|
(not (and (string? inst-vers*)
|
||||||
(valid-version? inst-vers*))))
|
(valid-version? inst-vers*))))
|
||||||
(begin
|
(begin
|
||||||
(log-planet2-error
|
(log-pkg-error
|
||||||
"bad verson specification for ~a: ~e"
|
"bad verson specification for ~a: ~e"
|
||||||
name
|
name
|
||||||
inst-vers*)
|
inst-vers*)
|
||||||
|
@ -969,14 +969,14 @@
|
||||||
final-pkg-dir]
|
final-pkg-dir]
|
||||||
[else
|
[else
|
||||||
pkg-dir]))
|
pkg-dir]))
|
||||||
(log-planet2-debug "creating link to ~e" final-pkg-dir)
|
(log-pkg-debug "creating link to ~e" final-pkg-dir)
|
||||||
(links final-pkg-dir
|
(links final-pkg-dir
|
||||||
#:user? (not (current-install-system-wide?))
|
#:user? (not (current-install-system-wide?))
|
||||||
#:version-regexp (link-version-regexp)
|
#:version-regexp (link-version-regexp)
|
||||||
#:root? #t)
|
#:root? #t)
|
||||||
(define this-pkg-info
|
(define this-pkg-info
|
||||||
(pkg-info orig-pkg checksum auto?))
|
(pkg-info orig-pkg checksum auto?))
|
||||||
(log-planet2-debug "updating db with ~e to ~e" pkg-name this-pkg-info)
|
(log-pkg-debug "updating db with ~e to ~e" pkg-name this-pkg-info)
|
||||||
(update-pkg-db! pkg-name this-pkg-info))]))
|
(update-pkg-db! pkg-name this-pkg-info))]))
|
||||||
(define metadata-ns (make-metadata-namespace))
|
(define metadata-ns (make-metadata-namespace))
|
||||||
(define infos
|
(define infos
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
(define (setup no-setup? installation? setup-collects)
|
(define (setup no-setup? installation? setup-collects)
|
||||||
(unless (or no-setup?
|
(unless (or no-setup?
|
||||||
(not (member (getenv "PLT_PLANET2_NOSETUP") '(#f ""))))
|
(not (member (getenv "PLT_PKG_NOSETUP") '(#f ""))))
|
||||||
(setup:setup
|
(setup:setup
|
||||||
#:make-user? (not installation?)
|
#:make-user? (not installation?)
|
||||||
#:collections (and setup-collects
|
#:collections (and setup-collects
|
|
@ -1,7 +1,7 @@
|
||||||
#lang scribble/manual
|
#lang scribble/manual
|
||||||
@(require scribble/bnf
|
@(require scribble/bnf
|
||||||
scribble/core
|
scribble/core
|
||||||
(for-label planet2
|
(for-label pkg
|
||||||
(except-in racket/base remove)
|
(except-in racket/base remove)
|
||||||
setup/dirs))
|
setup/dirs))
|
||||||
|
|
||||||
|
@ -200,7 +200,7 @@ packages and @url{https://planet-compat.racket-lang.org} for
|
||||||
automatically generated packages for old @|PLaneT|
|
automatically generated packages for old @|PLaneT|
|
||||||
packages. Anyone may host their own @tech{package name resolver}. The
|
packages. Anyone may host their own @tech{package name resolver}. The
|
||||||
source for the PLT-hosted resolvers is in the
|
source for the PLT-hosted resolvers is in the
|
||||||
@racket[(collection-file-path "planet2-index" "meta")]
|
@racket[(collection-file-path "pkg-index" "meta")]
|
||||||
directory.
|
directory.
|
||||||
|
|
||||||
After a package is installed, the original source of its installation
|
After a package is installed, the original source of its installation
|
||||||
|
@ -285,7 +285,7 @@ sub-sub-commands:
|
||||||
@item{@DFlag{ignore-checksums} --- Ignores errors verifying package @tech{checksums} (unsafe).}
|
@item{@DFlag{ignore-checksums} --- Ignores errors verifying package @tech{checksums} (unsafe).}
|
||||||
|
|
||||||
@item{@DFlag{no-setup} --- Does not run @exec{raco setup} after installation. This behavior is also the case if the
|
@item{@DFlag{no-setup} --- Does not run @exec{raco setup} after installation. This behavior is also the case if the
|
||||||
environment variable @envvar{PLT_PLANET2_NOSETUP} is set to any non-empty value.}
|
environment variable @envvar{PLT_PKG_NOSETUP} is set to any non-empty value.}
|
||||||
|
|
||||||
@item{@DFlag{link} --- Implies @exec{--type dir} (and overrides any specified type),
|
@item{@DFlag{link} --- Implies @exec{--type dir} (and overrides any specified type),
|
||||||
and links the existing directory as an installed package.}
|
and links the existing directory as an installed package.}
|
||||||
|
@ -400,9 +400,9 @@ View and modify package configuration options. It accepts the following @nonterm
|
||||||
|
|
||||||
@subsection{Programmatic}
|
@subsection{Programmatic}
|
||||||
|
|
||||||
@defmodule[planet2]
|
@defmodule[pkg]
|
||||||
|
|
||||||
The @racketmodname[planet2] module provides a programmatic interface
|
The @racketmodname[pkg] module provides a programmatic interface
|
||||||
to the command sub-sub-commands.
|
to the command sub-sub-commands.
|
||||||
|
|
||||||
@deftogether[
|
@deftogether[
|
|
@ -1,6 +0,0 @@
|
||||||
#lang setup/infotab
|
|
||||||
|
|
||||||
(define scribblings
|
|
||||||
'(("scribblings/planet2.scrbl" (multi-page) (tool 100))))
|
|
||||||
(define raco-commands
|
|
||||||
'(("pkg" planet2/raco "manage packages" 81)))
|
|
|
@ -3,6 +3,6 @@
|
||||||
|
|
||||||
@title[#:tag "pkg"]{@exec{raco pkg}: Package Management}
|
@title[#:tag "pkg"]{@exec{raco pkg}: Package Management}
|
||||||
|
|
||||||
See @other-manual['(lib "planet2/scribblings/planet2.scrbl")] for
|
See @other-manual['(lib "pkg/scribblings/pkg.scrbl")] for
|
||||||
information on the @exec{raco pkg} command, which is used for
|
information on the @exec{raco pkg} command, which is used for
|
||||||
managing external code packages.
|
managing external code packages.
|
||||||
|
|
|
@ -1739,7 +1739,7 @@ please adhere to these guidelines:
|
||||||
(planet-docs-building "PLaneT: Building docs (triggered by ~a)...")
|
(planet-docs-building "PLaneT: Building docs (triggered by ~a)...")
|
||||||
(planet-no-status "PLaneT") ;; this can happen when there is status shown in a different and then the user switches to a tab where planet hasn't been used
|
(planet-no-status "PLaneT") ;; this can happen when there is status shown in a different and then the user switches to a tab where planet hasn't been used
|
||||||
|
|
||||||
(bug-report-field-planet2 "Package system info")
|
(bug-report-field-pkg "Package system info")
|
||||||
|
|
||||||
;; string normalization. To see this, paste some text with a ligature into DrRacket
|
;; string normalization. To see this, paste some text with a ligature into DrRacket
|
||||||
;; the first three strings are in the dialog that appears. The last one is in the preferences dialog
|
;; the first three strings are in the dialog that appears. The last one is in the preferences dialog
|
||||||
|
@ -1772,7 +1772,7 @@ please adhere to these guidelines:
|
||||||
; is put following this string (with a blank line in between)
|
; is put following this string (with a blank line in between)
|
||||||
(spell-program-wrote-to-stderr-on-startup "The spell program (~a) printed an error message:")
|
(spell-program-wrote-to-stderr-on-startup "The spell program (~a) printed an error message:")
|
||||||
|
|
||||||
;; GUI for installing a planet2 package; available via File|Install Package...
|
;; GUI for installing a pkg package; available via File|Install Package...
|
||||||
(install-pkg-menu-item... "Install Package...")
|
(install-pkg-menu-item... "Install Package...")
|
||||||
(install-pkg-dialog-title "Install Package")
|
(install-pkg-dialog-title "Install Package")
|
||||||
(install-pkg-source-label "Package Source")
|
(install-pkg-source-label "Package Source")
|
||||||
|
|
|
@ -1732,7 +1732,7 @@
|
||||||
(planet-docs-building "PLaneT: compilation des docs (déclenché par ~a)...")
|
(planet-docs-building "PLaneT: compilation des docs (déclenché par ~a)...")
|
||||||
(planet-no-status "PLaneT") ;; this can happen when there is status shown in a different and then the user switches to a tab where planet hasn't been used
|
(planet-no-status "PLaneT") ;; this can happen when there is status shown in a different and then the user switches to a tab where planet hasn't been used
|
||||||
|
|
||||||
(bug-report-field-planet2 "Information système du logiciel") ; package -> paquetage, bibliothèque ?
|
(bug-report-field-pkg "Information système du logiciel") ; package -> paquetage, bibliothèque ?
|
||||||
|
|
||||||
;; string normalization. To see this, paste some text with a ligature into DrRacket
|
;; string normalization. To see this, paste some text with a ligature into DrRacket
|
||||||
;; the first three strings are in the dialog that appears. The last one is in the preferences dialog
|
;; the first three strings are in the dialog that appears. The last one is in the preferences dialog
|
||||||
|
|
|
@ -1611,7 +1611,7 @@
|
||||||
(planet-docs-building "PLaneT: Dokumentation bauen (ausgelöst durch ~a)...")
|
(planet-docs-building "PLaneT: Dokumentation bauen (ausgelöst durch ~a)...")
|
||||||
(planet-no-status "PLaneT") ;; this can happen when there is status shown in a different and then the user switches to a tab where planet hasn't been used
|
(planet-no-status "PLaneT") ;; this can happen when there is status shown in a different and then the user switches to a tab where planet hasn't been used
|
||||||
|
|
||||||
(bug-report-field-planet2 "Info Package-System")
|
(bug-report-field-pkg "Info Package-System")
|
||||||
|
|
||||||
|
|
||||||
;; string normalization. To see this, paste some text with a ligature into DrRacket
|
;; string normalization. To see this, paste some text with a ligature into DrRacket
|
||||||
|
@ -1647,7 +1647,7 @@
|
||||||
; is put following this string (with a blank line in between)
|
; is put following this string (with a blank line in between)
|
||||||
(spell-program-wrote-to-stderr-on-startup "Der Rechtschreibchecker (~a) hat eine Fehlermeldung ausgegeben:")
|
(spell-program-wrote-to-stderr-on-startup "Der Rechtschreibchecker (~a) hat eine Fehlermeldung ausgegeben:")
|
||||||
|
|
||||||
;; GUI for installing a planet2 package; available via File|Install Package...
|
;; GUI for installing a pkg package; available via File|Install Package...
|
||||||
(install-pkg-menu-item... "Paket installieren...")
|
(install-pkg-menu-item... "Paket installieren...")
|
||||||
(install-pkg-dialog-title "Paket installieren")
|
(install-pkg-dialog-title "Paket installieren")
|
||||||
(install-pkg-source-label "Packet-Quelltext")
|
(install-pkg-source-label "Packet-Quelltext")
|
||||||
|
|
|
@ -1559,7 +1559,7 @@
|
||||||
(planet-docs-building "PLaneT:构建文档(由~a触发)……")
|
(planet-docs-building "PLaneT:构建文档(由~a触发)……")
|
||||||
(planet-no-status "PLaneT") ;; this can happen when there is status shown in a different and then the user switches to a tab where planet hasn't been used
|
(planet-no-status "PLaneT") ;; this can happen when there is status shown in a different and then the user switches to a tab where planet hasn't been used
|
||||||
|
|
||||||
(bug-report-field-planet2 "Package系统信息")
|
(bug-report-field-pkg "Package系统信息")
|
||||||
|
|
||||||
;; string normalization. To see this, paste some text with a ligature into DrRacket
|
;; string normalization. To see this, paste some text with a ligature into DrRacket
|
||||||
;; the first three strings are in the dialog that appears. The last one is in the preferences dialog
|
;; the first three strings are in the dialog that appears. The last one is in the preferences dialog
|
||||||
|
|
|
@ -1542,7 +1542,7 @@
|
||||||
(planet-docs-building "PLaneT:構建文檔(由~a觸發)……")
|
(planet-docs-building "PLaneT:構建文檔(由~a觸發)……")
|
||||||
(planet-no-status "PLaneT") ;; this can happen when there is status shown in a different and then the user switches to a tab where planet hasn't been used
|
(planet-no-status "PLaneT") ;; this can happen when there is status shown in a different and then the user switches to a tab where planet hasn't been used
|
||||||
|
|
||||||
(bug-report-field-planet2 "Package系統信息")
|
(bug-report-field-pkg "Package系統信息")
|
||||||
|
|
||||||
;; string normalization. To see this, paste some text with a ligature into DrRacket
|
;; string normalization. To see this, paste some text with a ligature into DrRacket
|
||||||
;; the first three strings are in the dialog that appears. The last one is in the preferences dialog
|
;; the first three strings are in the dialog that appears. The last one is in the preferences dialog
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
#"text/s-expr" empty
|
#"text/s-expr" empty
|
||||||
(λ (op) (write v op))))
|
(λ (op) (write v op))))
|
||||||
|
|
||||||
(define (planet2-index/basic pkg-name->info)
|
(define (pkg-index/basic pkg-name->info)
|
||||||
(define (write-info req pkg-name)
|
(define (write-info req pkg-name)
|
||||||
(response/sexpr (pkg-name->info pkg-name)))
|
(response/sexpr (pkg-name->info pkg-name)))
|
||||||
(define-values (dispatch get-url)
|
(define-values (dispatch get-url)
|
||||||
|
@ -18,6 +18,6 @@
|
||||||
dispatch)
|
dispatch)
|
||||||
|
|
||||||
(provide/contract
|
(provide/contract
|
||||||
[planet2-index/basic
|
[pkg-index/basic
|
||||||
(-> (-> string? (hash/c symbol? any/c))
|
(-> (-> string? (hash/c symbol? any/c))
|
||||||
(-> request? response?))])
|
(-> request? response?))])
|
|
@ -0,0 +1,4 @@
|
||||||
|
#lang racket/base
|
||||||
|
|
||||||
|
(printf "pkg-test1/main loaded\n")
|
||||||
|
(exit 0)
|
|
@ -0,0 +1,4 @@
|
||||||
|
#lang racket/base
|
||||||
|
|
||||||
|
(printf "pkg-test1/main loaded\n")
|
||||||
|
(exit 0)
|
4
collects/tests/pkg/test-pkgs/pkg-test1-staging/a.rkt
Normal file
4
collects/tests/pkg/test-pkgs/pkg-test1-staging/a.rkt
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
#lang racket/base
|
||||||
|
|
||||||
|
(printf "pkg-test1-staging/a loaded\n")
|
||||||
|
(exit 0)
|
|
@ -0,0 +1,4 @@
|
||||||
|
#lang racket/base
|
||||||
|
|
||||||
|
(printf "pkg-test1/main loaded\n")
|
||||||
|
(exit 0)
|
|
@ -0,0 +1,4 @@
|
||||||
|
#lang racket/base
|
||||||
|
|
||||||
|
(printf "pkg-test1/main loaded\n")
|
||||||
|
(exit 0)
|
3
collects/tests/pkg/test-pkgs/pkg-test2/info.rkt
Normal file
3
collects/tests/pkg/test-pkgs/pkg-test2/info.rkt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
#lang setup/infotab
|
||||||
|
|
||||||
|
(define deps (list "pkg-test1"))
|
|
@ -0,0 +1,3 @@
|
||||||
|
#lang racket
|
||||||
|
(require pkg-test1)
|
||||||
|
(exit 0)
|
|
@ -0,0 +1,4 @@
|
||||||
|
#lang racket/base
|
||||||
|
|
||||||
|
(printf "pkg-test2/main loaded\n")
|
||||||
|
(exit 0)
|
|
@ -4,7 +4,7 @@
|
||||||
"shelly.rkt"
|
"shelly.rkt"
|
||||||
"util.rkt"
|
"util.rkt"
|
||||||
racket/port
|
racket/port
|
||||||
(only-in planet2 config))
|
(only-in pkg config))
|
||||||
|
|
||||||
;; By making these syntax-time includes, it made it so they would be
|
;; By making these syntax-time includes, it made it so they would be
|
||||||
;; rebuilt and register as real dependencies.
|
;; rebuilt and register as real dependencies.
|
||||||
|
@ -29,9 +29,9 @@
|
||||||
(shelly-case "All tests"
|
(shelly-case "All tests"
|
||||||
(for-each (λ (x) (x)) l)))))
|
(for-each (λ (x) (x)) l)))))
|
||||||
|
|
||||||
(let ([v (getenv "PLT_PLANET2_NOSETUP")])
|
(let ([v (getenv "PLT_PKG_NOSETUP")])
|
||||||
(unless (and v (not (string=? v "")))
|
(unless (and v (not (string=? v "")))
|
||||||
(error "Set the PLT_PLANET2_NOSETUP environment variable before running these tests\n")))
|
(error "Set the PLT_PKG_NOSETUP environment variable before running these tests\n")))
|
||||||
|
|
||||||
(unless (equal? "user\n" (with-output-to-string
|
(unless (equal? "user\n" (with-output-to-string
|
||||||
(lambda () (config #:installation #t "default-scope"))))
|
(lambda () (config #:installation #t "default-scope"))))
|
||||||
|
@ -40,15 +40,16 @@
|
||||||
(run-tests
|
(run-tests
|
||||||
"name"
|
"name"
|
||||||
"basic" "create" "install" "permissions"
|
"basic" "create" "install" "permissions"
|
||||||
"network" "conflicts" "checksums"
|
"conflicts" "checksums"
|
||||||
"deps" "update"
|
"deps" "update"
|
||||||
"remove"
|
"remove"
|
||||||
"locking"
|
"locking"
|
||||||
"overwrite"
|
"overwrite"
|
||||||
"config"
|
"config"
|
||||||
"planet"
|
;; "network"
|
||||||
|
;; "planet"
|
||||||
|
;; "main-server"
|
||||||
"update-deps"
|
"update-deps"
|
||||||
"update-auto"
|
"update-auto"
|
||||||
"versions"
|
"versions"
|
||||||
"raco"
|
"raco")
|
||||||
"main-server")
|
|
|
@ -9,7 +9,7 @@
|
||||||
racket/runtime-path
|
racket/runtime-path
|
||||||
racket/path
|
racket/path
|
||||||
racket/list
|
racket/list
|
||||||
planet2/util
|
pkg/util
|
||||||
"shelly.rkt"
|
"shelly.rkt"
|
||||||
"util.rkt")
|
"util.rkt")
|
||||||
|
|
72
collects/tests/pkg/tests-checksums.rkt
Normal file
72
collects/tests/pkg/tests-checksums.rkt
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
#lang racket/base
|
||||||
|
(require rackunit
|
||||||
|
racket/system
|
||||||
|
unstable/debug
|
||||||
|
racket/match
|
||||||
|
(for-syntax racket/base
|
||||||
|
syntax/parse)
|
||||||
|
racket/file
|
||||||
|
racket/runtime-path
|
||||||
|
racket/path
|
||||||
|
racket/list
|
||||||
|
pkg/util
|
||||||
|
"shelly.rkt"
|
||||||
|
"util.rkt")
|
||||||
|
|
||||||
|
(pkg-tests
|
||||||
|
(shelly-begin
|
||||||
|
(initialize-indexes)
|
||||||
|
|
||||||
|
(shelly-case
|
||||||
|
"checksums"
|
||||||
|
$ "test -f test-pkgs/pkg-test1.zip"
|
||||||
|
$ "cp -f test-pkgs/pkg-test1.zip test-pkgs/pkg-test1-bad-checksum.zip"
|
||||||
|
$ "test -f test-pkgs/pkg-test1-conflict.zip.CHECKSUM"
|
||||||
|
$ "cp -f test-pkgs/pkg-test1-conflict.zip.CHECKSUM test-pkgs/pkg-test1-bad-checksum.zip.CHECKSUM"
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"checksums are checked if present (local)"
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 1
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test1-bad-checksum.zip" =exit> 1
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 1))
|
||||||
|
$ "cp -f test-pkgs/pkg-test1.zip test-pkgs/pkg-test1-no-checksum.zip"
|
||||||
|
|
||||||
|
(shelly-install* "checksums are ignored if missing by default (local)"
|
||||||
|
"test-pkgs/pkg-test1-no-checksum.zip"
|
||||||
|
"pkg-test1-no-checksum")
|
||||||
|
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"checksums are checked (remote, indexed)"
|
||||||
|
(hash-set!
|
||||||
|
*index-ht-1* "pkg-test1"
|
||||||
|
(hasheq 'checksum
|
||||||
|
(file->string "test-pkgs/pkg-test1-bad-checksum.zip.CHECKSUM")
|
||||||
|
'source
|
||||||
|
"http://localhost:9999/pkg-test1-bad-checksum.zip"))
|
||||||
|
$ "raco pkg config --set indexes http://localhost:9990 http://localhost:9991"
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 1
|
||||||
|
$ "raco pkg install pkg-test1" =exit> 1
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 1))
|
||||||
|
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"checksums are checked (remote)"
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 1
|
||||||
|
$ "raco pkg install http://localhost:9999/pkg-test1-bad-checksum.zip" =exit> 1
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 1))
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"checksums are required by default remotely (remote)"
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 1
|
||||||
|
$ "raco pkg install http://localhost:9999/pkg-test1-no-checksum.zip" =exit> 1
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 1))
|
||||||
|
(shelly-install* "but, bad checksums can be ignored (local)"
|
||||||
|
"--ignore-checksums test-pkgs/pkg-test1-bad-checksum.zip"
|
||||||
|
"pkg-test1-bad-checksum")
|
||||||
|
(shelly-install* "but, bad checksums can be ignored (remote)"
|
||||||
|
"--ignore-checksums http://localhost:9999/pkg-test1-bad-checksum.zip"
|
||||||
|
"pkg-test1-bad-checksum")
|
||||||
|
(shelly-install* "but, checksums can be missing if ignored (remote)"
|
||||||
|
"--ignore-checksums http://localhost:9999/pkg-test1-no-checksum.zip"
|
||||||
|
"pkg-test1-no-checksum"))))
|
65
collects/tests/pkg/tests-conflicts.rkt
Normal file
65
collects/tests/pkg/tests-conflicts.rkt
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
#lang racket/base
|
||||||
|
(require rackunit
|
||||||
|
racket/system
|
||||||
|
unstable/debug
|
||||||
|
racket/match
|
||||||
|
(for-syntax racket/base
|
||||||
|
syntax/parse)
|
||||||
|
racket/file
|
||||||
|
racket/runtime-path
|
||||||
|
racket/path
|
||||||
|
racket/list
|
||||||
|
pkg/util
|
||||||
|
"shelly.rkt"
|
||||||
|
"util.rkt")
|
||||||
|
|
||||||
|
(pkg-tests
|
||||||
|
(shelly-begin
|
||||||
|
(initialize-indexes)
|
||||||
|
|
||||||
|
$ "raco pkg create --format plt test-pkgs/pkg-test1/"
|
||||||
|
$ "raco pkg create --format plt test-pkgs/pkg-test1-not-conflict/"
|
||||||
|
(shelly-install "only modules are considered for conflicts"
|
||||||
|
"test-pkgs/pkg-test1.plt"
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test1-not-conflict.plt")
|
||||||
|
|
||||||
|
(shelly-case
|
||||||
|
"conflicts"
|
||||||
|
(shelly-install "double install fails" "test-pkgs/pkg-test1.zip"
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test1.zip" =exit> 1)
|
||||||
|
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"conflicts with racket fail"
|
||||||
|
$ "test -f test-pkgs/racket-conflict.tgz"
|
||||||
|
$ "raco pkg install test-pkgs/racket-conflict.tgz" =exit> 1))
|
||||||
|
|
||||||
|
(shelly-install "conflicts are caught" "test-pkgs/pkg-test1.zip"
|
||||||
|
$ "test -f test-pkgs/pkg-test1-conflict.zip"
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test1-conflict.zip" =exit> 1)
|
||||||
|
|
||||||
|
(shelly-install "conflicts are caught across sharing modes" "test-pkgs/pkg-test1.zip"
|
||||||
|
$ "test -f test-pkgs/pkg-test1-conflict.zip"
|
||||||
|
$ "raco pkg install -s test-pkgs/pkg-test1-conflict.zip" =exit> 1)
|
||||||
|
|
||||||
|
(shelly-wind
|
||||||
|
$ "cp -r test-pkgs/pkg-test1 test-pkgs/pkg-test1-linking"
|
||||||
|
(shelly-install* "conflicts are caught, even with a link"
|
||||||
|
"--link test-pkgs/pkg-test1-linking"
|
||||||
|
"pkg-test1-linking"
|
||||||
|
$ "test -f test-pkgs/pkg-test1-conflict.zip"
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test1-conflict.zip" =exit> 1)
|
||||||
|
(finally
|
||||||
|
$ "rm -fr test-pkgs/pkg-test1-linking"))
|
||||||
|
|
||||||
|
(shelly-install "conflicts can be forced" "test-pkgs/pkg-test1.zip"
|
||||||
|
$ "racket -e '(require pkg-test1/conflict)'" =exit> 42
|
||||||
|
$ "raco pkg install --force test-pkgs/pkg-test1-conflict.zip" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test1/conflict)'" =exit> 42
|
||||||
|
$ "raco pkg remove pkg-test1-conflict")
|
||||||
|
|
||||||
|
(shelly-install "conflicts can be forced" "test-pkgs/pkg-test1-conflict.zip"
|
||||||
|
$ "racket -e '(require pkg-test1/conflict)'" =exit> 43
|
||||||
|
$ "raco pkg install --force test-pkgs/pkg-test1.zip" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test1/conflict)'" =exit> 43
|
||||||
|
$ "raco pkg remove pkg-test1-conflict"))))
|
|
@ -9,7 +9,7 @@
|
||||||
racket/runtime-path
|
racket/runtime-path
|
||||||
racket/path
|
racket/path
|
||||||
racket/list
|
racket/list
|
||||||
planet2/util
|
pkg/util
|
||||||
"shelly.rkt"
|
"shelly.rkt"
|
||||||
"util.rkt")
|
"util.rkt")
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
$ "raco pkg create --format tgz test-pkgs/does-not-exist" =exit> 1
|
$ "raco pkg create --format tgz test-pkgs/does-not-exist" =exit> 1
|
||||||
$ "test -f test-pkgs/does-not-exist.tgz" =exit> 1)
|
$ "test -f test-pkgs/does-not-exist.tgz" =exit> 1)
|
||||||
|
|
||||||
$ "raco pkg create planet2-test1" =exit> 1
|
$ "raco pkg create pkg-test1" =exit> 1
|
||||||
|
|
||||||
(define-syntax-rule (shelly-create pkg fmt)
|
(define-syntax-rule (shelly-create pkg fmt)
|
||||||
(shelly-case
|
(shelly-case
|
||||||
|
@ -36,26 +36,26 @@
|
||||||
$ (format "test -f test-pkgs/~a.~a" pkg fmt)
|
$ (format "test -f test-pkgs/~a.~a" pkg fmt)
|
||||||
$ (format "test -f test-pkgs/~a.~a.CHECKSUM" pkg fmt)))
|
$ (format "test -f test-pkgs/~a.~a.CHECKSUM" pkg fmt)))
|
||||||
|
|
||||||
(shelly-create "planet2-test1" "tgz")
|
(shelly-create "pkg-test1" "tgz")
|
||||||
(shelly-create "planet2-test1" "zip")
|
(shelly-create "pkg-test1" "zip")
|
||||||
(shelly-create "planet2-test1-v2" "zip")
|
(shelly-create "pkg-test1-v2" "zip")
|
||||||
(shelly-create "planet2-test1-conflict" "zip")
|
(shelly-create "pkg-test1-conflict" "zip")
|
||||||
(shelly-create "planet2-test1" "plt")
|
(shelly-create "pkg-test1" "plt")
|
||||||
(shelly-create "racket-conflict" "tgz")
|
(shelly-create "racket-conflict" "tgz")
|
||||||
|
|
||||||
$ "raco pkg create --format txt test-pkgs/planet2-test1" =exit> 1
|
$ "raco pkg create --format txt test-pkgs/pkg-test1" =exit> 1
|
||||||
|
|
||||||
(shelly-create "planet2-test2" "zip")
|
(shelly-create "pkg-test2" "zip")
|
||||||
|
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"create is robust against ending /s"
|
"create is robust against ending /s"
|
||||||
$ "rm -f test-pkgs/planet2-test1.tgz test-pkgs/planet2-test1.tgz.CHECKSUM"
|
$ "rm -f test-pkgs/pkg-test1.tgz test-pkgs/pkg-test1.tgz.CHECKSUM"
|
||||||
$ "raco pkg create --format tgz test-pkgs/planet2-test1/"
|
$ "raco pkg create --format tgz test-pkgs/pkg-test1/"
|
||||||
$ "test -f test-pkgs/planet2-test1.tgz"
|
$ "test -f test-pkgs/pkg-test1.tgz"
|
||||||
$ "test -f test-pkgs/planet2-test1.tgz.CHECKSUM"))
|
$ "test -f test-pkgs/pkg-test1.tgz.CHECKSUM"))
|
||||||
|
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"create MANIFESTs"
|
"create MANIFESTs"
|
||||||
$ "rm -f test-pkgs/planet2-test1/MANIFEST"
|
$ "rm -f test-pkgs/pkg-test1/MANIFEST"
|
||||||
$ "raco pkg create --manifest test-pkgs/planet2-test1/"
|
$ "raco pkg create --manifest test-pkgs/pkg-test1/"
|
||||||
$ "test -f test-pkgs/planet2-test1/MANIFEST")))
|
$ "test -f test-pkgs/pkg-test1/MANIFEST")))
|
119
collects/tests/pkg/tests-deps.rkt
Normal file
119
collects/tests/pkg/tests-deps.rkt
Normal file
|
@ -0,0 +1,119 @@
|
||||||
|
#lang racket/base
|
||||||
|
(require rackunit
|
||||||
|
racket/system
|
||||||
|
unstable/debug
|
||||||
|
racket/match
|
||||||
|
(for-syntax racket/base
|
||||||
|
syntax/parse)
|
||||||
|
racket/file
|
||||||
|
racket/runtime-path
|
||||||
|
racket/path
|
||||||
|
racket/list
|
||||||
|
pkg/util
|
||||||
|
"shelly.rkt"
|
||||||
|
"util.rkt")
|
||||||
|
|
||||||
|
(pkg-tests
|
||||||
|
(shelly-begin
|
||||||
|
(initialize-indexes)
|
||||||
|
|
||||||
|
(shelly-case
|
||||||
|
"dependencies"
|
||||||
|
|
||||||
|
$ "test -f test-pkgs/pkg-test2.zip"
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"local - fail (default)"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test2.zip" =exit> 1
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test1.zip" =exit> 0
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test2.zip" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2/contains-dep)'" =exit> 0
|
||||||
|
$ "raco pkg remove pkg-test2"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1))
|
||||||
|
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"local - looks at all packages given on cmdline"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test2.zip test-pkgs/pkg-test1.zip" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2/contains-dep)'" =exit> 0
|
||||||
|
$ "raco pkg remove pkg-test2"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1))
|
||||||
|
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"local - fail"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1
|
||||||
|
$ "raco pkg install --deps fail test-pkgs/pkg-test2.zip" =exit> 1
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1))
|
||||||
|
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"local - force"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1
|
||||||
|
$ "raco pkg install --deps force test-pkgs/pkg-test2.zip"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2/contains-dep)'" =exit> 1
|
||||||
|
$ "raco pkg remove pkg-test2"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1))
|
||||||
|
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"local - search-ask [y]"
|
||||||
|
$ "raco pkg config --set indexes http://localhost:9990"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1
|
||||||
|
$ "raco pkg install --deps search-ask test-pkgs/pkg-test2.zip" =exit> 0 <input= "y\n"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2/contains-dep)'" =exit> 0
|
||||||
|
$ "raco pkg remove pkg-test2"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1))
|
||||||
|
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"local - search-ask []"
|
||||||
|
$ "raco pkg config --set indexes http://localhost:9990"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1
|
||||||
|
$ "raco pkg install --deps search-ask test-pkgs/pkg-test2.zip" =exit> 0 <input= "\n"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2/contains-dep)'" =exit> 0
|
||||||
|
$ "raco pkg remove pkg-test2"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1))
|
||||||
|
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"local - search-ask [n]"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1
|
||||||
|
$ "raco pkg install --deps search-ask test-pkgs/pkg-test2.zip" =exit> 1 <input= "n\n"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1))
|
||||||
|
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"local - search-auto"
|
||||||
|
$ "raco pkg config --set indexes http://localhost:9990"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1
|
||||||
|
$ "raco pkg install --deps search-auto test-pkgs/pkg-test2.zip" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2/contains-dep)'" =exit> 0
|
||||||
|
$ "raco pkg remove pkg-test2"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1))
|
||||||
|
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"remote - search-ask (default) [y]"
|
||||||
|
$ "raco pkg config --set indexes http://localhost:9990"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1
|
||||||
|
$ "raco pkg install pkg-test2" =exit> 0 <input= "y\n"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2/contains-dep)'" =exit> 0
|
||||||
|
$ "raco pkg remove pkg-test2"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1))
|
||||||
|
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"remote - fail"
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1
|
||||||
|
$ "raco pkg install --deps fail pkg-test2" =exit> 1
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1)))))
|
|
@ -9,7 +9,7 @@
|
||||||
racket/runtime-path
|
racket/runtime-path
|
||||||
racket/path
|
racket/path
|
||||||
racket/list
|
racket/list
|
||||||
planet2/util
|
pkg/util
|
||||||
"shelly.rkt"
|
"shelly.rkt"
|
||||||
"util.rkt")
|
"util.rkt")
|
||||||
|
|
||||||
|
@ -19,18 +19,18 @@
|
||||||
|
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"raco pkg install tests"
|
"raco pkg install tests"
|
||||||
(shelly-install "local package (tgz)" "test-pkgs/planet2-test1.tgz")
|
(shelly-install "local package (tgz)" "test-pkgs/pkg-test1.tgz")
|
||||||
(shelly-install "local package (zip)" "test-pkgs/planet2-test1.zip")
|
(shelly-install "local package (zip)" "test-pkgs/pkg-test1.zip")
|
||||||
(shelly-install "local package (plt)" "test-pkgs/planet2-test1.plt")
|
(shelly-install "local package (plt)" "test-pkgs/pkg-test1.plt")
|
||||||
|
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"invalid package format is an error"
|
"invalid package format is an error"
|
||||||
$ "raco pkg install test-pkgs/planet2-test1.zip.CHECKSUM" =exit> 1)
|
$ "raco pkg install test-pkgs/pkg-test1.zip.CHECKSUM" =exit> 1)
|
||||||
|
|
||||||
(shelly-install "remote/URL/http package (file, tgz)"
|
(shelly-install "remote/URL/http package (file, tgz)"
|
||||||
"http://localhost:9999/planet2-test1.tgz")
|
"http://localhost:9999/pkg-test1.tgz")
|
||||||
(shelly-install "remote/URL/http package (directory)"
|
(shelly-install "remote/URL/http package (directory)"
|
||||||
"http://localhost:9999/planet2-test1/")
|
"http://localhost:9999/pkg-test1/")
|
||||||
|
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"fails due to unrecognized scheme"
|
"fails due to unrecognized scheme"
|
||||||
|
@ -57,64 +57,64 @@
|
||||||
|
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"remote/URL/http directory, non-existant file"
|
"remote/URL/http directory, non-existant file"
|
||||||
$ "raco pkg install http://localhost:9999/planet2-test1.rar" =exit> 1)
|
$ "raco pkg install http://localhost:9999/pkg-test1.rar" =exit> 1)
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"remote/URL/http directory, no manifest fail"
|
"remote/URL/http directory, no manifest fail"
|
||||||
$ "raco pkg install http://localhost:9999/planet2-test1/planet2-test1/"
|
$ "raco pkg install http://localhost:9999/pkg-test1/pkg-test1/"
|
||||||
=exit> 1
|
=exit> 1
|
||||||
=stderr> #rx"could not find MANIFEST")
|
=stderr> #rx"could not find MANIFEST")
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"remote/URL/http directory, bad manifest"
|
"remote/URL/http directory, bad manifest"
|
||||||
;; XXX why does this error now?
|
;; XXX why does this error now?
|
||||||
$ "raco pkg install http://localhost:9999/planet2-test1-manifest-error/" =exit> 1)
|
$ "raco pkg install http://localhost:9999/pkg-test1-manifest-error/" =exit> 1)
|
||||||
|
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"local directory fails when not there"
|
"local directory fails when not there"
|
||||||
$ "raco pkg install test-pkgs/planet2-test1-not-there/" =exit> 1)
|
$ "raco pkg install test-pkgs/pkg-test1-not-there/" =exit> 1)
|
||||||
|
|
||||||
(shelly-install "local package (directory)" "test-pkgs/planet2-test1/")
|
(shelly-install "local package (directory)" "test-pkgs/pkg-test1/")
|
||||||
|
|
||||||
(with-fake-root
|
(with-fake-root
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"linking local directory"
|
"linking local directory"
|
||||||
(shelly-wind
|
(shelly-wind
|
||||||
$ "cp -r test-pkgs/planet2-test1 test-pkgs/planet2-test1-linking"
|
$ "cp -r test-pkgs/pkg-test1 test-pkgs/pkg-test1-linking"
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1
|
$ "racket -e '(require pkg-test1)'" =exit> 1
|
||||||
$ "raco pkg install --link test-pkgs/planet2-test1-linking"
|
$ "raco pkg install --link test-pkgs/pkg-test1-linking"
|
||||||
$ "racket -e '(require planet2-test1)'"
|
$ "racket -e '(require pkg-test1)'"
|
||||||
$ "racket -e '(require planet2-test1/a)'" =exit> 1
|
$ "racket -e '(require pkg-test1/a)'" =exit> 1
|
||||||
$ "cp test-pkgs/planet2-test1-staging/a.rkt test-pkgs/planet2-test1-linking/planet2-test1/a.rkt"
|
$ "cp test-pkgs/pkg-test1-staging/a.rkt test-pkgs/pkg-test1-linking/pkg-test1/a.rkt"
|
||||||
$ "racket -e '(require planet2-test1/a)'"
|
$ "racket -e '(require pkg-test1/a)'"
|
||||||
$ "rm -f test-pkgs/planet2-test1-linking/planet2-test1/a.rkt"
|
$ "rm -f test-pkgs/pkg-test1-linking/pkg-test1/a.rkt"
|
||||||
$ "racket -e '(require planet2-test1/a)'" =exit> 1
|
$ "racket -e '(require pkg-test1/a)'" =exit> 1
|
||||||
$ "raco pkg remove planet2-test1-linking"
|
$ "raco pkg remove pkg-test1-linking"
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1
|
$ "racket -e '(require pkg-test1)'" =exit> 1
|
||||||
(finally
|
(finally
|
||||||
$ "rm -r test-pkgs/planet2-test1-linking"))))
|
$ "rm -r test-pkgs/pkg-test1-linking"))))
|
||||||
|
|
||||||
(with-fake-root
|
(with-fake-root
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"remote/name package, doesn't work when no package there"
|
"remote/name package, doesn't work when no package there"
|
||||||
$ "raco pkg config --set indexes http://localhost:9990"
|
$ "raco pkg config --set indexes http://localhost:9990"
|
||||||
$ "raco pkg install planet2-test1-not-there" =exit> 1))
|
$ "raco pkg install pkg-test1-not-there" =exit> 1))
|
||||||
|
|
||||||
(with-fake-root
|
(with-fake-root
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"remote/name package"
|
"remote/name package"
|
||||||
$ "raco pkg config --set indexes http://localhost:9990"
|
$ "raco pkg config --set indexes http://localhost:9990"
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1
|
$ "racket -e '(require pkg-test1)'" =exit> 1
|
||||||
$ "raco pkg install planet2-test1"
|
$ "raco pkg install pkg-test1"
|
||||||
$ "racket -e '(require planet2-test1)'"
|
$ "racket -e '(require pkg-test1)'"
|
||||||
$ "raco pkg remove planet2-test1"
|
$ "raco pkg remove pkg-test1"
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1))
|
$ "racket -e '(require pkg-test1)'" =exit> 1))
|
||||||
|
|
||||||
(with-fake-root
|
(with-fake-root
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"remote/name package (multi)"
|
"remote/name package (multi)"
|
||||||
$ "raco pkg config --set indexes http://localhost:9990 http://localhost:9991"
|
$ "raco pkg config --set indexes http://localhost:9990 http://localhost:9991"
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1
|
$ "racket -e '(require pkg-test1)'" =exit> 1
|
||||||
$ "raco pkg install --deps search-auto planet2-test2-snd"
|
$ "raco pkg install --deps search-auto pkg-test2-snd"
|
||||||
$ "racket -e '(require planet2-test1)'"
|
$ "racket -e '(require pkg-test1)'"
|
||||||
$ "racket -e '(require planet2-test2)'"
|
$ "racket -e '(require pkg-test2)'"
|
||||||
$ "raco pkg remove planet2-test2-snd planet2-test1"
|
$ "raco pkg remove pkg-test2-snd pkg-test1"
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1)))))
|
$ "racket -e '(require pkg-test1)'" =exit> 1)))))
|
|
@ -15,7 +15,7 @@
|
||||||
(define okay-to-respond?-sema (make-semaphore))
|
(define okay-to-respond?-sema (make-semaphore))
|
||||||
(thread
|
(thread
|
||||||
(λ ()
|
(λ ()
|
||||||
(serve/servlet (planet2-index/basic
|
(serve/servlet (pkg-index/basic
|
||||||
(λ (pkg-name)
|
(λ (pkg-name)
|
||||||
(semaphore-wait okay-to-respond?-sema)
|
(semaphore-wait okay-to-respond?-sema)
|
||||||
(define r (hash-ref *index-ht-1* pkg-name #f))
|
(define r (hash-ref *index-ht-1* pkg-name #f))
|
||||||
|
@ -32,11 +32,11 @@
|
||||||
(thread
|
(thread
|
||||||
(λ ()
|
(λ ()
|
||||||
(shelly-begin
|
(shelly-begin
|
||||||
$ "raco pkg install planet2-test1")))
|
$ "raco pkg install pkg-test1")))
|
||||||
(sleep 1)
|
(sleep 1)
|
||||||
|
|
||||||
;; Step 4: Start the installation request that will fail
|
;; Step 4: Start the installation request that will fail
|
||||||
$ "raco pkg install planet2-test1" =exit> 1
|
$ "raco pkg install pkg-test1" =exit> 1
|
||||||
|
|
||||||
;; Step 5: Free the other one
|
;; Step 5: Free the other one
|
||||||
(semaphore-post okay-to-respond?-sema))))
|
(semaphore-post okay-to-respond?-sema))))
|
|
@ -1,6 +1,6 @@
|
||||||
#lang racket/base
|
#lang racket/base
|
||||||
(require rackunit
|
(require rackunit
|
||||||
planet2/name
|
pkg/name
|
||||||
"util.rkt")
|
"util.rkt")
|
||||||
|
|
||||||
(define-syntax check-equal-values?
|
(define-syntax check-equal-values?
|
|
@ -9,7 +9,7 @@
|
||||||
racket/runtime-path
|
racket/runtime-path
|
||||||
racket/path
|
racket/path
|
||||||
racket/list
|
racket/list
|
||||||
planet2/util
|
pkg/util
|
||||||
"shelly.rkt"
|
"shelly.rkt"
|
||||||
"util.rkt")
|
"util.rkt")
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
"The installation directory is not touched until a package can definitely be installed AND one fail reverts the whole install"
|
"The installation directory is not touched until a package can definitely be installed AND one fail reverts the whole install"
|
||||||
|
|
||||||
;; Step 1. Try to install a package that will fail
|
;; Step 1. Try to install a package that will fail
|
||||||
$ "raco pkg install test-pkgs/planet2-test1.zip test-pkgs/planet2-test1.zip"
|
$ "raco pkg install test-pkgs/pkg-test1.zip test-pkgs/pkg-test1.zip"
|
||||||
=exit> 1
|
=exit> 1
|
||||||
=stderr> #rx"packages conflict"
|
=stderr> #rx"packages conflict"
|
||||||
|
|
||||||
;; Step 2. Try to install safely
|
;; Step 2. Try to install safely
|
||||||
$ "raco pkg install test-pkgs/planet2-test1.zip")))
|
$ "raco pkg install test-pkgs/pkg-test1.zip")))
|
|
@ -14,12 +14,12 @@
|
||||||
(with-fake-root
|
(with-fake-root
|
||||||
(shelly-case
|
(shelly-case
|
||||||
"raco install/update uses raco setup, unless you turn it off (env)"
|
"raco install/update uses raco setup, unless you turn it off (env)"
|
||||||
(putenv "PLT_PLANET2_NOSETUP" "1")
|
(putenv "PLT_PKG_NOSETUP" "1")
|
||||||
$ "raco pkg create --format plt test-pkgs/raco-pkg"
|
$ "raco pkg create --format plt test-pkgs/raco-pkg"
|
||||||
$ "raco raco-pkg" =exit> 1
|
$ "raco raco-pkg" =exit> 1
|
||||||
$ "raco pkg install --no-setup test-pkgs/raco-pkg.plt"
|
$ "raco pkg install --no-setup test-pkgs/raco-pkg.plt"
|
||||||
$ "raco raco-pkg" =exit> 1
|
$ "raco raco-pkg" =exit> 1
|
||||||
(putenv "PLT_PLANET2_NOSETUP" "")))
|
(putenv "PLT_PKG_NOSETUP" "")))
|
||||||
|
|
||||||
(with-fake-root
|
(with-fake-root
|
||||||
(shelly-case
|
(shelly-case
|
79
collects/tests/pkg/tests-remove.rkt
Normal file
79
collects/tests/pkg/tests-remove.rkt
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
#lang racket/base
|
||||||
|
(require rackunit
|
||||||
|
racket/system
|
||||||
|
unstable/debug
|
||||||
|
racket/match
|
||||||
|
(for-syntax racket/base
|
||||||
|
syntax/parse)
|
||||||
|
racket/file
|
||||||
|
racket/runtime-path
|
||||||
|
racket/path
|
||||||
|
racket/list
|
||||||
|
pkg/util
|
||||||
|
"shelly.rkt"
|
||||||
|
"util.rkt")
|
||||||
|
|
||||||
|
(pkg-tests
|
||||||
|
(shelly-begin
|
||||||
|
(initialize-indexes)
|
||||||
|
|
||||||
|
(shelly-case
|
||||||
|
"remove and show"
|
||||||
|
(shelly-case "remove of not installed package fails"
|
||||||
|
$ "raco pkg show -u" =stdout> " [none]\n"
|
||||||
|
$ "raco pkg remove not-there" =exit> 1)
|
||||||
|
(shelly-install "remove test"
|
||||||
|
"test-pkgs/pkg-test1.zip")
|
||||||
|
(shelly-install "remove of dep fails"
|
||||||
|
"test-pkgs/pkg-test1.zip"
|
||||||
|
$ "raco pkg show -u" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\npkg-test1 +[a-f0-9]+ +\\(file .+tests/pkg/test-pkgs/pkg-test1.zip\\)\n"
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test2.zip"
|
||||||
|
$ "raco pkg show -u" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\npkg-test1 +[a-f0-9]+ +\\(file .+tests/pkg/test-pkgs/pkg-test1.zip\\)\npkg-test2 +[a-f0-9]+ +\\(file .+tests/pkg/test-pkgs/pkg-test2.zip\\)\n"
|
||||||
|
$ "raco pkg remove pkg-test1" =exit> 1 =stderr> #rx"pkg-test1 \\(required by: \\(pkg-test2\\)\\)"
|
||||||
|
$ "raco pkg remove pkg-test2"
|
||||||
|
$ "raco pkg show -u" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\npkg-test1 +[a-f0-9]+ +\\(file .+tests/pkg/test-pkgs/pkg-test1.zip\\)\n")
|
||||||
|
(shelly-install "remove of dep can be forced"
|
||||||
|
"test-pkgs/pkg-test1.zip"
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test2.zip"
|
||||||
|
$ "racket -e '(require pkg-test2/contains-dep)'" =exit> 0
|
||||||
|
$ "raco pkg remove --force pkg-test1"
|
||||||
|
$ "racket -e '(require pkg-test2/contains-dep)'" =exit> 1
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test1.zip"
|
||||||
|
$ "raco pkg remove pkg-test2")
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"remove two"
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 1
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test2.zip test-pkgs/pkg-test1.zip" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2/contains-dep)'" =exit> 0
|
||||||
|
$ "raco pkg remove pkg-test1 pkg-test2"
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 1
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1))
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"autoremove"
|
||||||
|
$ "raco pkg config --set indexes http://localhost:9990"
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 1
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1
|
||||||
|
$ "raco pkg install --deps search-auto test-pkgs/pkg-test2.zip" =exit> 0
|
||||||
|
$ "raco pkg show -u" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\npkg-test1\\* +[a-f0-9]+ +\\(pnr pkg-test1\\)\npkg-test2 +[a-f0-9]+ +\\(file .+tests/pkg/test-pkgs/pkg-test2.zip\\)\n"
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test2/contains-dep)'" =exit> 0
|
||||||
|
$ "raco pkg remove pkg-test2"
|
||||||
|
$ "raco pkg show -u" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\npkg-test1\\* +[a-f0-9]+ +\\(pnr pkg-test1\\)\n"
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 0
|
||||||
|
$ "raco pkg remove --auto"
|
||||||
|
$ "raco pkg show -u" =stdout> " [none]\n"
|
||||||
|
$ "racket -e '(require pkg-test1)'" =exit> 1
|
||||||
|
$ "racket -e '(require pkg-test2)'" =exit> 1))
|
||||||
|
(with-fake-root
|
||||||
|
(shelly-case
|
||||||
|
"different scope error"
|
||||||
|
$ "raco pkg install --shared test-pkgs/pkg-test1.zip" =exit> 0
|
||||||
|
$ "raco pkg remove pkg-test1" =exit> 1
|
||||||
|
=stderr> #rx"package installed in a different scope: shared"
|
||||||
|
$ "raco pkg remove --shared pkg-test1")))))
|
100
collects/tests/pkg/tests-update.rkt
Normal file
100
collects/tests/pkg/tests-update.rkt
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
#lang racket/base
|
||||||
|
(require rackunit
|
||||||
|
racket/system
|
||||||
|
unstable/debug
|
||||||
|
racket/match
|
||||||
|
(for-syntax racket/base
|
||||||
|
syntax/parse)
|
||||||
|
racket/file
|
||||||
|
racket/runtime-path
|
||||||
|
racket/path
|
||||||
|
racket/list
|
||||||
|
pkg/util
|
||||||
|
"shelly.rkt"
|
||||||
|
"util.rkt")
|
||||||
|
|
||||||
|
(pkg-tests
|
||||||
|
(shelly-begin
|
||||||
|
(initialize-indexes)
|
||||||
|
|
||||||
|
(shelly-case
|
||||||
|
"update"
|
||||||
|
(shelly-install "local packages can't be updated (file)"
|
||||||
|
"test-pkgs/pkg-test1.zip"
|
||||||
|
$ "raco pkg update pkg-test1" =exit> 1)
|
||||||
|
(shelly-install "local packages can't be updated (directory)"
|
||||||
|
"test-pkgs/pkg-test1/"
|
||||||
|
$ "raco pkg update pkg-test1" =exit> 1)
|
||||||
|
(shelly-wind
|
||||||
|
$ "mkdir -p test-pkgs/update-test"
|
||||||
|
$ "cp -f test-pkgs/pkg-test1.zip test-pkgs/update-test/pkg-test1.zip"
|
||||||
|
$ "cp -f test-pkgs/pkg-test1.zip.CHECKSUM test-pkgs/update-test/pkg-test1.zip.CHECKSUM"
|
||||||
|
(shelly-install* "remote packages can be updated"
|
||||||
|
"http://localhost:9999/update-test/pkg-test1.zip"
|
||||||
|
"pkg-test1"
|
||||||
|
$ "raco pkg update pkg-test1" =exit> 0 =stdout> "No updates available\n"
|
||||||
|
$ "racket -e '(require pkg-test1/update)'" =exit> 42
|
||||||
|
$ "cp -f test-pkgs/pkg-test1-v2.zip test-pkgs/update-test/pkg-test1.zip"
|
||||||
|
$ "cp -f test-pkgs/pkg-test1-v2.zip.CHECKSUM test-pkgs/update-test/pkg-test1.zip.CHECKSUM"
|
||||||
|
$ "raco pkg update pkg-test1" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test1/update)'" =exit> 43)
|
||||||
|
(finally
|
||||||
|
$ "rm -f test-pkgs/update-test/pkg-test1.zip"
|
||||||
|
$ "rm -f test-pkgs/update-test/pkg-test1.zip.CHECKSUM"))
|
||||||
|
|
||||||
|
(shelly-wind
|
||||||
|
$ "mkdir -p test-pkgs/update-test"
|
||||||
|
$ "cp -f test-pkgs/pkg-test1.zip test-pkgs/update-test/pkg-test1.zip"
|
||||||
|
$ "cp -f test-pkgs/pkg-test1.zip.CHECKSUM test-pkgs/update-test/pkg-test1.zip.CHECKSUM"
|
||||||
|
(shelly-install* "update deps"
|
||||||
|
"http://localhost:9999/update-test/pkg-test1.zip"
|
||||||
|
"pkg-test1"
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test2.zip"
|
||||||
|
$ "raco pkg update --update-deps pkg-test2" =exit> 0 =stdout> "No updates available\n"
|
||||||
|
$ "racket -e '(require pkg-test1/update)'" =exit> 42
|
||||||
|
$ "cp -f test-pkgs/pkg-test1-v2.zip test-pkgs/update-test/pkg-test1.zip"
|
||||||
|
$ "cp -f test-pkgs/pkg-test1-v2.zip.CHECKSUM test-pkgs/update-test/pkg-test1.zip.CHECKSUM"
|
||||||
|
$ "raco pkg update --update-deps pkg-test2" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test1/update)'" =exit> 43
|
||||||
|
$ "raco pkg remove pkg-test2")
|
||||||
|
(finally
|
||||||
|
$ "rm -f test-pkgs/update-test/pkg-test1.zip"
|
||||||
|
$ "rm -f test-pkgs/update-test/pkg-test1.zip.CHECKSUM"))
|
||||||
|
|
||||||
|
(shelly-wind
|
||||||
|
$ "mkdir -p test-pkgs/update-test"
|
||||||
|
$ "cp -f test-pkgs/pkg-test1.zip test-pkgs/update-test/pkg-test1.zip"
|
||||||
|
$ "cp -f test-pkgs/pkg-test1.zip.CHECKSUM test-pkgs/update-test/pkg-test1.zip.CHECKSUM"
|
||||||
|
(shelly-install* "update all is default"
|
||||||
|
"http://localhost:9999/update-test/pkg-test1.zip"
|
||||||
|
"pkg-test1"
|
||||||
|
$ "raco pkg install test-pkgs/pkg-test2.zip"
|
||||||
|
$ "raco pkg update -a" =exit> 0 =stdout> "No updates available\n"
|
||||||
|
$ "racket -e '(require pkg-test1/update)'" =exit> 42
|
||||||
|
$ "cp -f test-pkgs/pkg-test1-v2.zip test-pkgs/update-test/pkg-test1.zip"
|
||||||
|
$ "cp -f test-pkgs/pkg-test1-v2.zip.CHECKSUM test-pkgs/update-test/pkg-test1.zip.CHECKSUM"
|
||||||
|
$ "raco pkg update -a" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test1/update)'" =exit> 43
|
||||||
|
$ "raco pkg remove pkg-test2")
|
||||||
|
(finally
|
||||||
|
$ "rm -f test-pkgs/update-test/pkg-test1.zip"
|
||||||
|
$ "rm -f test-pkgs/update-test/pkg-test1.zip.CHECKSUM"))
|
||||||
|
|
||||||
|
(shelly-wind
|
||||||
|
$ "cp -f test-pkgs/pkg-test1.zip test-pkgs/pkg-test1.zip.bak"
|
||||||
|
$ "cp -f test-pkgs/pkg-test1.zip.CHECKSUM test-pkgs/pkg-test1.zip.CHECKSUM.bak"
|
||||||
|
(shelly-install**
|
||||||
|
"named remote packages can be update"
|
||||||
|
"pkg-test1" "pkg-test1"
|
||||||
|
($ "raco pkg config --set indexes http://localhost:9990")
|
||||||
|
($ "raco pkg update pkg-test1" =exit> 0 =stdout> "No updates available\n"
|
||||||
|
$ "racket -e '(require pkg-test1/update)'" =exit> 42
|
||||||
|
$ "cp test-pkgs/pkg-test1-v2.zip test-pkgs/pkg-test1.zip"
|
||||||
|
$ "cp test-pkgs/pkg-test1-v2.zip.CHECKSUM test-pkgs/pkg-test1.zip.CHECKSUM"
|
||||||
|
(initialize-indexes)
|
||||||
|
$ "raco pkg update pkg-test1" =exit> 0
|
||||||
|
$ "racket -e '(require pkg-test1/update)'" =exit> 43))
|
||||||
|
(finally
|
||||||
|
$ "cp -f test-pkgs/pkg-test1.zip.bak test-pkgs/pkg-test1.zip"
|
||||||
|
$ "cp -f test-pkgs/pkg-test1.zip.CHECKSUM.bak test-pkgs/pkg-test1.zip.CHECKSUM"
|
||||||
|
(initialize-indexes))))))
|
|
@ -9,7 +9,7 @@
|
||||||
racket/runtime-path
|
racket/runtime-path
|
||||||
racket/path
|
racket/path
|
||||||
racket/list
|
racket/list
|
||||||
planet2/util
|
pkg/util
|
||||||
"shelly.rkt"
|
"shelly.rkt"
|
||||||
"util.rkt")
|
"util.rkt")
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
racket/runtime-path
|
racket/runtime-path
|
||||||
racket/path
|
racket/path
|
||||||
racket/list
|
racket/list
|
||||||
planet2/util
|
pkg/util
|
||||||
"shelly.rkt")
|
"shelly.rkt")
|
||||||
|
|
||||||
(define-runtime-path test-directory ".")
|
(define-runtime-path test-directory ".")
|
||||||
|
@ -61,8 +61,8 @@
|
||||||
(require "basic-index.rkt")
|
(require "basic-index.rkt")
|
||||||
(define *index-ht-1* (make-hash))
|
(define *index-ht-1* (make-hash))
|
||||||
(define *index-ht-2* (make-hash))
|
(define *index-ht-2* (make-hash))
|
||||||
(define (start-planet2-server index-ht port)
|
(define (start-pkg-server index-ht port)
|
||||||
(serve/servlet (planet2-index/basic
|
(serve/servlet (pkg-index/basic
|
||||||
(λ (pkg-name)
|
(λ (pkg-name)
|
||||||
(define r (hash-ref index-ht pkg-name #f))
|
(define r (hash-ref index-ht pkg-name #f))
|
||||||
(printf "[>server ~a] ~a = ~a\n" port pkg-name r)
|
(printf "[>server ~a] ~a = ~a\n" port pkg-name r)
|
||||||
|
@ -79,10 +79,10 @@
|
||||||
[else
|
[else
|
||||||
(set! servers-on? #t)
|
(set! servers-on? #t)
|
||||||
(with-thread
|
(with-thread
|
||||||
(λ () (start-planet2-server *index-ht-1* 9990))
|
(λ () (start-pkg-server *index-ht-1* 9990))
|
||||||
(λ ()
|
(λ ()
|
||||||
(with-thread
|
(with-thread
|
||||||
(λ () (start-planet2-server *index-ht-2* 9991))
|
(λ () (start-pkg-server *index-ht-2* 9991))
|
||||||
(λ ()
|
(λ ()
|
||||||
(with-thread (λ () (start-file-server))
|
(with-thread (λ () (start-file-server))
|
||||||
t)))))]))
|
t)))))]))
|
||||||
|
@ -114,35 +114,35 @@
|
||||||
(shelly-case
|
(shelly-case
|
||||||
(format "Test installation of ~a" message)
|
(format "Test installation of ~a" message)
|
||||||
pre ...
|
pre ...
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1
|
$ "racket -e '(require pkg-test1)'" =exit> 1
|
||||||
$ (format "raco pkg install ~a" pkg)
|
$ (format "raco pkg install ~a" pkg)
|
||||||
$ "racket -e '(require planet2-test1)'"
|
$ "racket -e '(require pkg-test1)'"
|
||||||
more ...
|
more ...
|
||||||
$ (format "raco pkg remove ~a" rm-pkg)
|
$ (format "raco pkg remove ~a" rm-pkg)
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1)))
|
$ "racket -e '(require pkg-test1)'" =exit> 1)))
|
||||||
|
|
||||||
(define-syntax-rule (shelly-install* message pkg rm-pkg more ...)
|
(define-syntax-rule (shelly-install* message pkg rm-pkg more ...)
|
||||||
(shelly-install** message pkg rm-pkg () (more ...)))
|
(shelly-install** message pkg rm-pkg () (more ...)))
|
||||||
|
|
||||||
(define-syntax-rule (shelly-install message pkg more ...)
|
(define-syntax-rule (shelly-install message pkg more ...)
|
||||||
(shelly-install* message pkg "planet2-test1" more ...))
|
(shelly-install* message pkg "pkg-test1" more ...))
|
||||||
|
|
||||||
(define (initialize-indexes)
|
(define (initialize-indexes)
|
||||||
(hash-set! *index-ht-1* "planet2-test1"
|
(hash-set! *index-ht-1* "pkg-test1"
|
||||||
(hasheq 'checksum
|
(hasheq 'checksum
|
||||||
(file->string "test-pkgs/planet2-test1.zip.CHECKSUM")
|
(file->string "test-pkgs/pkg-test1.zip.CHECKSUM")
|
||||||
'source
|
'source
|
||||||
"http://localhost:9999/planet2-test1.zip"))
|
"http://localhost:9999/pkg-test1.zip"))
|
||||||
|
|
||||||
(hash-set! *index-ht-1* "planet2-test2"
|
(hash-set! *index-ht-1* "pkg-test2"
|
||||||
(hasheq 'checksum
|
(hasheq 'checksum
|
||||||
(file->string "test-pkgs/planet2-test2.zip.CHECKSUM")
|
(file->string "test-pkgs/pkg-test2.zip.CHECKSUM")
|
||||||
'source
|
'source
|
||||||
"http://localhost:9999/planet2-test2.zip"))
|
"http://localhost:9999/pkg-test2.zip"))
|
||||||
(hash-set! *index-ht-2* "planet2-test2-snd"
|
(hash-set! *index-ht-2* "pkg-test2-snd"
|
||||||
(hasheq 'checksum
|
(hasheq 'checksum
|
||||||
(file->string "test-pkgs/planet2-test2.zip.CHECKSUM")
|
(file->string "test-pkgs/pkg-test2.zip.CHECKSUM")
|
||||||
'source
|
'source
|
||||||
"http://localhost:9999/planet2-test2.zip")))
|
"http://localhost:9999/pkg-test2.zip")))
|
||||||
|
|
||||||
(provide (all-defined-out))
|
(provide (all-defined-out))
|
|
@ -1,4 +0,0 @@
|
||||||
#lang racket/base
|
|
||||||
|
|
||||||
(printf "planet2-test1/main loaded\n")
|
|
||||||
(exit 0)
|
|
|
@ -1,4 +0,0 @@
|
||||||
#lang racket/base
|
|
||||||
|
|
||||||
(printf "planet2-test1/main loaded\n")
|
|
||||||
(exit 0)
|
|
|
@ -1,4 +0,0 @@
|
||||||
#lang racket/base
|
|
||||||
|
|
||||||
(printf "planet2-test1-staging/a loaded\n")
|
|
||||||
(exit 0)
|
|
|
@ -1,4 +0,0 @@
|
||||||
#lang racket/base
|
|
||||||
|
|
||||||
(printf "planet2-test1/main loaded\n")
|
|
||||||
(exit 0)
|
|
|
@ -1,4 +0,0 @@
|
||||||
#lang racket/base
|
|
||||||
|
|
||||||
(printf "planet2-test1/main loaded\n")
|
|
||||||
(exit 0)
|
|
|
@ -1,3 +0,0 @@
|
||||||
#lang setup/infotab
|
|
||||||
|
|
||||||
(define deps (list "planet2-test1"))
|
|
|
@ -1,3 +0,0 @@
|
||||||
#lang racket
|
|
||||||
(require planet2-test1)
|
|
||||||
(exit 0)
|
|
|
@ -1,4 +0,0 @@
|
||||||
#lang racket/base
|
|
||||||
|
|
||||||
(printf "planet2-test2/main loaded\n")
|
|
||||||
(exit 0)
|
|
|
@ -1,72 +0,0 @@
|
||||||
#lang racket/base
|
|
||||||
(require rackunit
|
|
||||||
racket/system
|
|
||||||
unstable/debug
|
|
||||||
racket/match
|
|
||||||
(for-syntax racket/base
|
|
||||||
syntax/parse)
|
|
||||||
racket/file
|
|
||||||
racket/runtime-path
|
|
||||||
racket/path
|
|
||||||
racket/list
|
|
||||||
planet2/util
|
|
||||||
"shelly.rkt"
|
|
||||||
"util.rkt")
|
|
||||||
|
|
||||||
(pkg-tests
|
|
||||||
(shelly-begin
|
|
||||||
(initialize-indexes)
|
|
||||||
|
|
||||||
(shelly-case
|
|
||||||
"checksums"
|
|
||||||
$ "test -f test-pkgs/planet2-test1.zip"
|
|
||||||
$ "cp -f test-pkgs/planet2-test1.zip test-pkgs/planet2-test1-bad-checksum.zip"
|
|
||||||
$ "test -f test-pkgs/planet2-test1-conflict.zip.CHECKSUM"
|
|
||||||
$ "cp -f test-pkgs/planet2-test1-conflict.zip.CHECKSUM test-pkgs/planet2-test1-bad-checksum.zip.CHECKSUM"
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"checksums are checked if present (local)"
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1
|
|
||||||
$ "raco pkg install test-pkgs/planet2-test1-bad-checksum.zip" =exit> 1
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1))
|
|
||||||
$ "cp -f test-pkgs/planet2-test1.zip test-pkgs/planet2-test1-no-checksum.zip"
|
|
||||||
|
|
||||||
(shelly-install* "checksums are ignored if missing by default (local)"
|
|
||||||
"test-pkgs/planet2-test1-no-checksum.zip"
|
|
||||||
"planet2-test1-no-checksum")
|
|
||||||
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"checksums are checked (remote, indexed)"
|
|
||||||
(hash-set!
|
|
||||||
*index-ht-1* "planet2-test1"
|
|
||||||
(hasheq 'checksum
|
|
||||||
(file->string "test-pkgs/planet2-test1-bad-checksum.zip.CHECKSUM")
|
|
||||||
'source
|
|
||||||
"http://localhost:9999/planet2-test1-bad-checksum.zip"))
|
|
||||||
$ "raco pkg config --set indexes http://localhost:9990 http://localhost:9991"
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1
|
|
||||||
$ "raco pkg install planet2-test1" =exit> 1
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1))
|
|
||||||
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"checksums are checked (remote)"
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1
|
|
||||||
$ "raco pkg install http://localhost:9999/planet2-test1-bad-checksum.zip" =exit> 1
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1))
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"checksums are required by default remotely (remote)"
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1
|
|
||||||
$ "raco pkg install http://localhost:9999/planet2-test1-no-checksum.zip" =exit> 1
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1))
|
|
||||||
(shelly-install* "but, bad checksums can be ignored (local)"
|
|
||||||
"--ignore-checksums test-pkgs/planet2-test1-bad-checksum.zip"
|
|
||||||
"planet2-test1-bad-checksum")
|
|
||||||
(shelly-install* "but, bad checksums can be ignored (remote)"
|
|
||||||
"--ignore-checksums http://localhost:9999/planet2-test1-bad-checksum.zip"
|
|
||||||
"planet2-test1-bad-checksum")
|
|
||||||
(shelly-install* "but, checksums can be missing if ignored (remote)"
|
|
||||||
"--ignore-checksums http://localhost:9999/planet2-test1-no-checksum.zip"
|
|
||||||
"planet2-test1-no-checksum"))))
|
|
|
@ -1,65 +0,0 @@
|
||||||
#lang racket/base
|
|
||||||
(require rackunit
|
|
||||||
racket/system
|
|
||||||
unstable/debug
|
|
||||||
racket/match
|
|
||||||
(for-syntax racket/base
|
|
||||||
syntax/parse)
|
|
||||||
racket/file
|
|
||||||
racket/runtime-path
|
|
||||||
racket/path
|
|
||||||
racket/list
|
|
||||||
planet2/util
|
|
||||||
"shelly.rkt"
|
|
||||||
"util.rkt")
|
|
||||||
|
|
||||||
(pkg-tests
|
|
||||||
(shelly-begin
|
|
||||||
(initialize-indexes)
|
|
||||||
|
|
||||||
$ "raco pkg create --format plt test-pkgs/planet2-test1/"
|
|
||||||
$ "raco pkg create --format plt test-pkgs/planet2-test1-not-conflict/"
|
|
||||||
(shelly-install "only modules are considered for conflicts"
|
|
||||||
"test-pkgs/planet2-test1.plt"
|
|
||||||
$ "raco pkg install test-pkgs/planet2-test1-not-conflict.plt")
|
|
||||||
|
|
||||||
(shelly-case
|
|
||||||
"conflicts"
|
|
||||||
(shelly-install "double install fails" "test-pkgs/planet2-test1.zip"
|
|
||||||
$ "raco pkg install test-pkgs/planet2-test1.zip" =exit> 1)
|
|
||||||
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"conflicts with racket fail"
|
|
||||||
$ "test -f test-pkgs/racket-conflict.tgz"
|
|
||||||
$ "raco pkg install test-pkgs/racket-conflict.tgz" =exit> 1))
|
|
||||||
|
|
||||||
(shelly-install "conflicts are caught" "test-pkgs/planet2-test1.zip"
|
|
||||||
$ "test -f test-pkgs/planet2-test1-conflict.zip"
|
|
||||||
$ "raco pkg install test-pkgs/planet2-test1-conflict.zip" =exit> 1)
|
|
||||||
|
|
||||||
(shelly-install "conflicts are caught across sharing modes" "test-pkgs/planet2-test1.zip"
|
|
||||||
$ "test -f test-pkgs/planet2-test1-conflict.zip"
|
|
||||||
$ "raco pkg install -s test-pkgs/planet2-test1-conflict.zip" =exit> 1)
|
|
||||||
|
|
||||||
(shelly-wind
|
|
||||||
$ "cp -r test-pkgs/planet2-test1 test-pkgs/planet2-test1-linking"
|
|
||||||
(shelly-install* "conflicts are caught, even with a link"
|
|
||||||
"--link test-pkgs/planet2-test1-linking"
|
|
||||||
"planet2-test1-linking"
|
|
||||||
$ "test -f test-pkgs/planet2-test1-conflict.zip"
|
|
||||||
$ "raco pkg install test-pkgs/planet2-test1-conflict.zip" =exit> 1)
|
|
||||||
(finally
|
|
||||||
$ "rm -fr test-pkgs/planet2-test1-linking"))
|
|
||||||
|
|
||||||
(shelly-install "conflicts can be forced" "test-pkgs/planet2-test1.zip"
|
|
||||||
$ "racket -e '(require planet2-test1/conflict)'" =exit> 42
|
|
||||||
$ "raco pkg install --force test-pkgs/planet2-test1-conflict.zip" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test1/conflict)'" =exit> 42
|
|
||||||
$ "raco pkg remove planet2-test1-conflict")
|
|
||||||
|
|
||||||
(shelly-install "conflicts can be forced" "test-pkgs/planet2-test1-conflict.zip"
|
|
||||||
$ "racket -e '(require planet2-test1/conflict)'" =exit> 43
|
|
||||||
$ "raco pkg install --force test-pkgs/planet2-test1.zip" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test1/conflict)'" =exit> 43
|
|
||||||
$ "raco pkg remove planet2-test1-conflict"))))
|
|
|
@ -1,119 +0,0 @@
|
||||||
#lang racket/base
|
|
||||||
(require rackunit
|
|
||||||
racket/system
|
|
||||||
unstable/debug
|
|
||||||
racket/match
|
|
||||||
(for-syntax racket/base
|
|
||||||
syntax/parse)
|
|
||||||
racket/file
|
|
||||||
racket/runtime-path
|
|
||||||
racket/path
|
|
||||||
racket/list
|
|
||||||
planet2/util
|
|
||||||
"shelly.rkt"
|
|
||||||
"util.rkt")
|
|
||||||
|
|
||||||
(pkg-tests
|
|
||||||
(shelly-begin
|
|
||||||
(initialize-indexes)
|
|
||||||
|
|
||||||
(shelly-case
|
|
||||||
"dependencies"
|
|
||||||
|
|
||||||
$ "test -f test-pkgs/planet2-test2.zip"
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"local - fail (default)"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1
|
|
||||||
$ "raco pkg install test-pkgs/planet2-test2.zip" =exit> 1
|
|
||||||
$ "raco pkg install test-pkgs/planet2-test1.zip" =exit> 0
|
|
||||||
$ "raco pkg install test-pkgs/planet2-test2.zip" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2/contains-dep)'" =exit> 0
|
|
||||||
$ "raco pkg remove planet2-test2"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1))
|
|
||||||
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"local - looks at all packages given on cmdline"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1
|
|
||||||
$ "raco pkg install test-pkgs/planet2-test2.zip test-pkgs/planet2-test1.zip" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2/contains-dep)'" =exit> 0
|
|
||||||
$ "raco pkg remove planet2-test2"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1))
|
|
||||||
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"local - fail"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1
|
|
||||||
$ "raco pkg install --deps fail test-pkgs/planet2-test2.zip" =exit> 1
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1))
|
|
||||||
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"local - force"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1
|
|
||||||
$ "raco pkg install --deps force test-pkgs/planet2-test2.zip"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2/contains-dep)'" =exit> 1
|
|
||||||
$ "raco pkg remove planet2-test2"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1))
|
|
||||||
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"local - search-ask [y]"
|
|
||||||
$ "raco pkg config --set indexes http://localhost:9990"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1
|
|
||||||
$ "raco pkg install --deps search-ask test-pkgs/planet2-test2.zip" =exit> 0 <input= "y\n"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2/contains-dep)'" =exit> 0
|
|
||||||
$ "raco pkg remove planet2-test2"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1))
|
|
||||||
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"local - search-ask []"
|
|
||||||
$ "raco pkg config --set indexes http://localhost:9990"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1
|
|
||||||
$ "raco pkg install --deps search-ask test-pkgs/planet2-test2.zip" =exit> 0 <input= "\n"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2/contains-dep)'" =exit> 0
|
|
||||||
$ "raco pkg remove planet2-test2"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1))
|
|
||||||
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"local - search-ask [n]"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1
|
|
||||||
$ "raco pkg install --deps search-ask test-pkgs/planet2-test2.zip" =exit> 1 <input= "n\n"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1))
|
|
||||||
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"local - search-auto"
|
|
||||||
$ "raco pkg config --set indexes http://localhost:9990"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1
|
|
||||||
$ "raco pkg install --deps search-auto test-pkgs/planet2-test2.zip" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2/contains-dep)'" =exit> 0
|
|
||||||
$ "raco pkg remove planet2-test2"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1))
|
|
||||||
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"remote - search-ask (default) [y]"
|
|
||||||
$ "raco pkg config --set indexes http://localhost:9990"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1
|
|
||||||
$ "raco pkg install planet2-test2" =exit> 0 <input= "y\n"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2/contains-dep)'" =exit> 0
|
|
||||||
$ "raco pkg remove planet2-test2"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1))
|
|
||||||
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"remote - fail"
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1
|
|
||||||
$ "raco pkg install --deps fail planet2-test2" =exit> 1
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1)))))
|
|
|
@ -1,79 +0,0 @@
|
||||||
#lang racket/base
|
|
||||||
(require rackunit
|
|
||||||
racket/system
|
|
||||||
unstable/debug
|
|
||||||
racket/match
|
|
||||||
(for-syntax racket/base
|
|
||||||
syntax/parse)
|
|
||||||
racket/file
|
|
||||||
racket/runtime-path
|
|
||||||
racket/path
|
|
||||||
racket/list
|
|
||||||
planet2/util
|
|
||||||
"shelly.rkt"
|
|
||||||
"util.rkt")
|
|
||||||
|
|
||||||
(pkg-tests
|
|
||||||
(shelly-begin
|
|
||||||
(initialize-indexes)
|
|
||||||
|
|
||||||
(shelly-case
|
|
||||||
"remove and show"
|
|
||||||
(shelly-case "remove of not installed package fails"
|
|
||||||
$ "raco pkg show -u" =stdout> " [none]\n"
|
|
||||||
$ "raco pkg remove not-there" =exit> 1)
|
|
||||||
(shelly-install "remove test"
|
|
||||||
"test-pkgs/planet2-test1.zip")
|
|
||||||
(shelly-install "remove of dep fails"
|
|
||||||
"test-pkgs/planet2-test1.zip"
|
|
||||||
$ "raco pkg show -u" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\nplanet2-test1 +[a-f0-9]+ +\\(file .+tests/planet2/test-pkgs/planet2-test1.zip\\)\n"
|
|
||||||
$ "raco pkg install test-pkgs/planet2-test2.zip"
|
|
||||||
$ "raco pkg show -u" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\nplanet2-test1 +[a-f0-9]+ +\\(file .+tests/planet2/test-pkgs/planet2-test1.zip\\)\nplanet2-test2 +[a-f0-9]+ +\\(file .+tests/planet2/test-pkgs/planet2-test2.zip\\)\n"
|
|
||||||
$ "raco pkg remove planet2-test1" =exit> 1 =stderr> #rx"planet2-test1 \\(required by: \\(planet2-test2\\)\\)"
|
|
||||||
$ "raco pkg remove planet2-test2"
|
|
||||||
$ "raco pkg show -u" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\nplanet2-test1 +[a-f0-9]+ +\\(file .+tests/planet2/test-pkgs/planet2-test1.zip\\)\n")
|
|
||||||
(shelly-install "remove of dep can be forced"
|
|
||||||
"test-pkgs/planet2-test1.zip"
|
|
||||||
$ "raco pkg install test-pkgs/planet2-test2.zip"
|
|
||||||
$ "racket -e '(require planet2-test2/contains-dep)'" =exit> 0
|
|
||||||
$ "raco pkg remove --force planet2-test1"
|
|
||||||
$ "racket -e '(require planet2-test2/contains-dep)'" =exit> 1
|
|
||||||
$ "raco pkg install test-pkgs/planet2-test1.zip"
|
|
||||||
$ "raco pkg remove planet2-test2")
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"remove two"
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1
|
|
||||||
$ "raco pkg install test-pkgs/planet2-test2.zip test-pkgs/planet2-test1.zip" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2/contains-dep)'" =exit> 0
|
|
||||||
$ "raco pkg remove planet2-test1 planet2-test2"
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1))
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"autoremove"
|
|
||||||
$ "raco pkg config --set indexes http://localhost:9990"
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1
|
|
||||||
$ "raco pkg install --deps search-auto test-pkgs/planet2-test2.zip" =exit> 0
|
|
||||||
$ "raco pkg show -u" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\nplanet2-test1\\* +[a-f0-9]+ +\\(pnr planet2-test1\\)\nplanet2-test2 +[a-f0-9]+ +\\(file .+tests/planet2/test-pkgs/planet2-test2.zip\\)\n"
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 0
|
|
||||||
$ "racket -e '(require planet2-test2/contains-dep)'" =exit> 0
|
|
||||||
$ "raco pkg remove planet2-test2"
|
|
||||||
$ "raco pkg show -u" =stdout> #rx"Package\\[\\*=auto\\] +Checksum +Source\nplanet2-test1\\* +[a-f0-9]+ +\\(pnr planet2-test1\\)\n"
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 0
|
|
||||||
$ "raco pkg remove --auto"
|
|
||||||
$ "raco pkg show -u" =stdout> " [none]\n"
|
|
||||||
$ "racket -e '(require planet2-test1)'" =exit> 1
|
|
||||||
$ "racket -e '(require planet2-test2)'" =exit> 1))
|
|
||||||
(with-fake-root
|
|
||||||
(shelly-case
|
|
||||||
"different scope error"
|
|
||||||
$ "raco pkg install --shared test-pkgs/planet2-test1.zip" =exit> 0
|
|
||||||
$ "raco pkg remove planet2-test1" =exit> 1
|
|
||||||
=stderr> #rx"package installed in a different scope: shared"
|
|
||||||
$ "raco pkg remove --shared planet2-test1")))))
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user