Release Announcement for v8.11

The release announcement sketch that I have so far is below.  Please
mail me new items and/or edits.

Please phrase announcements using complete sentences and avoid the
word "now".

Racket version 8.11 is now available from

https://racket-lang.org/

As of this release:

  • Match clauses can include a #:do option to allow evaluation of code
    and bindings before a following #:when clause

  • JSON Serialization supports indentation with an #:indent option to
    write-json

  • An initiate-sequence function simplifies the creation of sequences.

  • The :do-in form allows an inner definition sequence.

  • The redex-define form allows pattern-matching in redex using a
    define-like syntax

  • Racket and Chez Scheme use Robert L. Smith's "Algorithm 116" for
    division of complex numbers.

  • DrRacket has indentation guides that provide visual cues indicating
    how code is indented and grouped, accessible by using
    (-shift-i).

  • "Comment-out" menu items can be specific to the #lang used by the
    current file.

  • Unused identifiers have a tooltip indicating that they have no bound
    occurrences.

  • There are many other documentation improvements, optimizations, and
    bug fixes!

  • Quickscript includes a new form of scripting in the form of "hook"
    functions that can be attached to existing events.

  • Plots include plot-inset and plot-legend-padding parameters to
    control the amount of space left unused around the plot edge and plot
    legend.

Thank You

Thank you to the people who contributed to this release:

Alex Harsányi, Ben Greenman, Bogdan Popa, Cameron Moy, Camille
d’Alméras, D. Ben Knoble, Efraim Flashner, Eric S. Raymond, Fred Fu,
Greg Hendershott, Gustavo Massaccesi, Jay McCarthy, jim, Joel Dueck,
John Clements, Jon Eskin, Laurent Orseau, Lucas Sta Maria, mAdkins, Mark
Hedlund, Matthew Flatt, Matthias Felleisen, Mike Sperber, Noah Ma, Oscar
Waddell, Philip McGrath, Qifan Wang, Robby Findler, Ross Angle, Ryan
Culpepper, Sam Tobin-Hochstadt, shenleban tongying, Shu-Hung You,
Sorawee Porncharoenwase, Stephen De Gabrielle, Wing Hei Chan, xxyzz, and
ZhangHao

Feedback Welcome

1 Like

The leading - in -shift-i makes me suspect there's either a missing word or something wrapped in <> that doesn't render well.

2 Likes

Very minor, inconsequential note — I always feel weird about being included in these — and given equal weight among people who did much more — for having done little to nothing. This time around I’m here because I inserted a single missing word in the docs.

I appreciate the thought behind automating the creation of this list; but if there was a way to opt a commit or PR out of that process, I would probably use it, so as not to diminish work of the other contributors that (to me) matter more. Not a big deal, just throwing it out there for your consideration.

I hear what you're saying but I know that there are other people on this list who feel the same way (that their small contribution hardly merits a mention), and the goal of this list is, quite frankly, to encourage people to contribute! If this list contained thousands of people and looked like a wall of text I could maybe see your point, but the evil plan here is to make people feel good about contributing, and I don't think that culling this list would be more effective.

That's my opinion, anyway.

5 Likes

You're right, and one of the weird things about this particular list is that it gets used in about six different contexts that all have different quoting/unquoting/formatting conventions. I think it would be an improvement in the discourse format just to post it as a text inclusion like this:

----------------------------------------------------------------------

Racket version 8.11 is now available from

    https://racket-lang.org/

As of this release:

- Match clauses can include a #:do option to allow evaluation of code
  and bindings before a following #:when clause

- JSON Serialization supports indentation with an #:indent option to
  `write-json`

- An `initiate-sequence` function simplifies the creation of sequences.

- The `:do-in` form allows an inner definition sequence.

- The `redex-define` form allows pattern-matching in redex using a
  `define`-like syntax

- Racket and Chez Scheme use Robert L. Smith's "Algorithm 116" for
  division of complex numbers.

- DrRacket has indentation guides that provide visual cues indicating
  how code is indented and grouped, accessible by using
  (<menu-key>-shift-i).

