Skip to content

v0.4.3

Choose a tag to compare

@github-actions github-actions released this 06 Oct 08:43
· 72 commits to main since this release

Added

  • A hidden expert mode in the wizard, for people who test pre-release
    software. Press Ctrl+Shift+E (Cmd+Shift+E on macOS) on the first
    page, or launch RABBIT with RABBIT_EXPERT=1. After a warning that the
    builds are unsupported, two choices appear below the REAPER installation:

    • REAPER builds: regular releases, or the development builds from
      landoleet.org.
    • OSARA builds: regular snapshots, or the test build of an open OSARA
      pull request, picked from a list fetched from GitHub.

    The window title shows when expert mode is on, and each package row says
    when it comes from a pre-release build. Expert mode is never saved and
    lasts until RABBIT closes. The next install without it takes every package
    that came from a pre-release build back to its regular release, and the
    row says so. The same happens to an OSARA test build once its pull request
    is merged or closed, or GitHub has deleted the build. A network failure is
    never counted as a missing build, so an outage can't downgrade anything.
    All five interface languages carry the new wording.

  • The CLI gets the same builds through --package-channel, with no unlock
    needed. For example, --package-channel reaper=dev or
    --package-channel osara=pr:1454, and <package>=stable goes back.
    It works on latest, artifacts, download, plan, install-extension,
    apply-packages and setup. A package stays on the channel it was last
    installed from until told otherwise, and RABBIT packages lists each
    package's channels. When a pull request is merged or closed, or has no
    build left, the CLI prints a warning and installs the regular snapshot.

  • Install receipts now record which channel each package came from, so
    RABBIT can tell a development REAPER from a regular one and knows when to
    put the regular release back. A switch between channels reinstalls even
    when both builds carry the same version number.

  • The README now explains GITHUB_TOKEN. Without it, GitHub allows 60 API
    requests an hour, which testers following OSARA pull request builds can
    run out of. With a personal access token set, the limit is 5,000. RABBIT
    already used the variable, but only CI knew about it.

  • On macOS, VoiceOver now hears what changes away from where the user is
    standing: a dropdown appearing or going away below the Packages list
    when a package is ticked, each package and configuration step as the
    install reaches it, and the reason when the version check fails.

