Racket v8.10 Release Thread

The release process for v8.10 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

Is there a changelog available yet?

By "changelog", are you referring to the bullet points that go into the release notes? If so: no, we haven't started assembling that list yet. Indeed, people could still actively be adding features up until branch day.

If you're curious, though, you can certainly take a look at some of the changes that have happened since the last release using the git log ....

Let me know if I'm misunderstanding your question!

Yes, that's what I'm referring to.

The release process for v8.10 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.10.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.10.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:
- 15th: Merge window ends, testing starts
- 22nd: Testing ends
Testing for the v8.10 release
  (using the v8.9.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 29th. Otherwise the release
will move on without your input.

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

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

Unfortunately, I do not have access to my 32bit mac os machine to do that test. I'll leave it unchecked for now, but probably it is okay to just skip it, this once.

It looks like the uninstallers under windows aren't signed correctly.

Specifically, when I run the installer "racket-minimal-8.9.900-i386-win32-bc" I see the usually scary warnings that suggests there haven't been many downloads yet but when I run the installer, I eventually get a blue-titled window with the SFC listed as the "Verified Publisher".

The problem is that when I ran the uninstaller, I got a yellow-titled window with no verified publisher.

Does anyone else have access to a windows machine to test this? This could be anyone reading this message: YOU, for instance!

Specifically, the request is to download and install a Windows installer from

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

... and then use the uninstaller to remove it, checking to see what kinds of warnings and errors occur.

Were there any log messages about the success / failure of signing the binaries from the build?

Just for the record, here's what I see.

First, as I'm running the installer and after clicking a bit, I see the desired blue barred windows:

These show that the installer has the correct publisher listed.

Then, when I go to run the uninstaller that appeared, I see this:

which seems pretty clearly to indicate that the uninstaller is not signed.

I don't recall seeing this behavior last release when I was doing the testing, FWIW.

Hey there!

I have a 64-bit Windows 10 Pro (10.0.19045).

(Uninstalled 8.9 and the uninstaller isn't signed as well... When I uninstalled Racket 8.9 using it's Uninstall.exe, the publisher was "Unknown")

After downloading the pre-release, MS Edge shows the following publishing information:

If I run the installer, I get the following:

Windows Protected Your PC message

I'm not so sure about how to take a screenshot of the UAC prompts, but when the installer asks permission to install, I see Software Freedom Conservancy as the publisher.

(Installing Racket 8.9.900... All is well.)

Running Uninstall.exe from the Start Menu under Racket > Uninstall, opens a UAC window asking permissions to uninstall. The location is C:\Program Files\Racket\Uninstall.exe, the publisher is "Unknown". :thinking:

While running the Uninstaller shows "Unknown" as the publisher, viewing the file properties in Explorer and comparing it to DrRacket.exe gives:

Hope this helps :innocent:

1 Like

Definitely helps, many thanks.

My reading of the build scripts indicates that the makensis tool generates both the installer and the uninstaller, and bundles them into a single .exe file, which then goes to the signer. The signing script appears to consist of a single call to jsign-4.0.jar library for Authenticode (?) signing. I don't know whether this library call goes through and signs each element of the bundle individually, or whether the signature somehow gets transferred to the installer when it gets unbundled or ... actually, there are many things I don't understand. However, I don't see an obvious way in which something that used to be signed is somehow not currently getting signed.

1 Like

I'm pretty sure the signing step for Windows just signs the installer ".exe", and it can't see that the installer ".exe" embeds an "uninstaller.exe", "Racket.exe", "DrRacket.exe", etc. I guess the difference with "uninstaller.exe" (compared to "Racket.exe") is that it asks to run in administrator mode.

Some guidance here, which includes a pointer to !uninstfinalize in NSIS v3.08 and later: Signing an Uninstaller - NSIS. To use !uninstfinalize, we'd need to update distro-build-client/installer-exe.rkt to propagate a signing command. (Also that signing command would run on the distro-build client side instead of the server side, but since we now cross-compile for Windows, those are probably the same or similar environments.)

2 Likes

Okay! Thanks all. I guess I just didn't notice last time (or perhaps noticed and complained and got this answer and forgot ... in which case, sorry!).

Okay, I'm going to remove this as a blocker from Release Checklist 8.10 · racket/racket Wiki · GitHub .