Skip to content

ci: enable MISE_PRERELEASES so the new prerelease field populates#140

Merged
jdx merged 1 commit intomainfrom
feat/include-prereleases
Apr 26, 2026
Merged

ci: enable MISE_PRERELEASES so the new prerelease field populates#140
jdx merged 1 commit intomainfrom
feat/include-prereleases

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented Apr 26, 2026

Summary

Sibling to #135. That PR plumbed prerelease = true through the TOML pipeline, but on its own the field is dead code: mise ls-remote --json filters pre-release tags out before emitting JSON unless the caller has opted in. With ~900 tools, per-tool config isn't viable.

jdx/mise#9415 adds a global MISE_PRERELEASES env var (and a matching --prerelease CLI flag) that flips the filter for every tool at once.

Changes

  • .github/workflows/update.yml — set MISE_PRERELEASES: "1" at the job env level. Covers the host-side mise ls-remote --json call in generate_toml_file (the JSON path that actually feeds generate-toml.js).

  • scripts/update.sh — forward -e MISE_PRERELEASES into the Docker container. Covers the plain-text docker run jdxcode/mise -y ls-remote call in fetch().

Verification (after deploy)

After the next run, expect to see prerelease = true flags on tools whose upstream releases are flagged as pre-releases — e.g. tools with -rc1 / -beta / -dev.N GitHub releases. Until then: zero hits, despite #135 being merged. Confirmed against the most recent run (24968319913) which touched 646 tools through the JSON path with zero prerelease = true flags emitted.

Sequencing

Optimistic — depends on:

  1. A mise release containing feat(ls-remote): add prereleases setting and --prerelease flag mise#9415 in the host mise installed by aube install / mise.run. (Today's host mise = v2026.4.23, which has #9329 but not #9415.)
  2. A rebuild of the jdxcode/mise Docker image with the same release for the plain-text fallback path.

Until both ship, MISE_PRERELEASES is silently ignored — same TOML output as today, no regression. Safe to merge whenever; it activates on its own as soon as the upstream pieces land.


Note

Low Risk
Low risk: only toggles an environment flag and forwards it into the Dockerized mise ls-remote call, changing which versions are included but not altering control flow or security-sensitive logic.

Overview
Enables global inclusion of prerelease tags during the automated versions update run by setting MISE_PRERELEASES=1 in the update GitHub Actions workflow.

Also forwards MISE_PRERELEASES into the docker run jdxcode/mise ... ls-remote invocation in scripts/update.sh, allowing downstream TOML generation to populate the new prerelease = true metadata when upstream marks releases as prereleases.

Reviewed by Cursor Bugbot for commit b8f30b5. Bugbot is set up for automated code reviews on this repo. Configure here.

…pulates

Sibling to #135. That PR plumbed `prerelease = true` through the TOML
pipeline, but on its own the field is dead code: `mise ls-remote --json`
filters pre-release tags out before emitting JSON unless the caller has
opted in. With ~900 tools, per-tool config isn't viable.

jdx/mise#9415 adds a global `MISE_PRERELEASES` env var that flips the
filter for every tool at once. Setting it at the workflow env level
covers the host-side `mise ls-remote --json` call in `generate_toml_file`
(the JSON path that actually feeds `generate-toml.js`). Forwarding
`-e MISE_PRERELEASES` into the Docker container covers the plain-text
`docker run jdxcode/mise -y ls-remote` call in `fetch()`.

Optimistic: requires a mise release containing jdx/mise#9415 in the host
mise installed by `aube install`/`mise.run`, and a rebuild of the
`jdxcode/mise` image for the Docker call. Until both ship, the env var
is silently ignored — same TOML output as today, no regression.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@gemini-code-assist
Copy link
Copy Markdown

Warning

You have reached your daily quota limit. Please wait up to 24 hours and I will start processing your requests again!

@greptile-apps
Copy link
Copy Markdown

