Hi Neil,

I'm starting a new thread to avoid hijacking the "Package layout in docs" 
thread.

Le mardi 31 janvier 2017 20:25:31 UTC+1, Neil Van Dyke a écrit :
> Greg Trzeciak wrote on 01/31/2017 01:24 PM:
> > Speaking of packages - there seems to be a trend recently in racket 
> > packages to create separate packages for main, lib, doc, test, etc. This 
> > causes an artificial inflation in available packages and IMHO may cause 
> > some confusion for newcomers as instead of finding eg. "PackageX" we now 
> > get the following instead:
> 
> I agree with Greg that this looks like people are going out of their way 
> to make clutter.  I don't think that ever should have been encouraged.

I have two such packages which are split in pkg/lib/test/doc. In both cases, it 
was not my desire, but rather a constraint.

In the first case, the whole package was taking too long to build on pkg-build, 
and that package (as well as those depending on it) were therefore marked as 
failing to build. There's a hard 20 minutes limit on pkg-build, it is not a 
very fast machine (Travis builds the package *and* all its dependencies in 
about 15 minutes), and performance varies from build to build, due to the 
server's load I guess — it sometimes takes several minutes more than usual, and 
having builds randomly fail every time I push a change or one of the 
dependencies is changed is not acceptable.

In the second case, I was referring in the documentation to uses of the 
package: "this package is used for example to build 
@racketmodname[package-bar]". Unfortunately, this creates a cyclic dependency 
(foo's doc depends on bar's doc, and bar depends on foo). The pkg-build server 
and raco pkg can handle cyclic dependencies, I think, but all the packages part 
of the cycle have to be built at the same time on pkg-build (within the 20 
minutes time frame). In order to avoid timeouts in the future, and in order to 
avoid having this messy cyclic dependency, I chose to split out the 
documentation.

In both cases, I'd rather avoid doing so. If there was a way to increase the 
timeout on pkg-build, and if there was a way to refer to a module with 
@racketmodname[] only if it is installed (a "weak" documentation reference, if 
you will), then I would not have needed to split these two packages (a painful 
operation which I really would have preferred to avoid). The first point 
(timeout) has been discussed several times, so I remain hopeful that at some 
point in the future the timeout becomes configurable. The second point seems 
more like an edge case, and I'm not sure it is actually a good idea, and I'm 
not sure scribble has the right primitives to do this (knowing that if a 
weakly-referred-to module name or defproc is installed, the documentation for 
the referring package needs to be rebuilt).

Simply grouping together the packages in the catalog seems like a good idea to 
me, as there will always be some reasons to need to do this.

Cheers,
-- 
Georges Dupéron

-- 
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+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to