Reviving this thread. I spent the last couple of months on a package manager 
that operates at a broader scope than `raco pkg`. It's not done because as you 
all know, package managers are hard.

The source is at https://github.com/zyrolasting/zcpkg. Note that there's a 
branch dedicated to using only minimal Racket, and I'll be leaning on that once 
I learn how to properly set up TCP+TLS.

In the context of this thread, there's a point where a Racket developer depends 
less on Racket packages and more on specific Racket installations. The name 
`zcpkg` stands for "Zero-Collection Packages", since it explores extending 
Racket where packages don't modify the running installation. Obviously this 
entails more verbose specifications and require specs.

After some reading I found that my goals overlapped with Nix and Guix. In this 
light, all I'm really doing is moving the boundary for the "unit of exchange" 
(Sam Boyer's works [1]) to encompass a Racket installation and non-Racket 
resources. My hope is that will address the topic discussed in this thread, 
since you can install a Racket package that includes the means by which Racket 
runs to support that package.

It also acts as a nice use case for reader extensions, since it does not seem 
like a huge leap from my current state to adapt setup/infotab to what Guile and 
Nix's language are doing. Jury is still out... I could be embarrassingly wrong.

The HN thread for Boyer's article is also pretty valuable since it has people 
articulating pain points, and that's coloring my approach. [2]

I'm open to increasing interoperability with `raco pkg`, but I'm honestly 
unsure if that can be done easily. I know this isn't a PLT-sanctioned approach, 
but I'd like to know if there's any warmth to the direction I'm headed here.

[1]: 
https://medium.com/@sdboyer/so-you-want-to-write-a-package-manager-4ae9c17d9527#.740o43vxi
[2]: https://news.ycombinator.com/item?id=11088125


~slg

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Thursday, May 21, 2020 11:50 AM, Matthew Flatt <[email protected]> wrote:

> At Thu, 21 May 2020 15:39:30 +0000, Sage Gerard wrote:
>
> > I'm not sure what improvements can be made that A) wouldn't repeat the
> > problems encountered in PLaneT and B) gives users an "easy" way to deal with
> > breaking changes in collection names beyond what the Package Management FAQ
> > suggests.
>
> Well, I hope you take my comments in the spirit of "advice that may be
> wrong". When multiple things change between A and B, saying which
> changes mattered ends up being a matter of opinion and interpretation.
>
> > I remember Sam mentioning `raco link` in Slack, but based on your
> > emails it sounds like NOTHING can fundamentally change without a
> > tethered installation or custom distribution (e.g. a collects-like
> > directory relative to a different executable). Is that correct? I
> > wasn't sure if you were hinting at that in your first email.
>
> You can do many things with just environment variables (e.g., to pick a
> configuration directory). A tethered environment solves the problem
> that environment variables are too widely scoped; if your Racket
> program is meant to start a separate process that runs a different
> Racket, for example, the environment variables affects the second
> Racket --- unless the original program goes out of its way to remove
> them.
>
> > If that's the case, then I'd probably double down on my first reply:
> > It almost seems like giving users an easy way to generate tethered
> > installations would open up more opportunities than trying to make
> > the default installation behave a certain way around packages,
> > collections, and modules.
>
> I still agree with this.
>
> ---------------------------
>
> You received this message because you are subscribed to the Google Groups 
> "Racket Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/racket-dev/20200521095040.19d%40sirmail.smtp.cs.utah.edu.


-- 
You received this message because you are subscribed to the Google Groups 
"Racket Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-dev/omt_978Tt0WX5ZFWVca240MWk4yz4-4cpGVYVkzc1mKL9LF55s3qIhelqsXkQys5DnWZo0X7Hx_lNqAfHI6nAuEPhO5RmKcAdOR6FYAanqY%3D%40sagegerard.com.

Reply via email to