- "Comment-out" menu items can be specific to the #lang used by the
  current file.

- Unused identifiers have a tooltip indicating that they have no bound
  occurrences.

- There are many other documentation improvements, optimizations, and
  bug fixes!

- Quickscript includes a new form of scripting in the form of "hook"
  functions that can be attached to existing events.

- Plots include `plot-inset` and `plot-legend-padding` parameters to
  control the amount of space left unused around the plot edge and plot
  legend.

## Thank You

Thank you to the people who contributed to this release:

Alex Harsányi, Ben Greenman, Bogdan Popa, Cameron Moy, Camille
d’Alméras, D. Ben Knoble, Efraim Flashner, Eric S. Raymond, Fred Fu,
Greg Hendershott, Gustavo Massaccesi, Jay McCarthy, jim, Joel Dueck,
John Clements, Jon Eskin, Laurent Orseau, Lucas Sta Maria, mAdkins, Mark
Hedlund, Matthew Flatt, Matthias Felleisen, Mike Sperber, Noah Ma, Oscar
Waddell, Philip McGrath, Qifan Wang, Robby Findler, Ross Angle, Ryan
Culpepper, Sam Tobin-Hochstadt, shenleban tongying, Shu-Hung You,
Sorawee Porncharoenwase, Stephen De Gabrielle, Wing Hei Chan, xxyzz, and
ZhangHao

Feedback Welcome
----------------------------------------------------------------------

I suppose this is really what scribble is for... I think maybe what I really want
is a markdown-to-scribble conversion so that I can write them easily then convert them into a format which can format for different conventions? Okay, it looks like @lexi.lambda 's commonmark plus a scribble renderer would do this... OMG, my idea is literally extant, @shawnw has a package for this. Okay I should try it now. You folks are amazing.

3 Likes

Also, I ... did not realize that markdown explicitly allows the use of html tags, so in fact my use of <menu-key> actually makes my release-notes.txt file problematic. IOW, I need to be quoting here anyway. TIL...

And finally, another shout-out to @shawnw and @lexi.lambda ... the commonmark plus commonmark-to-scribble appears to do exactly what they're supposed to do, with absolutely no fuss. Nice!

3 Likes

Very minor thing, is redex Redex or redex or PLT Redex?

Good to know someone's finding that little project (I think I wrote it to answer a question someone asked here) useful.

1 Like

Good call, it seems like PLT Redex is the more standard name. I've updated this bullet. Also, a quick proofread (ouch) highlights the fact that there are missing periods, and the "and so much more" bullet wasn't at the end.

Here's what I've got now:

- Match clauses can include a #:do option to allow evaluation of code
  and bindings before a following #:when clause.

- JSON Serialization supports indentation with an #:indent option to
  `write-json`.

- An `initiate-sequence` function simplifies the creation of sequences.

- The `:do-in` form allows an inner definition sequence.

- The `redex-define` form allows pattern-matching in PLT Redex using a
  `define`-like syntax.

- Racket and Chez Scheme use Robert L. Smith's "Algorithm 116" for
  division of complex numbers.

- DrRacket has indentation guides that provide visual cues indicating
  how code is indented and grouped, accessible by using
  (\<menu-key\>-shift-i).

- "Comment-out" menu items can be specific to the #lang used by the
  current file.

- Unused identifiers have a tooltip indicating that they have no bound
  occurrences.

- Quickscript includes a new form of scripting in the form of "hook"
  functions that can be attached to existing events.

- Plots include `plot-inset` and `plot-legend-padding` parameters to
  control the amount of space left unused around the plot edge and plot
  legend.

- There are many other documentation improvements, optimizations, and
  bug fixes!

@jbclements: I sent you an email about the release process / announcement several days ago. Could you confirm that you received it?

Also, I just noticed that Chez Scheme contributors (e.g. Eric S. Raymond) are listed as Racket contributors. Is that intentional? If so, are there other software dependencies whose contributors should be included too?

