Skip to content

chore(mise): bootstrap improvements and gitignore fixes - #265

Merged
richardthe3rd merged 8 commits into
mainfrom
claude/evaluate-mise-bootstrap-bzEZV
May 14, 2026
Merged

chore(mise): bootstrap improvements and gitignore fixes#265
richardthe3rd merged 8 commits into
mainfrom
claude/evaluate-mise-bootstrap-bzEZV

Conversation

@richardthe3rd

@richardthe3rd richardthe3rd commented May 14, 2026

Copy link
Copy Markdown
Owner

Improvements to the mise bootstrap setup and repository hygiene.

mise bootstrap

  • Add ./bin to PATH via [env] _.path so npm's post-install reshimming
    can find the bootstrap's mise binary (fixes firebase-tools/playwright
    install failures with exit code 127)
  • Move playwright to task-level tool on e2e tasks — only installed on
    demand, not on every mise install
  • Move firebase-tools to mise.human.toml — only needed for
    flutterfire configure, a human-only operation
  • Add playwright tool declaration to setup:playwright file task
  • Bump mise bootstrap to 2026.5.8

gitignore

  • Commit pubspec.lock and mise.lock — previously suppressed by an
    erroneous *.lock blanket rule added by a prior agent session
  • Remove Flutter SDK monorepo paths (/dev/, /packages/flutter/ etc.)
    that don't apply to app projects
  • Add entries from Dart, Node, and Android gitignore templates:
    .env*, .firebase/, .idea/, *.keystore, *.hprof,
    .cxx/, .npm, .eslintcache, npm/yarn debug log patterns

claude added 7 commits May 14, 2026 21:44
The npm backend's post-install reshimming step calls `mise` as a bare
command, which fails in the bootstrap setup because the mise binary lives
in .mise/ and is not on PATH. Adding ./bin to PATH via _.path makes the
bootstrap script reachable as `mise` during tool installation.

Fixes firebase-tools and playwright install failures with exit code 127.
playwright is now a task-level tool on the three test:e2e tasks so it
only installs on demand rather than during every mise install. This
keeps agent session startup lean (flutter + node only).

firebase-tools is only needed for flutterfire configure, which is a
human operation, so it moves to mise.human.toml.
The blanket *.lock rule was added in error by a previous agent session.
It was incorrectly suppressing pubspec.lock (which should always be
committed for apps to pin exact dependency versions) and mise.lock
(which pins tool download URLs across platforms).

package-lock.json remains explicitly ignored as before.
The template includes paths like /dev/benchmarks/, /packages/flutter/,
linked_*.ds etc. that belong to the Flutter SDK monorepo, not an app.
Also removes two exception rules pointing at SDK-internal paths.
The iOS default.* exceptions are kept as they apply to app projects.
- .env / .env.* (Dart + Node templates)
- logs directory (Node template)
- .firebase/ (Node template; Firebase CLI hosting cache)
- .idea/ (Android template; IntelliJ/Android Studio)
- *.keystore alongside *.jks (Android template)
- .cxx/, .externalNativeBuild/ (Android template; native build dirs)
- *.hprof (Android template; heap dumps)
- .npm, .eslintcache, npm-debug/yarn-debug log patterns (Node template)
Copilot AI review requested due to automatic review settings May 14, 2026 22:03
@richardthe3rd richardthe3rd changed the title fix(mise): add ./bin to PATH so npm reshimming can find mise chore(mise): bootstrap improvements and gitignore fixes May 14, 2026
@github-actions

github-actions Bot commented May 14, 2026

Copy link
Copy Markdown
Contributor

LCOV of commit 8302b74 during CI #180

Summary coverage rate:
  lines......: 77.1% (2439 of 3163 lines)
  functions..: no data found
  branches...: no data found

Files changed coverage rate: n/a

@codecov

codecov Bot commented May 14, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

This PR adjusts the project’s mise setup to make the repo’s ./bin/mise wrapper discoverable on PATH during mise/npm installation steps, addressing npm backend reshimming failures during bootstrap.

Changes:

  • Add ./bin to PATH via mise.toml [env] _.path so mise is callable as a bare command during installs.
  • Introduce/commit lockfiles (mise.lock, pubspec.lock) to improve reproducibility of tool/dependency resolution.
  • Refactor dev tooling pins (Playwright) from a global [tools] section into task/script-scoped tool requirements.

Reviewed changes

Copilot reviewed 4 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
mise.toml Adds ./bin to PATH via mise env configuration.
bin/mise Updates the vendored mise bootstrap version/checksums.
mise.lock Adds mise lockfile for pinned tool versions/checksums.
mise.dev.toml Moves Playwright tool pin to task-level tools.* requirements.
mise-tasks/setup/playwright Adds a task header tool pin for Playwright setup script.
mise.human.toml Adds a pinned npm:firebase-tools entry for human environment installs.
.gitignore Stops ignoring *.lock and broadens ignores (env files/logs/IDE/etc.).
pubspec.lock Adds Dart/Flutter dependency lockfile for reproducible pub resolution.

Comment thread mise.dev.toml
Comment on lines 30 to 33
[tasks."test:e2e"]
description = "Run e2e tests with Playwright (headless mode)"
tools."npm:playwright" = "1.48.2"
run = '''
Comment thread mise-tasks/setup/playwright Outdated
@@ -1,5 +1,6 @@
#!/usr/bin/env bash
#MISE description="Setup Playwright for e2e testing (install browsers and dependencies)"
#MISE tools."npm:playwright"="1.48.2"
All e2e tasks use 'npm run' and 'npx playwright' which resolve to the
local node_modules @playwright/test, not the mise-installed CLI. The
mise tool pin was never called by any task and caused a version skew
with package.json (1.48.2 vs resolved 1.57.0).

Addresses Copilot review comments on PR #265.
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Cloudflare Pages Preview

Your preview deployment is ready!

Preview URL: https://claude-evaluate-mise-bootstr.staging-cambeerfestival.pages.dev

This preview will be automatically updated when you push new commits to this PR.

@richardthe3rd
richardthe3rd merged commit 04059f5 into main May 14, 2026
11 checks passed
@richardthe3rd
richardthe3rd deleted the claude/evaluate-mise-bootstrap-bzEZV branch May 14, 2026 22:22
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.

3 participants