spdegabrielle
2020-2-11 19:31:24

Is there a guide to making packages with -doc & -lib versions so you can require the package-lib without getting/building the documentation?


notjack
2020-2-11 19:32:51

@spdegabrielle I recommend not doing it


spdegabrielle
2020-2-11 19:34:29

Why? My use case is I really need to minimise my code footprint so I can build racket-stories on http://glitch.com\|glitch.com (200mb container)


notjack
2020-2-11 19:34:49

You can use the built-package catalog to solve the same problem, and better.


spdegabrielle
2020-2-11 19:36:24

?



notjack
2020-2-11 20:03:01

(this is not well documented :slightly_frowning_face:)


samdphillips
2020-2-11 20:03:39

@spdegabrielle Here’s how I ended up doing it in my docker project (which is mostly verbatim from @notjack’s Dockerfile). Both rash and rebellion are not split up into lib and doc packages. raco pkg config --set catalogs \ "<https://download.racket-lang.org/releases/7.5/catalog/>" \ "<https://pkg-build.racket-lang.org/server/built/catalog/>" \ "<https://pkgs.racket-lang.org>" \ "<https://planet-compats.racket-lang.org>" raco pkg install --binary-lib --auto xrepl-lib rash rebellion


notjack
2020-2-11 20:05:00

also, beware that this requires you to use the same racket version that the package build server does


notjack
2020-2-11 20:05:30

or else run your own catalog with your own build server


samdphillips
2020-2-11 20:05:54

Yes that is a downside. It would be a great community project to support 1–2 revisions back.


notjack
2020-2-11 20:06:22

I’d also like to see more graceful behavior in raco pkg here


notjack
2020-2-11 20:06:53

I vaguely remember trying this and installation would outright fail if they weren’t on the build server


samdphillips
2020-2-11 20:07:18

Yes. Also if you don’t have the built catalog it will fail.


samdphillips
2020-2-11 20:07:31

That saga is in the above thread.


notjack
2020-2-11 20:07:38

I’d like to specify “use prebuilt stuff as much as possible, but fall back to building dependencies from source if necessary”


notjack
2020-2-11 20:07:47

It’s a cache. It should behave like one.


notjack
2020-2-11 20:11:24

(And at that point, if it’s stable enough, it could even be enabled by default)


spdegabrielle
2020-2-11 20:14:27

I’m already using —binary for the packages that support it. Not clear on the distinction from —binary-lib


mflatt
2020-2-11 20:16:55

I don’t think we have the manpower to support that service right now. I can support the current package-build service ok, but a service that is the front line for package deployment needs to be at least an order of magnitude more robust and available.


notjack
2020-2-11 20:18:23

Makes sense. Anything I can do to help?


notjack
2020-2-11 20:19:41

--binary will still download the rendered documentation (the HTML files, not the Scribble source) for all of your transitive dependencies. That’s skipped when using --binary-lib.


mflatt
2020-2-11 20:26:00

If you’d like to volunteer as the pkg-build service provider (long-term), then you’re on! Racket has funds that can easily cover computing resources (e.g., AWS), but not the kind of money needed to pay people.


notjack
2020-2-12 01:44:42

I can do that. Running a CI system for a whole bunch of people is basically my day job anyway.


mflatt
2020-2-12 01:58:19

Thanks!!! Let’s coordinate more by email, since that’s probably better for this.


notjack
2020-2-12 02:08:13

SGTM, will wait for your email