From 5c5bc86915b7c373104b60cbe9f931705270263d Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 7 Jul 2014 09:41:19 +0100 Subject: [PATCH] raco setup: make `--check-pkg-deps` require dependency declarations By default, `raco setup` skips checking dependencies when a package declares no dependencies. Make `--check-pkg-deps` check in that case, too. --- .../racket-doc/scribblings/raco/setup.scrbl | 11 +++++++---- racket/collects/setup/private/pkg-deps.rkt | 5 +++-- racket/collects/setup/setup-core.rkt | 3 ++- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/pkgs/racket-pkgs/racket-doc/scribblings/raco/setup.scrbl b/pkgs/racket-pkgs/racket-doc/scribblings/raco/setup.scrbl index e036d110b2..777de3c098 100644 --- a/pkgs/racket-pkgs/racket-doc/scribblings/raco/setup.scrbl +++ b/pkgs/racket-pkgs/racket-doc/scribblings/raco/setup.scrbl @@ -180,13 +180,16 @@ flags: package-level dependency declarations, whether modules are declared by multiple packages, and whether package version dependencies are satisfied. Dependency checking uses compiled bytecode, associated - @filepath{.dep} files, and the documentation index. Dependency - checking is disabled by default if any collection is specified for - @exec{raco setup}.} + @filepath{.dep} files, and the documentation index. Unless + @DFlag{check-pkg-deps} is specified, dependency checking is disabled + if any collection is specified for @exec{raco setup}, and missing + dependencies are not treated as an error for a package that has no + dependency declarations.} @item{@DFlag{check-pkg-deps} --- checks package dependencies (unless explicitly disabled) even when specific collections are provided to - @exec{raco setup}. Currently, dependency checking related to + @exec{raco setup}, and even for packages that have no + dependency declarations. Currently, dependency checking related to documentation cross-referencing is constrained to documents among specified collections.} diff --git a/racket/collects/setup/private/pkg-deps.rkt b/racket/collects/setup/private/pkg-deps.rkt index ef3588e3f0..9c20bd95a8 100644 --- a/racket/collects/setup/private/pkg-deps.rkt +++ b/racket/collects/setup/private/pkg-deps.rkt @@ -29,7 +29,8 @@ coll-modes setup-printf setup-fprintf check-unused? fix? verbose? - all-pkgs-lazily?) + all-pkgs-lazily? + must-declare-deps?) ;; Tables (define missing (make-hash)) (define skip-pkgs (make-hash)) @@ -128,7 +129,7 @@ (and i (i 'version (lambda () #f))))))) (define vers (cdr deps+build-deps+vers)) (define deps+build-deps (car deps+build-deps+vers)) - (unless deps+build-deps + (unless (or deps+build-deps must-declare-deps?) (hash-set! skip-pkgs pkg #t) (setup-printf #f "package declares no dependencies: ~s" pkg)) (define deps+vers (if deps+build-deps diff --git a/racket/collects/setup/setup-core.rkt b/racket/collects/setup/setup-core.rkt index 57197ead2d..9a4c09ae9c 100644 --- a/racket/collects/setup/setup-core.rkt +++ b/racket/collects/setup/setup-core.rkt @@ -1805,7 +1805,8 @@ (check-unused-dependencies) (fix-dependencies) (verbose) - (not no-specific-collections?)) + (not no-specific-collections?) + (always-check-dependencies)) (set! exit-code 1))) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;