     (dolist (spec straight-profiles)
       (cl-destructuring-bind (profile . versions-lockfile) spec
         (let ((versions-alist nil)
-              (lockfile-directory (straight--dir "versions"))
-              (lockfile-path (straight--file "versions" versions-lockfile)))
+              (lockfile-path (straight--versions-file versions-lockfile)))
           (straight--map-repos
            (lambda (recipe)
              (straight--with-plist recipe

      (unless (gethash package straight--profile-cache)
        (remhash package straight--build-cache)))
    (dolist (package (straight--directory-files
                      (straight--dir "build")))
      ;; So, let me tell you a funny story. Once upon a time I didn't
      ;; have this `string-match-p' condition. But Emacs helpfully
      ;; returns . and .. from the call to `directory-files',

    (setq args (append (list "." "-name" ".git" "-prune")
                       args))
    (with-temp-buffer
      (let ((default-directory (straight--repos-dir)))
        (let ((return (apply #'call-process "find" nil '(t t) nil args)))
          ;; find(1) always returns zero unless there was some kind of
          ;; error.
