# The doc make the packages fail to build

**URL:** <https://racket.discourse.group/t/the-doc-make-the-packages-fail-to-build/3925>\
**Category:** Questions & Answers\
**Created:** [August 27, 2025, 7:28am UTC](https://racket.discourse.group/t/the-doc-make-the-packages-fail-to-build/3925 "2025-08-27T07:28:49Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![damien\_mattei](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/damien_mattei/32/2706_2.png) [@damien\_mattei](https://racket.discourse.group/u/damien_mattei)\
**Post date:** [August 27, 2025, 7:28am UTC](https://racket.discourse.group/t/the-doc-make-the-packages-fail-to-build/3925/1 "2025-08-27T07:28:49Z")

</div>

Hello,

this is not real errors but now i set :

```scheme
@defmodule[SRFI-105 #:reader]{
This reader package provides the SRFI-105 Curly Infix reader/parser.
}

@defmodule[Scheme+]{
This package provides the Scheme+ language definitions.
}

```

this above in the doc it apparently fail the module build:  
[https://pkg-build.racket-lang.org/server/built/fail/SRFI-105-for-Racket.txt](https://pkg-build.racket-lang.org/server/built/fail/SRFI-105-for-Racket.txt)

[https://pkg-build.racket-lang.org/server/built/fail/Scheme-PLUS-for-Racket.txt](https://pkg-build.racket-lang.org/server/built/fail/Scheme-PLUS-for-Racket.txt)

in fact when installed from github source it show errors but works  
i should perheaps not mention SRFI-105 in doc and it should works

the reality is that now and in future version SRFI-105 will depands of Scheme+ build

and i have no control over the order the package builder build the modules on the server

Regards,

---

<div class="post-metadata">

**Author:** ![mflatt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/mflatt/32/6_2.png) [@mflatt](https://racket.discourse.group/u/mflatt)\
**Post date:** [August 27, 2025, 3:09pm UTC](https://racket.discourse.group/t/the-doc-make-the-packages-fail-to-build/3925/2 "2025-08-27T15:09:57Z")

</div>

I'm not sure I understand the issue. The two packages depend on each other, so they should both declare that dependency. (The dependency declaration for Scheme+ on SRFI-105 appears to be commented out.) Dependency declarations are the way to control the package-build order.

Maybe the concern was about packages being mutually dependent. Although modules cannot be mutually dependent, packages are allowed to be mutually dependent — and then they will be built and installed together.

---

<div class="post-metadata">

**Author:** ![damien\_mattei](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/damien_mattei/32/2706_2.png) [@damien\_mattei](https://racket.discourse.group/u/damien_mattei)\
**Post date:** [August 27, 2025, 4:01pm UTC](https://racket.discourse.group/t/the-doc-make-the-packages-fail-to-build/3925/3 "2025-08-27T16:01:43Z")

</div>

> [@mflatt](#):
>
> I'm not sure I understand the issue. The two packages depend on each other, so they should both declare that dependency. (The dependency declaration for Scheme+ on SRFI-105 appears to be commented out.)

It is normal to be commented , it was in previous version, but perheaps i can try to decomment it (but will make a circular reference)  
The codes works fine , i just changed the unfinished documentation and commited too early. It is true that there sould be 20 lines of code common to the 2 package, to not create circular dependancies (but perheaps as you say ...) that i had duplicated in the 2 modules, not elegant...

> [@mflatt](#):
>
> Although modules cannot be mutually dependent, packages are allowed to be mutually dependent

i just,while writing my reply, provided the common code from Scheme+ and required it in SRFI-105 (and commented the duplicate code in SRFI-105)

> [@mflatt](#):
>
> and then they will be built and installed together.

but even if they build the system report errors in red and i think this result in Fails statut in Racket package system, so i prefer avoid circular reference between package even if they should be allowed.

Get back to the problem: it is only a documentation problem, no real problem in code. It is because i mentioned the SRFI-105 reader in the Scheme+ doc... i do not know what magic do the package manager but it fails because that.

A solution would be to just mention SRFI-105 in text not use in doc , not use some macro that do weird things.

I had commited that in new versions to check this idea.Both for SRFI-105 and Scheme+, just have to wait a few hours what will be the status of packages......

---

<div class="post-metadata">

**Author:** ![mflatt](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/mflatt/32/6_2.png) [@mflatt](https://racket.discourse.group/u/mflatt)\
**Post date:** [August 27, 2025, 4:35pm UTC](https://racket.discourse.group/t/the-doc-make-the-packages-fail-to-build/3925/4 "2025-08-27T16:35:01Z")

</div>

You can make a cross-document reference "indirect", which means that the other document doesn't need to be installed, and a link rendered in local documentation will go to [https://docs.racket-lang.org](https://docs.racket-lang.org) if the target document isn't installed.

Only some kinds of documentation links can be indirect. As examples, `seclink` and `racketmodname` recognize `#:indirect` to create indirect links.

---

<div class="post-metadata">

**Author:** ![damien\_mattei](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/damien_mattei/32/2706_2.png) [@damien\_mattei](https://racket.discourse.group/u/damien_mattei)\
**Post date:** [August 27, 2025, 9:50pm UTC](https://racket.discourse.group/t/the-doc-make-the-packages-fail-to-build/3925/5 "2025-08-27T21:50:29Z")

</div>

> [@mflatt](#):
>
> You can make a cross-document reference "indirect", which means that the other document doesn't need to be installed, and a link rendered in local documentation will go to [https://docs.racket-lang.org](https://docs.racket-lang.org) if the target document isn't installed.
> 
> Only some kinds of documentation links can be indirect. As examples, `seclink` and `racketmodname` recognize `#:indirect` to create indirect links.

I do not understand how to make that concretely.

The 2 projects now no more fail. The offending lines where only those containing a reference in the documentation to SRFI-105, that is the one already removed and also those which look like that:

```scheme
@codeblock|{
#reader SRFI-105
(require Scheme+)
{3 * 5 + 2}
17
}|

```

i had to removed the first line of code which is annoying for the documentation:

```scheme
@codeblock|{
(require Scheme+)
{3 * 5 + 2}
17
}|

```

> [@mflatt](#):
>
> The two packages depend on each other, so they should both declare that dependency. (The dependency declaration for Scheme+ on SRFI-105 appears to be commented out.)

i will try your solution to uncomment out and make the 2 packages depend on each other even if it is only for documentation. Anyway it is true they are almost used together.

Wait for the next build....

---

<div class="post-metadata">

**Author:** ![damien\_mattei](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/damien_mattei/32/2706_2.png) [@damien\_mattei](https://racket.discourse.group/u/damien_mattei)\
**Post date:** [August 28, 2025, 9:35am UTC](https://racket.discourse.group/t/the-doc-make-the-packages-fail-to-build/3925/6 "2025-08-28T09:35:25Z")

</div>

this works now with your @mflatt solution of uncommenting out the dependancies between ,not the modules, but the packages.