Ugh, my sincere apologies for making you repeat yourself three times, that's not a good use of your time. I've responded to that email directly.

WRT the list of contributors, commits to Chez Scheme are (now?) appearing as commits on the Racket chain, and -> In general <-, I have no problem acknowledging their contributions to Racket as well. I'm happy to consider alternate strategies, though!

John

That seems…odd. It would make as much sense/be equally weird, for example, to count people who contribute to gcc as Racket contributors. But given that the racket/ChezScheme repo is being mothballed, maybe this is the last affected release?

On the contrary, I think that the elimination of the separate racket/ChezScheme repo will mean that chez scheme commits are more visible, and I think that's what you're seeing now. I don't personally think that's too unreasonable; I think our relationship to Chez Scheme is much closer than our relationship to gcc. Specifically, I think that both Racket and Chez Scheme have made design accommodations for the other, and a substantial fraction of the last 15 commits on the Chez Scheme tree were made by Matthew Flatt. At the end of the day, I think our tent is big enough for all of the Chez Scheme contributors.

As I said before, though, I'm happy to consider alternate strategies; I'm trying to do whatever makes the most sense for the Racket community.

John

1 Like

While I certainly agree with this sentiment, we wouldn't want the Chez Scheme contributors to feel like they've been assimilated by the borg in lumping their contributions to Chez into the contributions to Racket. (Not sayin' they feel this way, only that that occurs to me.) After all, Chez was a well-established Scheme implementation before Racket/mzscheme even existed.

Thinking about this: @jbclements -- is the script that collects the names somewhere public that might accept pull requests so that someone can add a way that people who feel uncomfortable can opt out?

Definitely, it lives here:

1 Like

One idea related to @joeld’s concern about minor contributions: perhaps the release announcement can be more elaborated?

For example, release announcements of Lean consist of four parts: important changes, list of merged PRs, contribution frequency, and new contributors. Everything besides the curated important changes can be automated, so hopefully it won’t add burden to the release management (@jbclements in particular).

The list of merged PRs along with the contribution frequency would address @joeld’s concern that we currently give “equal weight among people who did much more — for having done little to nothing”.

The list of new contributors could also encourage new contributors to participate, as @jbclements wanted.

Racket doesn’t have a rule that all changes must be added via PRs though, so if we want to include @mflatt’s contributions which are usually directly committed to the repo, we would need to think of a better way to do that.

Is this a good idea? Also, if anyone wants to hack on it, feel free to!

2 Likes

I'm certainly open to this. Having a bunch of repos means that we will have to do a tiny bit more work than their one-liner contributor list, but looking only at the racket repo certainly produces something reasonable for that one repo:

clements@XXXX:~/rktwork/checkout$ git log v8.10..v8.11 --pretty="%an" | sort | uniq -c | sort -rn
     53 Matthew Flatt
     23 Sorawee Porncharoenwase
     12 Wing Hei Chan
      7 shhyou
      6 Oscar Waddell
      5 Philip McGrath
      5 John Clements
      3 Stephen De Gabrielle
      3 Sam Tobin-Hochstadt
      2 sorawee
      2 Robby Findler
      2 Mark Hedlund
      2 Bogdan Popa
      1 ZhangHao
      1 xxyzz
      1 shenleban tongying
      1 Ryan Culpepper
      1 Ross Angle
      1 NoahStoryM
      1 LdBeth
      1 Joel Dueck
      1 jim
      1 Gustavo Massaccesi
      1 Greg Hendershott
      1 Eric S. Raymond
      1 Efraim Flashner
      1 Cameron Moy

And actually, I'm kind of astonished that it produces something as sensible as this, given that ... uh... okay, I just re-read the docs for git log, and it turns out it does exactly the same thing that we've written by hand for our commit counting, so there may be a chance we can pitch all of that code, which would be fantastic. I suppose I'd have to script checking out all of the repos, but that shouldn't be too awful.

Okay, coming back to your actual suggestion: sure?

I'd like to point out, in case it's not obvious, that this is just my opinion.