Skip to content

Install Flutter using mise tool - #184

Merged
richardthe3rd merged 7 commits into
mainfrom
claude/install-flutter-mise-3a0PR
Dec 23, 2025
Merged

Install Flutter using mise tool#184
richardthe3rd merged 7 commits into
mainfrom
claude/install-flutter-mise-3a0PR

Conversation

@richardthe3rd

Copy link
Copy Markdown
Owner

This pull request refactors and improves the project's development and setup scripts by moving complex shell scripts out of mise.dev.toml into dedicated files under mise-tasks/, adds better support for sandboxed environments, and updates documentation and task naming for clarity and maintainability.

Key changes:

Task Script Refactoring and Organization

  • Moved complex task scripts (setup:tunnel, setup:playwright, dev:tunnel, build:web:prod) from inline definitions in mise.dev.toml to dedicated shell script files in the mise-tasks/ directory. This improves maintainability and separation of concerns. (mise-tasks/setup/tunnel, mise-tasks/setup/playwright, mise-tasks/dev/tunnel, mise-tasks/build/web/prod, [1] [2]
  • Updated mise.dev.toml to reference these new scripts and removed the previous inline script definitions. (mise.dev.toml, [1] [2]

Sandboxed Environment Support

  • Added a new mise.sandboxed.toml configuration file to disable problematic git backends (libgit2, gix) for sandboxed environments, preventing installation errors with Flutter. (mise.sandboxed.toml, mise.sandboxed.tomlR1-R21)
  • Updated documentation in CLAUDE.md to describe the new recommended approach for installing Flutter in sandboxed environments and clarified when workarounds are necessary. (CLAUDE.md, [1] [2]

Task Naming and Documentation Improvements

  • Renamed Playwright setup task from playwright-setup to setup:playwright for consistency, and updated all references in documentation and scripts. (CLAUDE.md, [1] [2]; mise-tasks/setup/playwright, [3]
  • Added descriptions to e2e test tasks and renamed check-page to test:check-page for clarity. (mise.dev.toml, mise.dev.tomlL217-R95)

Miscellaneous

  • Minor updates to documentation to clarify usage of new scripts and settings. (CLAUDE.md, [1] [2]

These changes collectively improve the maintainability, clarity, and robustness of the project's development tooling and onboarding experience.

Update the "Known Issues and Workarounds" section to document the
recommended approach of disabling libgit2/gix settings before installation,
which prevents the installation error rather than fixing it after.

Changes:
- Add recommended approach: disable mise libgit2/gix settings first
- Keep alternative approach: manual plugin clone if error occurs
- Clarify both methods with better organization
Create a dedicated environment configuration for Claude Code that:
- Disables libgit2/gix to prevent Flutter installation errors
- Can be version controlled and shared across all instances
- Supports combined environments: MISE_ENV=claudecode,dev

This is better than using `mise settings set` because:
- Settings are checked into git (shared across team)
- Self-documenting (explains why settings exist)
- Environment-specific (only affects Claude Code workflow)

Updated CLAUDE.md to document the new approach.
Changes:
- Renamed mise.claudecode.toml → mise.sandboxed.toml
- More accurately describes the constraint (sandboxed) vs platform (web)
- Updated all documentation to use MISE_ENV=sandboxed
- Clarified that these settings are ONLY needed for sandboxed environments
- Desktop Claude Code and local development do not need these workarounds

Usage:
- Sandboxed: MISE_ENV=sandboxed mise install
- Combined: MISE_ENV=sandboxed,dev mise install
Add clarification about how multiple mise environments work:
- Multiple environments can be specified: MISE_ENV=sandboxed,dev
- The last one takes precedence for conflicting values
- Settings are merged across all specified environments

This helps users understand the order matters when combining
environments like sandboxed and dev.
Added descriptions to Playwright and e2e test tasks:
- playwright-setup: Setup Playwright for e2e testing
- test:e2e: Run e2e tests with Playwright (headless mode)
- test:e2e:ui: Run e2e tests in Playwright UI mode (interactive)
- test:e2e:headed: Run e2e tests in headed mode (visible browser)

This makes all tasks visible in `mise tasks ls` with helpful descriptions.
**Task Renaming (consistent namespacing):**
- tunnel-setup → setup:tunnel
- playwright-setup → setup:playwright
- dev-tunnel → dev:tunnel
- check-page → test:check-page

**File-Based Tasks (improved maintainability):**
Moved complex tasks (>25 lines) to mise-tasks/ directory:
- setup:tunnel (27 lines) - Cloudflare tunnel setup
- setup:playwright (31 lines) - Playwright installation
- dev:tunnel (29 lines) - Dev server with tunnel
- build:web:prod (25 lines) - Production build with versioning

**Benefits:**
- Consistent `:` separator for namespaced tasks
- Better editor support (syntax highlighting, debugging)
- Cleaner mise.dev.toml (reduced from 250 to ~130 lines)
- File-based tasks are version controlled in mise-tasks/
- Easier to maintain and test complex tasks

**Documentation:**
- Updated CLAUDE.md with new task names
- Added all missing task descriptions
- Add mise-tasks/build/web/prod file-based task
- Update .gitignore to allow mise-tasks/build/ while still ignoring
  Flutter build output directory
@richardthe3rd
richardthe3rd merged commit 9560889 into main Dec 23, 2025
10 checks passed
@richardthe3rd
richardthe3rd deleted the claude/install-flutter-mise-3a0PR branch December 23, 2025 16:45
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