Changed

  • RABBIT install-extension no longer downloads anything without --apply.
    It reported a dry run but fetched the artifact first, which is a change to
    the machine that every other command makes only with --apply. It now
    prints the preflight checks and the artifacts it would download and
    install. RABBIT download still fetches on purpose.

  • RABBIT now builds on wxdragon 0.9.19, which brings wxWidgets 3.3.3 (up from
    3.3.2) under every window and control in the wizard. Nothing is meant to
    look or sound different, but every control now comes from a newer toolkit,
    so reports of anything that reads or behaves differently with a screen
    reader are especially welcome. The upgrade also brings the window-wide
    keyboard event that expert mode's shortcut relies on to work whichever
    control has focus.

  • Closing the wizard while an install is running now stops the run instead of
    killing it. RABBIT asks first ("Stop the installation?", with No as the
    focused button so a stray Enter can't end a running install), then finishes
    the step it is on, releases everything it was holding, writes the report, and
    closes. Before this, the close button tore the process down wherever the
    worker happened to be — mid-download, mid-extract, or between a vendor
    installer finishing and RABBIT recording it. Nothing unwound, so the install
    lock file, the extraction temp folders and any part-downloaded files were
    left behind, and the user got no record of what had actually landed.
    The result page now has a third outcome next to "finished" and "finished with
    errors": a stopped run lists which packages installed and which RABBIT never
    reached, and does not report either as a failure. All five interface
    languages carry the new wording.

  • Closing the wizard while RABBIT is updating itself is refused rather than
    obeyed. Replacing RABBIT's own program files has no safe interruption point,
    so RABBIT explains that and waits instead of leaving a half-swapped
    executable behind.

  • The REAPER language after installation and Spanish OSARA
    translation
    dropdowns on the Packages page now disappear while the
    packages you ticked leave them nothing to decide, instead of staying on
    the page greyed out — and, in the language one's case, greyed out and
    empty. Tab already skipped both, but a screen reader reading the page
    from top to bottom still stopped on them and announced a dead control.
    They come back the moment you tick a package that gives them something
    to choose.

Fixed

  • When an install failed, the result page said "Installation failed. Review
    the error below." and then nothing: the reason sat in the details field,
    hidden behind Show details, which starts unticked. The reason now
    follows that line in the status field, which gets focus and is read out.
    A REAPER that is still open, the usual cause, is described in plain words
    in all five languages instead of as preflight failed: reaper-process: ….
    It is also caught before anything starts: pressing Install while
    REAPER is running now says to close it first and stays on the Review
    page, so you can close REAPER and press Install again instead of
    restarting RABBIT. (Reported by acerbt in #32.)

  • A portable REAPER stopped being recognised once it had been opened, and
    RABBIT then reinstalled it on the next run: a 17 MB download and an
    installer, every time. RABBIT's receipt listed reaper.ini with its size,
    REAPER rewrites that file whenever it runs, and the size check then failed.
    REAPER installs nothing into UserPlugins, so it had no other way to be
    found and read as missing. Two fixes: files whose contents belong to REAPER
    and the user — reaper.ini and OSARA's reaper-kb.ini — are recorded
    without a size and only checked for existence, and REAPER now has a
    detector of its own that finds reaper.exe or REAPER.app and reads its
    version. That one also recognises a portable REAPER that RABBIT never
    installed.

  • An OSARA pull request build whose receipt was missing reported the wrong
    version. RABBIT falls back to scanning the plug-in for its version string,
    and the pattern only matched snapshot versions like 2026.8.9.2302. The
    binary also contains the help text "For example: 2024.3.6.1332,13560ef7",
    so the scan found that instead and reported a build from 2024. RABBIT now
    looks for the pull request form first.

  • Console windows no longer flash on screen while RABBIT works. RABBIT's
    release build owns no console of its own, so every console program it
    launched got a brand new console window from Windows: a PowerShell window
    when RABBIT added its Defender cache exclusion (the one users noticed,
    since it only appears on the runs that actually need the exclusion), a
    signtool window during signature checks on machines with the Windows SDK,
    and a cmd window every time the wizard opened a link. All three now run
    windowless. Vendor installers still show their windows: those are the
    user's own installers, and hiding them would leave a wizard that looked
    stalled.

  • The Set REAPER's language row no longer claims to require one
    particular language pack. It listed every pack it accepts and then named
    whichever sorted first, so a step that any pack satisfies advertised
    itself as "requires REAPER in Spanish". It now says "requires a language
    pack" in all five interface languages. Steps with a single dependency —
    the ReaPack ones — still name it, since there it is the truth.
    (Reported by Scott Chesworth from Q&A.)

  • Enter on the Review page now starts the install, as the default
    Install button promises. Focus lands on the page's read-only summary,
    and that text box kept the key for itself.

  • On macOS, Space now ticks and unticks rows in the Packages list,
    and VoiceOver says whether the row is now checked. Before, only VO+Space
    while interacting with the list changed a checkbox, so the list could not
    be used from the keyboard alone
    (#28).

  • The package list on the Packages page could go missing entirely
    unless the window was maximized. The page had grown — the OSARA key-map
    note, then the Spanish-variant and REAPER-language dropdowns — until the
    controls stacked below the list no longer fitted the default window, and
    the layout took the whole shortfall out of the only control allowed to
    stretch: the list itself. It collapsed to nothing, and a control of zero
    height is not exposed to screen readers at all, so VoiceOver, NVDA,
    JAWS and Narrator alike found no list to read. The wizard pages now
    scroll instead of clipping what does not fit, so every control keeps its
    size whatever the window size and the language of the interface.

Security

  • RABBIT no longer hands a GITHUB_TOKEN from its environment to the
    programs it starts. That covers every installer that runs without admin
    rights, OSARA's pull request builds included, the macOS admin shell that
    runs installers, and REAPER when the wizard starts it. They used to inherit
    the whole environment, token included. With expert mode, that can be code
    nobody has reviewed yet, such as an OSARA pull request build or REAPER
    running one. RABBIT only needs the token for its own requests to GitHub's
    API.