greptile-apps Bot commented Apr 26, 2026

Greptile Summary

This PR enables MISE_PRERELEASES=1 globally to allow the prerelease = true TOML field (introduced in #135) to actually be populated during version collection. The change covers both code paths: the host-side JSON path via a workflow-level env var, and the Docker plain-text path via an -e MISE_PRERELEASES forward in update.sh. The PR is explicitly designed to be a no-op until the upstream mise release containing jdx/mise#9415 ships, so there is no regression risk.

Confidence Score: 5/5

Safe to merge — change is backwards-compatible and silently no-ops until upstream mise ships #9415.

Two-line change across two files, both following established patterns in the repo. No logic errors, no security concerns, and the PR description clearly explains the sequencing dependency. Until the upstream feature ships, the env var is ignored and output is identical to today.

No files require special attention.

Important Files Changed

Filename Overview
.github/workflows/update.yml Adds MISE_PRERELEASES: "1" to the workflow-level env block, enabling pre-release version collection for all jobs. Well-commented and correctly scoped.
scripts/update.sh Adds -e MISE_PRERELEASES to the docker run command, forwarding the env var from the workflow host into the container for the plain-text ls-remote path. Consistent with the existing pattern for other env forwards.

Sequence Diagram

sequenceDiagram
    participant GHA as GitHub Actions (update.yml)
    participant SH as update.sh
    participant Host as Host mise (ls-remote --json)
    participant Docker as Docker jdxcode/mise (ls-remote)
    participant TOML as generate-toml.js

    GHA->>GHA: Set MISE_PRERELEASES=1 (workflow env)
    GHA->>SH: Run update.sh

    alt JSON path (generate_toml_file)
        SH->>Host: mise ls-remote --json
        Note over Host: MISE_PRERELEASES=1 inherited from workflow env
        Host-->>SH: JSON with prerelease flags
        SH->>TOML: Pass JSON
        TOML-->>SH: TOML with prerelease=true
    else Plain-text path (fetch)
        SH->>Docker: docker run -e MISE_PRERELEASES jdxcode/mise ls-remote
        Note over Docker: MISE_PRERELEASES=1 forwarded via -e flag
        Docker-->>SH: Plain-text versions list
    end
Loading

Reviews (1): Last reviewed commit: "ci: enable MISE_PRERELEASES so the new `..." | Re-trigger Greptile

@jdx jdx merged commit f4d49f0 into main Apr 26, 2026
7 of 8 checks passed
@jdx jdx deleted the feat/include-prereleases branch April 26, 2026 23:11
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit b8f30b5. Configure here.

# emitting JSON and the rendered TOML never gets the new `prerelease`
# field that scripts/generate-toml.js plumbs through (#135). Requires
# mise >= the release containing jdx/mise#9415.
MISE_PRERELEASES: "1"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Workflow-wide env var may install prerelease CI tools

Medium Severity

MISE_PRERELEASES is set at the workflow-level env: block, making it active during all steps — including jdx/mise-action and aube install, which resolve and install CI tools from mise.toml. That file specifies latest for several tools (aube, fd, shellcheck, shfmt, etc.) and "24" for node. Once the upstream mise release containing jdx/mise#9415 ships, MISE_PRERELEASES=1 will cause those version specifiers to potentially resolve to pre-release/unstable versions, risking CI breakage. Moving MISE_PRERELEASES to the step-level env: on the update.sh step (alongside PARALLEL_FETCHES) would scope the effect to only the intended ls-remote calls.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit b8f30b5. Configure here.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Currently, the Railway build system are using gradle 9.6.0 Pre release build to build the system due to this bug mentioned here. If #143 is not effective in fixing this regression, do we have any plan to address it?

 Packages  
  ──────────
  java    │  25.0.2    │  RAILPACK_JDK_VERSION (25)
  gradle  │  9.6.0-M1  │  gradle-wrapper.properties (9)
            

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants