-
-
Notifications
You must be signed in to change notification settings - Fork 648
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Installing xrepl should not install the web server #1465
Comments
Well, More broadly, I think there are a few possible choices here:
I'm actually surprised that 5 didn't just happen. But which one (or combination) are you thinking of? |
I’m not sure what the ideal solution is, but I’d personally like to be able to have the I’d personally be okay if As an aside, I think (5) didn’t happen because the package server is not currently configured to distribute built versions of packages, so it always installs sources. |
With respect to (5): For a release, the release-specific package catalog does distribute built packages for anything in the main distribution. Still, "built" means "sources plus built artifacts", so all dependencies are installed for the "sources" part. Use |
Here's what get installed if we use
It is still a lot, but at least the web server and r5rs are not among the dependencies anymore.
|
A little more information. Out of the ~1500 user packages on pkgs, more than 1100 depend indirectly on drracket, which I don't believe is right. Even a package as small as "text-table"—meant for mere text output—which depends directly only on My preferred solution would be to keep racket-doc for backward compatibility of course, but have Another solution is to at least provide a racket-nogui-doc, so that non-gui packages don't trigger gui dependencies. List of packages that text-table depends on, transitively: '("2d-lib"
"at-exp-lib"
"base"
"cext-lib"
"class-iop-lib"
"com-win32-i386"
"com-win32-x86_64"
"compatibility"
"compatibility-doc"
"compatibility-lib"
"compiler-lib"
"data-doc"
"data-enumerate-lib"
"data-lib"
"db-doc"
"db-lib"
"db-ppc-macosx"
"db-win32-i386"
"db-win32-x86_64"
"db-x86_64-linux-natipkg"
"deinprogramm-signature"
"distributed-places"
"distributed-places-doc"
"distributed-places-lib"
"draw"
"draw-doc"
"draw-i386-macosx-3"
"draw-lib"
"draw-ppc-macosx-3"
"draw-ttf-x86_64-linux-natipkg"
"draw-win32-i386-3"
"draw-win32-x86_64-3"
"draw-x11-x86_64-linux-natipkg"
"draw-x86_64-linux-natipkg-3"
"draw-x86_64-macosx-3"
"drracket"
"drracket-plugin-lib"
"drracket-tool-doc"
"drracket-tool-lib"
"dynext-lib"
"eli-tester"
"errortrace-doc"
"errortrace-lib"
"future-visualizer"
"gui"
"gui-doc"
"gui-i386-macosx"
"gui-lib"
"gui-pkg-manager-lib"
"gui-ppc-macosx"
"gui-win32-i386"
"gui-win32-x86_64"
"gui-x86_64-linux-natipkg"
"gui-x86_64-macosx"
"htdp-lib"
"html-lib"
"icons"
"images-gui-lib"
"images-lib"
"macro-debugger"
"macro-debugger-text-lib"
"math-doc"
"math-i386-macosx"
"math-lib"
"math-ppc-macosx"
"math-win32-i386"
"math-win32-x86_64"
"math-x86_64-linux-natipkg"
"math-x86_64-macosx"
"mzscheme-doc"
"net-cookies-doc"
"net-cookies-lib"
"net-doc"
"net-lib"
"option-contract-lib"
"parser-tools-doc"
"parser-tools-lib"
"pconvert-lib"
"pict"
"pict-doc"
"pict-lib"
"pict-snip-lib"
"plai-lib"
"planet-doc"
"planet-lib"
"plot-compat"
"plot-doc"
"plot-gui-lib"
"plot-lib"
"profile-doc"
"profile-lib"
"quickscript"
"r5rs-doc"
"r5rs-lib"
"r6rs-doc"
"r6rs-lib"
"racket"
"racket-doc"
"racket-i386-macosx-3"
"racket-index"
"racket-lib"
"racket-ppc-macosx-3"
"racket-win32-i386-3"
"racket-win32-x86_64-3"
"racket-x86_64-linux-natipkg-3"
"racket-x86_64-macosx-3"
"rackunit-doc"
"rackunit-gui"
"rackunit-lib"
"rackunit-typed"
"readline"
"readline-doc"
"readline-lib"
"sandbox-lib"
"sasl-lib"
"scheme-lib"
"scribble-doc"
"scribble-html-lib"
"scribble-lib"
"scribble-text-lib"
"serialize-cstruct-lib"
"slideshow-doc"
"slideshow-lib"
"snip-lib"
"source-syntax"
"srfi-doc"
"srfi-lib"
"srfi-lite-lib"
"string-constants-doc"
"string-constants-lib"
"syntax-color"
"syntax-color-doc"
"syntax-color-lib"
"testing-util-lib"
"tex-table"
"trace"
"typed-racket-compatibility"
"typed-racket-doc"
"typed-racket-lib"
"typed-racket-more"
"unix-socket-lib"
"web-server-doc"
"web-server-lib"
"wxme-lib"
"xrepl"
"xrepl-doc"
"xrepl-lib"
"zo-lib") |
I think the right solution here is number 4 from my comment a while ago, the infrastructure for which is already implemented. I forget the exact scribble code to do this, but it should be relatively easy to significantly reduce the dependencies of racket-doc this way. |
Yes, that would be perfect (I thought it would be no nowhere close implemented). I assume this is not document yet? |
It's documented (and has been around a while), see the |
Aha! Thanks, I'll take a look. If it works well, I believe this solution should be standardized and better documented, as it's clear that almost no package uses this method. |
See also |
What kind of work does it imply for the existing docs? |
Something like this commit if it's just a reference to a separate manual. For references that use particular identifiers, it would be more challenging. |
Even if all of us are willing to edit the core packages, this looks like significant work for the pkgs authors — more than they might be willing to tackle.
|
I think people can manage their own dependencies how they want, but using indirect links is the right tool to fix this bug. |
Should we put this on the agenda?
|
I don't think much further discussion is needed here; just writing some patches. |
Maybe one such patch would be to the docs for the section links and module links docs to suggest using weak links? |
Looks like there's at least one reference I'm not seeing. I'm defining (define-syntax-rule (racket arg)
(racketmodname arg #:indirect)) to make sure all
I'm also using Is it one of these? The small file can be found here. |
You need the dependency on |
Can't this be made indirect? Also I'm currently using |
|
From where I sit, it looks like we can probably productively trim dependencies from racket-doc to other things but it doesn't seem to make a lot of sense to have documentation that has code snippets that doesn't depend on racket-doc (without harder work anyway). |
See #3215 for some progress here. |
Is there a chance that reducing the doc deps will make compiling the docs faster for a small collection? |
No, I don't expect this to change documentation build time. |
Removes drracket, r5rs, r6rs, slideshow, web-server, typed-racket, math, and others. Creates a new scribblings/docname library which contains the document names and links. This could be used for the actual titles of the relevant documents, but is not yet. Creates a new "scheme-doc" package that holds the documentation for various `scheme/*` libraries. Uses many #:indirect links, rewrites some documentation to avoid identifiers from other documents. Closes racket#1465.
As discussed with some people at RacketCon, doing
raco pkg install xrepl
from a minimal installation currently installs a lot of things, including the web server, draw, typed racket, r5rs, and r6rs. I’m not sure that all of these things can be decoupled from the main documentation, but it would be nice if I could install some utilities from minimal Racket without installing these things.The text was updated successfully, but these errors were encountered: