Replace pre-installed rackunit with git source

28 views
Skip to first unread message

zeRusski

unread,
Jul 22, 2020, 9:02:57 AM7/22/20
to Racket Users
Hi all. Latest commit to rackunit haven't made it into 7.7 so I attempted to replace the rackunit installed as part of the distribution in racket/share/pkgs by cloning the repo then:
  cd rackunit
  raco pkg update --force --type dir

  raco pkg show
would show the `rackunit` linked as expected, but the pre-installed looked like any require would still go to share/pkgs. Not sure why. Btw is there some API call to check which file was used to find a module?

Tbh having read racket/build.md - section 3.2 I expected this to just work. Perhaps I misunderstood it. I thought `extra-pkgs` dir wasn't anything special.

I then tried to remove the link, then remove the preinstalled share/pkg/rackunit-*, then link from local checkout again
  raco pkg remove --force rackunit-doc rackunit-test rackunit-typed rackunit-gui etc
  cd rackunit
  raco pkg install

Now any setup steps appear to fail complaining:
  module path: rackunit
  path: /Users/russki/Code/racket-cs/pkgs/racket-index/rackunit/main.rkt

Is this some docs index missing rackunit deps?

Is there a way to repair my racket installation and have rackunit linked from source? Or should I just wipe racket and start over?

Sam Tobin-Hochstadt

unread,
Jul 22, 2020, 2:09:46 PM7/22/20
to zeRusski, Racket Users
To figure out where things are, I recommend the `raco fc` command,
which is in the `raco-find-collection` package.

Almost certainly what went wrong is that you installed the cloned
`rackunit` directory as a package. Instead, you need to install all
the individual sub-directories as packages. To fix that, first remove
the installed `rackunit` package, and then just re-install the regular
`rackunit`.

To accomplish your original goal, you should use `raco pkg update
--clone rackunit` in whatever directory you want to clone rackunit
(such as `extra-pkgs`). If that complains about `rackunit` not having
a git repository as source, then you should first do `racket pkg
update --lookup --catalog https://pkgs.racket-lang.org rackunit` to
switch from the 7.7 catalog to the pkgs.racket-lang.org one.

Sam
> --
> You received this message because you are subscribed to the Google Groups "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to racket-users...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/62196fc3-d2d6-4ac4-8d70-7b38d068027do%40googlegroups.com.

Ben Greenman

unread,
Jul 22, 2020, 10:04:50 PM7/22/20
to Racket Users
On 7/22/20, Sam Tobin-Hochstadt <sa...@cs.indiana.edu> wrote:
> To figure out where things are, I recommend the `raco fc` command,
> which is in the `raco-find-collection` package.
>
> Almost certainly what went wrong is that you installed the cloned
> `rackunit` directory as a package. Instead, you need to install all
> the individual sub-directories as packages. To fix that, first remove
> the installed `rackunit` package, and then just re-install the regular
> `rackunit`.
>
> To accomplish your original goal, you should use `raco pkg update
> --clone rackunit` in whatever directory you want to clone rackunit
> (such as `extra-pkgs`). If that complains about `rackunit` not having
> a git repository as source, then you should first do `racket pkg
> update --lookup --catalog https://pkgs.racket-lang.org rackunit` to
> switch from the 7.7 catalog to the pkgs.racket-lang.org one.
>
> Sam
>

You might also be able to force-remove again, then install everything
you just killed.

$ raco pkg remove --force rackunit-doc rackunit-test rackunit-typed
rackunit-gui etc
$ raco pkg install ./rackunit-doc ./rackunit-test ./rackunit-typed
./rackunit-gui etc

zeRusski

unread,
Jul 23, 2020, 4:54:38 AM7/23/20
to Racket Users
Sam thank you. Your suggestions mostly worked. At least I was able to unbork my installation. Steps taken:
- install the regular `rackunit`
⇒ still reported a bunch of errors re missing typet/rackunit
- raco pkg update --clone extra-pkgs/rackunit
⇒ took its sweet time, also produce similar errors

Code runs and appear to pull the right rackunit collection and I no longer see "regular" rackunit-* inside share/pkgs.

Now about that typed/rackunit module that other dependents fail to locate. That's def part of rackunit repo which is installed as cloned and indeed rackunit/rackunit-typed declare itself as part of the `typed` collection, so `typed/rackunit` should be available and yet:
- raco fc -i typed/rackunit
⇒ fails to find it

Not a blocker for me but somewhat surprising.

Thank you again for your help Sam. 
Ditto Ben Greenman


On Wednesday, 22 July 2020 19:09:46 UTC+1, Sam Tobin-Hochstadt wrote:
To figure out where things are, I recommend the `raco fc` command,
which is in the `raco-find-collection` package.

Almost certainly what went wrong is that you installed the cloned
`rackunit` directory as a package. Instead, you need to install all
the individual sub-directories as packages. To fix that, first remove
the installed `rackunit` package, and then just re-install the regular
`rackunit`.

To accomplish your original goal, you should use `raco pkg update
--clone rackunit` in whatever directory you want to clone rackunit
(such as `extra-pkgs`). If that complains about `rackunit` not having
a git repository as source, then you should first do `racket pkg
update --lookup --catalog https://pkgs.racket-lang.org rackunit` to
switch from the 7.7 catalog to the pkgs.racket-lang.org one.

Sam

On Wed, Jul 22, 2020 at 9:03 AM zeRusski <vladil...@gmail.com> wrote:
>
> Hi all. Latest commit to rackunit haven't made it into 7.7 so I attempted to replace the rackunit installed as part of the distribution in racket/share/pkgs by cloning the repo then:
>   cd rackunit
>   raco pkg update --force --type dir
>
>   raco pkg show
> would show the `rackunit` linked as expected, but the pre-installed looked like any require would still go to share/pkgs. Not sure why. Btw is there some API call to check which file was used to find a module?
>
> Tbh having read racket/build.md - section 3.2 I expected this to just work. Perhaps I misunderstood it. I thought `extra-pkgs` dir wasn't anything special.
>
> I then tried to remove the link, then remove the preinstalled share/pkg/rackunit-*, then link from local checkout again
>   raco pkg remove --force rackunit-doc rackunit-test rackunit-typed rackunit-gui etc
>   cd rackunit
>   raco pkg install
>
> Now any setup steps appear to fail complaining:
>   module path: rackunit
>   path: /Users/russki/Code/racket-cs/pkgs/racket-index/rackunit/main.rkt
>
> Is this some docs index missing rackunit deps?
>
> Is there a way to repair my racket installation and have rackunit linked from source? Or should I just wipe racket and start over?
>
> --
> You received this message because you are subscribed to the Google Groups "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to racket...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages