# Description of Racket Distribution for download and package repo pages?

**URL:** https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608
**Category:** General
**Created:** [January 2, 2023, 5:44pm UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608 "2023-01-02T17:44:45Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)
#### Post date: [January 2, 2023, 5:44pm UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/1 "2023-01-02T17:44:45Z")

</div>

I think I’ve gone mad but I thought we had a summary of what was in the Racket _distribution_ somewhere on [https://racket-lang.org](https://racket-lang.org) ?

@capfredf has kindly created a package for flathub, but it makes me think the lack of a summary on the download page is confusing for beginners? (especially those who have expectations from installing other popular languages)

Descriptions of what is included in the _Racket Distribution_ are quite varied:

- [https://flathub.org/apps/details/org.racket\_lang.DrRacket](https://flathub.org/apps/details/org.racket_lang.DrRacket)

- [https://snapcraft.io/racket](https://snapcraft.io/racket)

- more can be found via [https://repology.org/project/racket/versions](https://repology.org/project/racket/versions)

Since I started composing I realised the following is on the racket wiki:

> The [Racket Distribution](https://download.racket-lang.org/) includes the Racket language(s), command line tools, and [DrRacket](https://github.com/racket/racket/wiki/DrRacket) IDE (but Racket is supported by a variety of [IDE's and text editors](https://github.com/racket/racket/wiki/IDE%27s-and-text-editors) )

It’s probably too short, but should something similar go on [https://download.racket-lang.org/](https://download.racket-lang.org/) ? (And everywhere the Racket Distribution is available ?)

Best regards & happy new year

Stephen

---

<div class="post-metadata">

### Author: ![sschwarzer](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/sschwarzer/32/1940_2.png) [@sschwarzer](https://racket.discourse.group/u/sschwarzer)
#### Post date: [January 2, 2023, 7:09pm UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/2 "2023-01-02T19:09:54Z")

</div>

Not an answer, but related:

> [@What's official racket and what's not?](https://racket.discourse.group/t/whats-official-racket-and-whats-not/1447):
>
> To someone new to Racket - looking at [docs.racket-lang.org](http://docs.racket-lang.org) - this is basically a "soup" of things that seems to be an unordered brain dump of everything Racket related. I may have missed the memo buried on that website (can you blame me?) but if you do not know the history of all these projects (including Racket itself) - what qualifies a project to end up on that site? Are there indicators of how mature a particular project is? For example, is typed racket production quality? What about Rebell…

---

<div class="post-metadata">

### Author: ![capfredf](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/capfredf/32/935_2.png) [@capfredf](https://racket.discourse.group/u/capfredf)
#### Post date: [January 3, 2023, 12:22am UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/3 "2023-01-03T00:22:22Z")

</div>

> It’s probably too short, but should something similar go on [https://download.racket-lang.org/](https://download.racket-lang.org/) ? (And everywhere the Racket Distribution is available ?)

Yes, I feel we could add the URLs for snap and flatpak in [https://download.racket-lang.org/](https://download.racket-lang.org/)

---

<div class="post-metadata">

### Author: ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)
#### Post date: [January 5, 2023, 12:34am UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/4 "2023-01-05T00:34:10Z")

</div>

> [@capfredf](#):
>
> Yes, I feel we could add the URLs for snap and flatpak in [https://download.racket-lang.org/](https://download.racket-lang.org/)

+1

Are you up for making a PR?

---

<div class="post-metadata">

### Author: ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)
#### Post date: [January 5, 2023, 1:34am UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/5 "2023-01-05T01:34:11Z")

</div>

This is what I’ve started telling people;

> _Racket is a modern lisp and a descendent of scheme. The **Racket distribution** includes an incremental native-code compiler`*`, the Racket language, Typed Racket & several other languages, IDE, documentation and a variety of other tools. The distribution is suitable for new learners, application development, or language design and implementation._
> 
> (`*` RacketScript - the _Racket language_ implementation that compiles to Javascript - is also available separately)

But I’d phrase it differently for the downloads page

> The **Racket distribution** includes an incremental native-code compiler, and implementations of the Racket language, Typed Racket & several other languages, IDE, documentation and many other tools.
> 
> The distribution is suitable for new learners, application development, or language design and implementation.
> 
> If you are new to Racket please see [Getting Started](https://docs.racket-lang.org/getting-started/index.html) in the documentation.
> 
> RacketScript - the _Racket language_ implementation that compiles to Javascript - is available from [https://github.com/racketscript/racketscript](https://github.com/racketscript/racketscript)

I’d believe this could be the suggested text description when the Racket distribution is distributed via other package repositories including flathub, snap, homebrew, launchpad, etc.

Many of these have `extensible programming language in the Scheme family`, which does not accurately summarise the contents of the racket distribution.

Where there is a limitation on the space available, it should be cut from the bottom. e.g parts 1+2+3, 1+2, or just part 1, though all four -in order - is preferred.

I’ll do a PR to update [https://download.racket-lang.org/](https://download.racket-lang.org/)

Best regards

Stephen  
:beetle: 🎂

---

<div class="post-metadata">

### Author: ![capfredf](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/capfredf/32/935_2.png) [@capfredf](https://racket.discourse.group/u/capfredf)
#### Post date: [January 5, 2023, 2:39am UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/6 "2023-01-05T02:39:07Z")

</div>

I can do it later over the weekend.

Also, those download badges look nice. maybe we should use them on the racket download page?

![Flatpak](https://flathub.org/assets/badges/flathub-badge-en.svg)

![Snap](https://raw.githubusercontent.com/snapcore/snap-store-badges/master/EN/%5BEN%5D-snap-store-white.svg)

---

<div class="post-metadata">

### Author: ![benknoble](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/benknoble/32/16_2.png) [@benknoble](https://racket.discourse.group/u/benknoble)
#### Post date: [January 5, 2023, 1:54pm UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/7 "2023-01-05T13:54:35Z")

</div>

If I remember, I'll submit a PR to homebrew.

---

<div class="post-metadata">

### Author: ![benknoble](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/benknoble/32/16_2.png) [@benknoble](https://racket.discourse.group/u/benknoble)
#### Post date: [January 5, 2023, 2:18pm UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/8 "2023-01-05T14:18:28Z")

</div>

Any suggestions for the [minimal Racket formula](https://github.com/Homebrew/homebrew-core/blob/master/Formula/minimal-racket.rb)?

[Here's the PR for full Racket](https://github.com/Homebrew/homebrew-cask/pull/139085).

---

<div class="post-metadata">

### Author: ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)
#### Post date: [January 5, 2023, 3:22pm UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/9 "2023-01-05T15:22:42Z")

</div>

Minimal Racket: [https://formulae.brew.sh/formula/minimal-racket](https://formulae.brew.sh/formula/minimal-racket)

Should it have a different description

> The **Minimal Racket distribution** includes the incremental native-code compiler, runtime and package management tool and is intended for resource-constrained server deployments.
> 
> Developers should use the full Racket Distribution.

the idea is that minimal is more like the JRE than the JDK.

S.

---

<div class="post-metadata">

### Author: ![soegaard](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/soegaard/32/19_2.png) [@soegaard](https://racket.discourse.group/u/soegaard)
#### Post date: [January 5, 2023, 3:25pm UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/10 "2023-01-05T15:25:25Z")

</div>

For context:

> [@Minimal-racket is very slow before installing compiler-lib](https://racket.discourse.group/t/minimal-racket-is-very-slow-before-installing-compiler-lib/967/20):
>
> This is what I was expecting (just another lesson in the dangers of writing enormous paths by hand. This is also right. I definitely agree that making this work is important to giving a good first impression! I used Homebrew's minimal Racket myself for several Racket release cycles when I was relatively new to Racket. Adding an explicit raco setup step will definitely avoid the immediate problem, but I think it may be doing so by producing a duplicate set of .zo files. I'll try to descri…

---

<div class="post-metadata">

### Author: ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)
#### Post date: [January 5, 2023, 5:13pm UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/11 "2023-01-05T17:13:41Z")

</div>

Yes, it isn't the first time a beginner has had a bad experience because they tried to use the RRE instead of the RDK.  
:beetle:

---

<div class="post-metadata">

### Author: ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)
#### Post date: [January 6, 2023, 1:29am UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/12 "2023-01-06T01:29:44Z")

</div>

Took a look at [https://github.com/racket/racket-lang-org/blob/master/download/download-pages.rkt](https://github.com/racket/racket-lang-org/blob/master/download/download-pages.rkt) and I have decided doing a PR safely is beyond my capacity at the moment.

Does anyone else wants to have a go at adding the following text`?

> The **Racket distribution** includes an incremental native-code compiler, and implementations of the Racket language, Typed Racket & several other languages, IDE, documentation and many other tools.
> 
> The distribution is suitable for new learners, application development, or language design and implementation.
> 
> If you are new to Racket please see [Getting Started](https://docs.racket-lang.org/getting-started/index.html) in the documentation.
> 
> RacketScript - the _Racket language_ implementation that compiles to Javascript - is available from [GitHub - racketscript/racketscript: Racket to JavaScript Compiler](https://github.com/racketscript/racketscript)

---

<div class="post-metadata">

### Author: ![alexh](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/alexh/32/315_2.png) [@alexh](https://racket.discourse.group/u/alexh)
#### Post date: [January 6, 2023, 4:41am UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/13 "2023-01-06T04:41:34Z")

</div>

> [@spdegabrielle](#):
>
> The **Minimal Racket distribution** [...] is intended for resource-constrained server deployments.

For applications that run on a **resource-constrained server** , developers should install the full Racket distribution, and use `raco exe` and `raco dist` to create an application executable -- this will ensure the smallest possible size for the application and its module dependencies.

The problem with Minimal Racket is that, once you install a few packages required by your application, you'll end up with a "Maximal Racket" as soon as one of the packages depends on scribble or the test framework. Sure, some packages are split into "lib/test/doc" sub-packages, but not all of them, and you'll be putting the size of the final Racket installation at the mercy of some third-party package. `raco exe` + `raco dist` don't suffer from the same problem, as they will package only the required modules form a full Racket installation.

Even using Minimal Racket in the CI step for Github Actions for a Racket package, is a waste of time: a package that has documentation and tests (even if they are in separate "lib/doc/test" sub-packages), will end up installing the full Racket distribution, except it will take longer, since main distribution packages have to be installed separately one-by-one.

The only valid use-case I know for Minimal Racket is to setup build environments for working on one of the packages in the main Racket distribution, put it differently, Minimal Racket is a tool for the maintainers and developers of Racket itself.

Alex.

---

<div class="post-metadata">

### Author: ![sschwarzer](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/sschwarzer/32/1940_2.png) [@sschwarzer](https://racket.discourse.group/u/sschwarzer)
#### Post date: [January 6, 2023, 11:23am UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/14 "2023-01-06T11:23:58Z")

</div>

> [@spdegabrielle](#):
>
> The **Racket distribution** includes an incremental native-code compiler, and implementations of the Racket language, Typed Racket & several other languages, IDE, documentation and many other tools.

What's meant here by "implementation **s** of the Racket language"? Is this referring to BC vs. CS? If yes, it doesn't seem to me that it's important to refer to BC in the summary. My understanding was/is that the BC is legacy code now, so it should be omitted from the summary.

Besides that, the wording might be confusing, since if a user _downloads_ the "distribution", they only get one language implementation, not both.

What is included in _many_ tools (unless you count the `raco` commands individually)?

---

<div class="post-metadata">

### Author: ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)
#### Post date: [January 6, 2023, 12:08pm UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/15 "2023-01-06T12:08:44Z")

</div>

> [@alexh](#):
>
> Minimal Racket is a tool for the maintainers and developers of Racket itself.

Is it possible to ask homebrew and others to remove minimal racket?

---

<div class="post-metadata">

### Author: ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)
#### Post date: [January 6, 2023, 6:23pm UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/16 "2023-01-06T18:23:38Z")

</div>

I don’t mean bc, I mean it includes implementations of several languages including

- The Racket language
- Typed Racket
- Datalog

How about this

> The **Racket distribution** includes an incremental native-code compiler, and implementations of several languages including Racket, Typed Racket & Datalog, Integrated development environment, all documentation and tools for application and language design, implementation, documentation and distribution.

Still need work. Keep the feed back coming 😁

---

<div class="post-metadata">

### Author: ![sschwarzer](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/sschwarzer/32/1940_2.png) [@sschwarzer](https://racket.discourse.group/u/sschwarzer)
#### Post date: [January 6, 2023, 7:20pm UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/17 "2023-01-06T19:20:09Z")

</div>

Next iteration ... 😉

> The **Racket distribution** includes an incremental native-code compiler, several languages like Racket, Typed Racket and Datalog, as well as the DrRacket IDE. There are also documentation and tools for designing, implementing, documenting and distributing Racket applications and custom languages.

Reasons for the changes:

- I think "implementations of" is redundant.
- I used "as well as" to avoid/reduce ambiguous parsing ("languages like [Racket, Typed Racket, Datalog, integrated development environment]" vs."languages like Racket, Typed Racket, Datalog], integrated development environment". This change isn't strictly necessary because you'd arrive at the intended meaning after reading the sentence only three times. 😉
- Mention "DrRacket" explicitly, so potential downloaders can do a web search on the IDE before actually downloading the distribution.
- In my opinion "IDE" is as understandable as "integrated development environment" and "IDE" makes the sentence easier to scan.
- I split the previous single sentence because I found it very difficult to read and understand. I _don't_ insist on the specific wording "There are ..." though.
- In the last sentence I tried to get a bit away from the "nominal style" and using more verbs. Also now the "Racket applications and custom languages" are easier to tell apart from the actions on them.
- This is an iteration on your last text suggestion. I'm not against deriving/merging previous versions of the text. 🙂

---

<div class="post-metadata">

### Author: ![alexh](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/alexh/32/315_2.png) [@alexh](https://racket.discourse.group/u/alexh)
#### Post date: [January 6, 2023, 11:41pm UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/18 "2023-01-06T23:41:25Z")

</div>

> [@spdegabrielle](#):
>
> > [@alexh](#):
> >
> > Minimal Racket is a tool for the maintainers and developers of Racket itself.
> 
> Is it possible to ask homebrew and others to remove minimal racket?

Perhaps I should clarify that I didn't advocate removal of Minimal Racket from anywhere in my previous post.

Minimal Racket from homebrew is still useful: someone who wants to contribute to a package from the main distribution can install Minimal Racket from any source that they want, then setup the development environment for the package they want to contribute to, next they can test the package before submitting the PR.

To make the discussion more concrete, here is how one would setup an environment to work on the plot package (based on commands from the plot CI steps: [https://github.com/racket/plot/blob/master/.github/workflows/ci.yml](https://github.com/racket/plot/blob/master/.github/workflows/ci.yml)):

- Install Minimal Racket from your favorite source
- Clone the plot repository
- Setup a local catalog for plot, which takes precedence over then main catalog:

```scheme
racket -l- pkg/dirs-catalog --link catalog .
echo "file://`pwd`/catalog" > catalogs.txt
raco pkg config catalogs >> catalogs.txt
raco pkg config --set catalogs `cat catalogs.txt`
raco pkg config catalogs

```

- Install the plot package -- this will install plot from the local checkout, and all other packages from the main catalog:

```scheme
raco pkg install --batch --auto plot

```

With this setup, changes can be made to the plot package, tested and submitted as a PR. Of course, this works for any package, not just `plot`.

Alex.

---

<div class="post-metadata">

### Author: ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)
#### Post date: [January 9, 2023, 3:08am UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/19 "2023-01-09T03:08:32Z")

</div>

Thanks @capfredf

> [@capfredf](#):
>
> Also, those download badges look nice. maybe we should use them on the racket download page?
> 
> ![Flatpak](https://flathub.org/assets/badges/flathub-badge-en.svg)
> 
> ![Snap](https://raw.githubusercontent.com/snapcore/snap-store-badges/master/EN/%5BEN%5D-snap-store-white.svg)

A PR to [https://github.com/racket/racket-lang-org/blob/master/www/download.rkt](https://github.com/racket/racket-lang-org/blob/master/www/download.rkt) is beyond me at the moment, but we could put the badges on [Installing Racket · racket/racket Wiki · GitHub](https://github.com/racket/racket/wiki/Installing-Racket) as part of the effort to provide repository specific instructions: [https://racket.discourse.group/t/installing-racket-from-package-repositories/1630?u=spdegabrielle](https://racket.discourse.group/t/installing-racket-from-package-repositories/1630). Let me know if I can help.

Best regards

S.

---

<div class="post-metadata">

### Author: ![spdegabrielle](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/spdegabrielle/32/95_2.png) [@spdegabrielle](https://racket.discourse.group/u/spdegabrielle)
#### Post date: [January 9, 2023, 2:05pm UTC](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/20 "2023-01-09T14:05:25Z")

</div>

Thanks @alexh that is very helpful

# Minimal Racket Distribution

> Minimal Racket is a tool for the maintainers and developers of Racket to setup build environments for working on packages in the main Racket distribution. If you
> 
> - Install Minimal Racket from your favorite source
> - Clone the repository for the main distribution package you want to work on
> - Setup a local catalog for the cloned package, which takes precedence over then main catalog.
> - Install the cloned package from the local checkout, and all other packages from the main catalog:
> 
> ```scheme
> raco pkg install --batch --auto <main distribution package>
> 
> ```
> 
> Changes can be made to the cloned package, tested and submitted as a PR. (see [example steps for Plot package](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608/18))  
> if you are not a maintainer of a package in the Racket distribution you should install/use the full Racket distribution.

[Next page](https://racket.discourse.group/t/description-of-racket-distribution-for-download-and-package-repo-pages/1608.md?page=2)
