# How to Organize Your Racket Library \[blog\]

**URL:** https://racket.discourse.group/t/how-to-organize-your-racket-library-blog/717
**Category:** Show & Tell
**Tags:** package, tips, documentation
**Created:** [February 22, 2022, 9:55pm UTC](https://racket.discourse.group/t/how-to-organize-your-racket-library-blog/717 "2022-02-22T21:55:07Z")
**Posts on this page:** 1
**Showing post:** 4

<div class="post-metadata">

### Author: ![simonls](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/simonls/32/170_2.png) [@simonls](https://racket.discourse.group/u/simonls)
#### Post date: [February 23, 2022, 10:35am UTC](https://racket.discourse.group/t/how-to-organize-your-racket-library-blog/717/4 "2022-02-23T10:35:08Z")

</div>

I like your post a lot, I think starting out with racket it would have helped me to get up to speed in understanding that package organization strategy.

The only thing I would like to state explicitly — _because I am unsure that it is conveyed 100% to the reader_ — is that `single-collection vs multi-collection` is orthogonal to `single-package vs multi-package`.

You can use them in any combination you like, e.g. in my [define-attributes](https://github.com/SimonLSchlee/define-attributes) package I use `single-collection` with `multiple-package`. Sometimes packages organized as `-lib/-doc/-test` use `(define collection 'multi)` in their combining package, even when the sub-packages all use a single collection. Starting out that gave me the impression that `multi-collection` was required to use `multi-package` but this is not true.

This is why I prefer it when the combining package uses something that matches the sub-packages, e.g. only uses `multi-collection` if at least one of the sub-packages does too.

I also wonder whether there should be a way to state within the `info.rkt` that this package has no collection / is an empty package that is strictly being used to combine the sub-packages, it feels wrong to specify a collection, when you never want it to contain something (in that particular package).  
Maybe `(define collection 'none)` could indicate that the package has no own collection and is only composed from its sub-packages.

---

_[View the full topic](https://racket.discourse.group/t/how-to-organize-your-racket-library-blog/717)._
