Package install conflicts on the Racket package catalog

73 views
Skip to first unread message

unlimitedscolobb

unread,
May 1, 2021, 5:56:23 AM5/1/21
to Racket Users
Hello,

I checked my package https://pkgd.racket-lang.org/pkgn/package/typed-compose recently and noticed that it listed some "Conflicts" in the field "Most recent build results".  On the other hand, the separate field "Conflicts" slightly above says "None".

When I open the log shown in "Most recent build results" (attached) it starts with the line "Install conflicts:", which as far as I get are not the same thing as "Package Conflicts" explained here in the manual: https://docs.racket-lang.org/pkg/Package_Concepts.html#(part._concept~3aconflicts) .

What are install conflicts?  Should I fix them?  What is the command that generates that log?

(typed-compose also used to have an undeclared dependency, which I have just fixed by updating it's info.rkt.)

-
Sergiu
typed-compose-conflicts.txt

Jay McCarthy

unread,
May 1, 2021, 9:23:47 AM5/1/21
to unlimitedscolobb, Racket Users
Howdy Sergiu,

The conflicts file you link to has all the conflicts for everything
that `pkg-build` builds. The line relevant for you is:

```
doc "manual":
bystroTeX cbor print-debug ratchet riff simply-scheme typed-compose
```

The solution is to rename your manual from `manual.scrbl` to
`typed-compose.scrbl`. Scribble outputs are in a kind of "global"
namespace.

Jay

--
Jay McCarthy
Associate Professor @ CS @ UMass Lowell
http://jeapostrophe.github.io
Vincit qui se vincit.


--
Jay McCarthy
Associate Professor @ CS @ UMass Lowell
http://jeapostrophe.github.io
Vincit qui se vincit.
> --
> 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/03bfa876-6418-41a2-a37a-5c39ad13121cn%40googlegroups.com.

unlimitedscolobb

unread,
May 2, 2021, 9:59:01 AM5/2/21
to Racket Users
Hi Jay,

Thanks a lot for helping me read that file!

I didn't know Scribble outputs shared the same namespace.  I renamed the documentation file to typed-compose.scrbl as you suggest and I'm waiting for build reports from the package catalog.

In fact, I hesitated between manual.scrbl and typed-compose.scrbl initially, and couldn't find a reason to prefer one over the other. Now I have a reason :-)

-
Sergiu

Siddhartha Kasivajhula

unread,
May 5, 2021, 3:16:14 PM5/5/21
to unlimitedscolobb, Racket Users
Hi,
I'd like to report that I'm seeing conflicts being reported on my packages as well. I haven't made recent changes to these packages so the conflicts seem to have appeared spontaneously.

Clicking into the "conflicts" results in a 404.

Here, clicking into "conflicts" seems to implicate, believe it or not, the `mischief` package, of which it appears there are two separate versions on the package index. This does seem rather mischievous, and maybe raco doesn't like it? Yet, it doesn't look like either mischief or mischief-dev have been changed in years, so I'm not sure why it should complain now about these longstanding shenanigans.

Clicking into "conflicts" once again seems to implicate mischief, but mischief isn't even in the dependencies for this package so this just seems unfair!

On other packages that I've uploaded, the conflicts link was a 404.

Similar questions as OP - should I fix something here, for instance by avoiding the mischief dependency? Should mischief itself be updated in some way? Or is this (as seems likely) caused by a recent change in the package index, and if so, how should package authors respond (assuming it isn't a bug)? What to do about the 404s -- e.g. is there a command to generate the conflicts locally?

Thanks,



unlimitedscolobb

unread,
May 5, 2021, 4:08:10 PM5/5/21
to Racket Users
Hi,

I'd like to chime back in and say that renaming manual.rkt to typed-compose.rkt didn't seem to affect much the list of install conflicts for typed-compose.  I also get a lot of conflicts with mischief (but not only), even though typed-compose doesn't depend on it, or doesn't even define names which would be similar to what mischief defines.

That's puzzling.

-
Sergiu

Sam Tobin-Hochstadt

unread,
May 5, 2021, 4:38:03 PM5/5/21
to unlimitedscolobb, Racket Users
I think there's two things you're seeing.

1. The results hadn't yet updated for your typed-compose change. I no
longer see a conflict here: https://pkg-build.racket-lang.org/
2. The conflicts page is for _all_ the packages in the whole package
catalog. That's why it always mentions mischief.

The issue for on-macro and social-contract is that they both have a
file tests/private/util.rkt, which means they can't be installed at
the same time.

Finally, mischief has that issue intentionally -- there are two
versions of it on the pkg server, one of which is the development
branch. It's true that it hasn't been updated recently, but that's the
idea.

Sam
> To view this discussion on the web visit https://groups.google.com/d/msgid/racket-users/310449db-1450-4043-9d73-c80c95587653n%40googlegroups.com.

Siddhartha Kasivajhula

unread,
May 5, 2021, 5:38:18 PM5/5/21
to Sam Tobin-Hochstadt, unlimitedscolobb, Racket Users
That makes sense. Is there a recommended way to exclude test paths from being part of the package modules? I have a `compile-omit-paths` declaration in the info.rkt file. Since this is structured as a multi-collection package, could it be that these declarations need to be at the package-level info.rkt file instead of the collection-specific one to take effect on the package index? Another option I can think of is to move the `tests` folder which is currently at the package level down to the collection level, might that work?

FTR re: the lazytree package, I assume it's showing conflicts because although it hasn't been changed recently, it depends on the relation package which depends on both on-macro and social-contract, which are in conflict per the above.

Re: mischief, I've encountered some weird errors in the past with building docs, for instance see this comment. I wonder if that's related to the conflicting names.


Robby Findler

unread,
May 5, 2021, 6:35:02 PM5/5/21
to Siddhartha Kasivajhula, Sam Tobin-Hochstadt, unlimitedscolobb, Racket Users
I think the issue is that you should not use "tests/private" as your collection path. You should probably either "tests/my-collection/private" or "my-collection/tests/private" as the name.

Robby


Siddhartha Kasivajhula

unread,
May 5, 2021, 11:06:19 PM5/5/21
to Robby Findler, Sam Tobin-Hochstadt, unlimitedscolobb, Racket Users
Thank you, that helped me understand the issue. I've made the appropriate changes so hopefully that'll do it.

This is reminding me that in python package distribution land, you are able to explicitly indicate which files make it into the package in a file analogous to info.rkt (setup.py, but also MANIFEST.in which allows you to bundle non-source files, I believe). Files besides these simply reside in the repository but don't make it into either source distributions or binaries. This could be a desirable feature to emulate in raco, since it would mean that (1) test modules need not be included as part of a collection even if present in the repo, (2) I've noticed that some Racket packages use a lib/test/docs breakdown with 3 separate packages; this seems non-ideal to me since they need to reside in 3 separate repos even though the non-source repos are essentially metadata (despite being written in full-fledged languages like scribble). By supporting something like a "source-include-paths" info.rkt declaration with a list of paths (similar to compile-omit-paths and test-include-paths), the tests and docs could all reside in the same source repo, without their (necessarily) becoming part of the installed package/collection. Any thoughts on this?


Siddhartha Kasivajhula

unread,
May 5, 2021, 11:14:44 PM5/5/21
to Robby Findler, Sam Tobin-Hochstadt, unlimitedscolobb, Racket Users
Ah looking again, I was mistaken -- lib/test/docs breakdown does not require 3 separate repos. I'll need to take a closer look at how that's set up. Still, the ability to be explicit about package sources could be useful, and may provide a simpler alternative.

Ben Greenman

unread,
May 5, 2021, 11:16:46 PM5/5/21
to Racket Users
On 5/5/21, Siddhartha Kasivajhula <skas...@gmail.com> wrote:
> Thank you, that helped me understand the issue. I've made the appropriate
> changes so hopefully that'll do it.
>
> This is reminding me that in python package distribution land, you are able
> to explicitly indicate which files make it into the package in a file
> analogous to info.rkt (setup.py, but also MANIFEST.in which allows you to
> bundle non-source files, I believe). Files besides these simply reside in
> the repository but don't make it into either source distributions or
> binaries. This could be a desirable feature to emulate in raco, since it
> would mean that (1) test modules need not be included as part of a
> collection even if present in the repo, (2) I've noticed that some Racket
> packages use a lib/test/docs breakdown with 3 separate packages; this seems
> non-ideal to me since they need to reside in 3 separate repos even though
> the non-source repos are essentially metadata (despite being written in
> full-fledged languages like scribble). By supporting something like a
> "source-include-paths" info.rkt declaration with a list of paths (similar
> to compile-omit-paths and test-include-paths), the tests and docs could all
> reside in the same source repo, without their (necessarily) becoming part
> of the installed package/collection. Any thoughts on this?

lib + tests + docs can all live in the same repo. For example:

https://github.com/97jaz/gregor

It does take some effort to get the organization right, but I don't
have any better ideas.

unlimitedscolobb

unread,
May 6, 2021, 3:02:23 PM5/6/21
to Racket Users
Hi Sam,

On Wednesday, May 5, 2021 at 10:38:03 PM UTC+2 Sam Tobin-Hochstadt wrote:
I think there's two things you're seeing.

1. The results hadn't yet updated for your typed-compose change. I no
longer see a conflict here: https://pkg-build.racket-lang.org/

Oh, that's right!  I misread some update dates yesterday and I thought the conflict report was already for the latest version of my code.


2. The conflicts page is for _all_ the packages in the whole package
catalog. That's why it always mentions mischief.


Aaah, now things start to make sense, thank you!
 
The issue for on-macro and social-contract is that they both have a
file tests/private/util.rkt, which means they can't be installed at
the same time.

Finally, mischief has that issue intentionally -- there are two
versions of it on the pkg server, one of which is the development
branch. It's true that it hasn't been updated recently, but that's the
idea.


Got it, thanks!

-
Sergiu
Reply all
Reply to author
Forward
0 new messages