# Racket v8.9 Release Thread

**URL:** <https://racket.discourse.group/t/racket-v8-9-release-thread/1852>\
**Category:** Internals\
**Tags:** release-management\
**Created:** [April 1, 2023, 7:00pm UTC](https://racket.discourse.group/t/racket-v8-9-release-thread/1852 "2023-04-01T19:00:43Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![jbclements](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jbclements/32/11_2.png) [@jbclements](https://racket.discourse.group/u/jbclements)\
**Post date:** [April 1, 2023, 7:00pm UTC](https://racket.discourse.group/t/racket-v8-9-release-thread/1852/1 "2023-04-01T19:00:43Z")

</div>

```
The release process for v8.9 will begin in about a week. If you
have any new features that you want in and are relatively close to
to being done, now is a good time to do that.

Upcoming dates:
- 7th: Branch day, merge window starts
- 15th: Merge window ends, testing starts
- 22nd: Testing ends

```

---

<div class="post-metadata">

**Author:** ![jbclements](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jbclements/32/11_2.png) [@jbclements](https://racket.discourse.group/u/jbclements)\
**Post date:** [April 14, 2023, 6:01am UTC](https://racket.discourse.group/t/racket-v8-9-release-thread/1852/2 "2023-04-14T06:01:08Z")

</div>

Apologies for the lengthy delay; there were some issues with the Racket Windows Signing certificates, but it appears these may have been resolved. See adjusted dates below.

```
The release process for v8.9 has begun: release checkpoints have
been created for all packages in the main distribution, and release
branches have been created when necessary. You can go on using
`master` branches as usual. The main Racket repo's is now bumped to
v8.9.0.1 (to avoid having two different trees with the same version).

If you have any bug-fixes and changes (including history updates)
that need to go in the release then make sure to specify that in the
commit message by using the word `merge` or `release` or mail the
relevant repo manager [1]) the commit SHA1s. Do not push commits
directly to `release` branches.

Please make sure that code that you're responsible for is as stable
as possible, and let me know if there is any new work that should
not be included in this release.

      >>> NOW IS THE TIME TO FIX BUGS THAT YOU KNOW ABOUT <<<

The time between now and the end of the merge window is for fixing
new errors that prevent proper functioning of major components and
that show up during the preparation for a release. You can also
finalize piece of work that is not yet complete, but please avoid
merging new features.

Note that nightly builds will go on as usual (starting from
v8.9.0.1 and going up as usual), and pre-release builds will be
available shortly at

  https://pre-release.racket-lang.org/

[1] https://github.com/racket/racket/wiki/release-repo-managers

Upcoming dates:
- 19th: Merge window ends, testing starts
- 25th: Testing ends

```

---

<div class="post-metadata">

**Author:** ![jbclements](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jbclements/32/11_2.png) [@jbclements](https://racket.discourse.group/u/jbclements)\
**Post date:** [April 20, 2023, 2:37am UTC](https://racket.discourse.group/t/racket-v8-9-release-thread/1852/3 "2023-04-20T02:37:31Z")

</div>

```
Testing for the v8.9 release
  (using the v8.8.900 release candidate build)

Search for your name on the checklist page to find relevant items, either
reply when you finish an item (please indicate which item/s is/are done),
or check it off yourself on the checklist page. Also, if you have any
commits that should have been picked, make sure that the changes are in.

Be sure to finish your testing by the 25th. Otherwise the release
will move on without your input.

The checklist page is at:
     https://github.com/racket/racket/wiki/Release-Checklist-8.9

Release candidates are at:
     https://pre-release.racket-lang.org

Please use these installers (or source bundles) -- don't test from
your own git clone (don't test the `master' branch by mistake!).
To get the tests, you can do this:

  cd ...racket-root...
  ./bin/raco pkg install -i --auto main-distribution-test

```

---

<div class="post-metadata">

**Author:** ![jbclements](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jbclements/32/11_2.png) [@jbclements](https://racket.discourse.group/u/jbclements)\
**Post date:** [May 2, 2023, 5:56pm UTC](https://racket.discourse.group/t/racket-v8-9-release-thread/1852/4 "2023-05-02T17:56:24Z")

</div>

Release notes draft. What's missing?

* * *

(Draft:) Racket version 8.9 is now available from

```
https://racket-lang.org/

```

As of this release:

- The BSL, BSL+, ISL, and ISL+ languages come with checked signatures.  
This means that some names are taken away from the global  
namespace. -- This addition is an exploratory step. One problem is  
that `lambda` shows up in error messages of BSL .. ISL. If we find  
additional obstacles over the summer and can't fix them, we may  
backtrack.

- Switching into and out of dark mode is handled better on Mac OS and  
Linux.

- Racket uses Unicode 15.0 for character and string operations.

- The `racket/hash-code` library provides support for combining  
hash codes.

- A language module can have a `configure-expand` submodule  
that is dynamically required to configure a parameterization before  
expansion of another module.

- The `stream-cons` function supports multiple values.

- The `unit/c` contract can see more bindings and enforce contracts  
within units.

- The `define-values/invoke-unit` functino has an optional results  
clause.

- TCP output block buffering implies TCP\_NODELAY.

- Submodules and Check Syntax require arrows work better together

- Typed Racket's shallow check generation is improved.

- Many other improvements and bug fixes are included!

The following people contributed to this release:

Alex Harsányi, Alex Knauth, Alexis King, Ben Greenman, Bert De  
Ketelaere, Bob Burger, Bogdan Popa, Cadence Ember, D. Ben Knoble, Denis  
Hirn, dr-neptune, Eli Barzilay, Fred Fu, Gustavo Massaccesi, J. Ryan  
Stinnett, Jack Firth, Jamie Taylor, Jesse Alama, Jin-Ho King, John  
Clements, Lazerbeak12345, Mark Hedlund, Masaya Tojo, Matthew Flatt,  
Matthias Felleisen, Mike Sperber, Philip McGrath, Robby Findler, Ryan  
Culpepper, Sam Tobin-Hochstadt, sarna, Shu-Hung You, Sorawee  
Porncharoenwase, Stephen De Gabrielle, sxzzsf, Tom Price, Yukai Chou,  
and Zach OBrien

Feedback Welcome

* * *

---

<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:** [May 2, 2023, 7:39pm UTC](https://racket.discourse.group/t/racket-v8-9-release-thread/1852/5 "2023-05-02T19:39:23Z")

</div>

Typo "functino" for `define-values/invoke-unit` bullet (also: is it a function?).

---

<div class="post-metadata">

**Author:** ![jbclements](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/jbclements/32/11_2.png) [@jbclements](https://racket.discourse.group/u/jbclements)\
**Post date:** [May 2, 2023, 9:54pm UTC](https://racket.discourse.group/t/racket-v8-9-release-thread/1852/6 "2023-05-02T21:54:26Z")

</div>

No, it's obviously not a function, it's a FUNCTINO!  
...  
(sorry, right on both counts, thanks for pointing it out. How about:

- The `define-values/invoke-unit` form has an optional results clause.
