Skip to content

fix: activate mise environment in native lint mode#123

Merged
zeitlinger merged 2 commits intomainfrom
fix/activate-native-lint-env
Mar 19, 2026
Merged

fix: activate mise environment in native lint mode#123
zeitlinger merged 2 commits intomainfrom
fix/activate-native-lint-env

Conversation

@zeitlinger
Copy link
Copy Markdown
Member

Summary

  • Activate the mise named environment (e.g. super-linter-v8.5.0) in
    native lint mode so installed tools are on PATH

setup:native-lint-tools installs tools into a named mise environment
via .mise.super-linter-*.toml, but the environment isn't active by
default. Native mode uses command -v to find tools, so shfmt,
actionlint, codespell etc. appear missing even after running setup.

Test plan

  • Tested locally in prometheus/client_java by pointing mise.toml
    at the local flint branch — mise run native-lint passes with all
    tools found

setup:native-lint-tools installs tools into a named mise environment
(e.g. super-linter-v8.5.0) but the environment isn't active by default.
Native mode uses `command -v` to find tools, so they appear missing.

Detect the .mise.super-linter-*.toml file and activate its environment
via `mise env -E` before checking for tools.
@zeitlinger zeitlinger requested a review from a team as a code owner March 19, 2026 14:12
Copilot AI review requested due to automatic review settings March 19, 2026 14:12
@cla-assistant
Copy link
Copy Markdown

cla-assistant Bot commented Mar 19, 2026

CLA assistant check
All committers have signed the CLA.

Copy link
Copy Markdown
Member

@martincostello martincostello left a comment

Choose a reason for hiding this comment

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

I've enabled the required status check the sign the CLA.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

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 fixes native lint mode tool discovery by activating the mise “super-linter-*” named environment created by setup:native-lint-tools, ensuring installed linters are available on PATH when native mode uses command -v.

Changes:

  • Detect .mise.super-linter-*.toml in native mode and derive the corresponding mise environment name.
  • Activate that mise environment via mise env -E ... so native linters can be found on PATH.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tasks/lint/super-linter.sh
Comment thread tasks/lint/super-linter.sh Outdated
Allow mise env -E to fail without exiting the script, so the user
gets the existing "Missing native lint tools" message instead of a
confusing mise error.
@zeitlinger zeitlinger merged commit d0fec45 into main Mar 19, 2026
10 checks passed
@zeitlinger zeitlinger deleted the fix/activate-native-lint-env branch March 19, 2026 15:01
zeitlinger pushed a commit that referenced this pull request Mar 19, 2026
🤖 I have created a release *beep* *boop*
---


## [0.9.1](v0.9.0...v0.9.1)
(2026-03-19)


### Bug Fixes

* activate mise environment in native lint mode
([#123](#123))
([d0fec45](d0fec45))

---
> [!IMPORTANT]
> Close and reopen this PR to trigger CI checks.

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
zeitlinger added a commit to grafana/docker-otel-lgtm that referenced this pull request Mar 20, 2026
Picks up the NATIVE env var fix (grafana/flint#123) that makes
native linting work correctly with mise environment activation.
zeitlinger added a commit to grafana/docker-otel-lgtm that referenced this pull request Mar 20, 2026
## Summary
- Bump flint from v0.8.0 to v0.9.1 across all 4 task URLs
- Picks up the NATIVE env var fix
([grafana/flint#123](grafana/flint#123)) that
makes native linting work correctly with mise environment activation

## Test plan
- [x] `NATIVE=true mise run lint:super-linter` passes clean
- [x] `NATIVE=true AUTOFIX=true mise run lint:super-linter` passes clean
- [ ] CI lint passes
zeitlinger pushed a commit that referenced this pull request Apr 13, 2026
## flint v0.20.0 — Rust rewrite

flint has been rewritten from scratch in Rust. The bash + Docker stack
is replaced by a fast, cross-platform native binary with no container
dependency.

### Highlights

- **Native binary** — no Docker, no bash wrappers; runs anywhere mise
can install a Rust crate
- **Parallel linting** — all checks run concurrently
- **Diff-aware** — only checks files changed since the merge base by
default (`--full` for everything)
- **`flint update`** — migrates obsolete `mise.toml` tool keys
automatically (e.g. `ubi:` → `github:`, `npm:markdownlint-cli` →
`npm:markdownlint-cli2`)
- **`flint hook install`** — installs a pre-commit hook without any mise
task knowledge
- **New linters**: `gofmt`, `google-java-format`, `ktlint`,
`dotnet-format`, `markdownlint-cli2`, `xmllint` (via `cargo:xmloxide`),
`license-header` (pure-Rust, no binary)
- **Windows support** — ktlint self-executing JAR handled via explicit
`java -jar` invocation

### Migration

See
[AGENTS-V2.md](https://github.com/grafana/flint/blob/main/AGENTS-V2.md)
and [README.md](https://github.com/grafana/flint/blob/main/README.md)
for full setup instructions.

Quick reference for existing consumers:

```toml
[tools]
# While installing from source (pre-crates.io release):
"cargo:https://github.com/grafana/flint" = "branch:main"

[env]
FLINT_CONFIG_DIR = ".github/config"

[tasks.lint]
run = "flint run"

[tasks."lint:fix"]
run = "flint run --fix"
```

Remove: `lint:super-linter`, `lint:links`, `lint:renovate-deps`,
`setup:native-lint-tools`, `setup:pre-commit-hook` tasks. Run `flint
update` to auto-migrate any obsolete tool keys.

> [!NOTE]
> The changelog below includes entries from the legacy v1 bash era — see
[README-V1.md](https://github.com/grafana/flint/blob/main/README-V1.md)
for v1 docs.

---

##
[0.20.0](flint-v0.19.0...flint-v0.20.0)
(2026-04-13)


### Features

* add flint v2 Rust binary
([#139](#139))
([19f2b25](19f2b25))
* add native linting mode and version mapping infrastructure
([#93](#93))
([24b06da](24b06da))
* add Renovate shareable preset for consuming repos
([#17](#17))
([8a06590](8a06590))
* consolidate link checking and add autofix flags
([#7](#7))
([086a5e9](086a5e9))
* flint update command, explicit JAR flag, v0.20.0
([#146](#146))
([b43bf52](b43bf52))
* handle line-number anchors and issue comments globally
([#56](#56))
([cf751df](cf751df))
* **links:** add GitHub URL remaps for line-number and fragment anchors
([#28](#28))
([5b59065](5b59065))
* **links:** auto-remap base-branch GitHub URLs to PR branch
([#18](#18))
([dd6cc61](dd6cc61))
* **renovate:** support SHA-pinned URLs in Renovate preset
([#21](#21))
([4fd1f28](4fd1f28))
* **super-linter:** default to slim image
([#24](#24))
([c8eeab8](c8eeab8))
* support NATIVE env var for container-free linting
([#107](#107))
([0a8193d](0a8193d))


### Bug Fixes

* activate mise environment in native lint mode
([#123](#123))
([d0fec45](d0fec45))
* add 'mise run fix' hint to lint failure output
([#90](#90))
([5b4ad5d](5b4ad5d))
* decouple version mapping generation from pinned super-linter version
([#112](#112))
([5370e77](5370e77))
* **deps:** update rust crate crossterm to 0.29
([#156](#156))
([c59ae3e](c59ae3e))
* **deps:** update rust crate similar to v3
([#160](#160))
([684be4e](684be4e))
* **deps:** update rust crate toml to v1
([#161](#161))
([3aae614](3aae614))
* **deps:** update rust crate toml_edit to 0.25
([#158](#158))
([42d9efd](42d9efd))
* exclude GitHub compare links from lychee checks
([#10](#10))
([e714608](e714608))
* fail native lint when enabled tools are missing
([#111](#111))
([163bb6b](163bb6b))
* improve link checker reliability against GitHub rate limiting
([#95](#95))
([7a5282d](7a5282d))
* include staged files in native lint file list
([#135](#135))
([34412d6](34412d6))
* **links:** add regex anchors to remap patterns
([#19](#19))
([2e17348](2e17348))
* native lint in worktrees, trust toml, use ec binary, drop isort
([#134](#134))
([8594bba](8594bba))
* **release-please:** fix footer not appearing on release PRs
([#40](#40))
([d7a55e4](d7a55e4))
* remap same-repo GitHub URLs to local file paths
([#100](#100))
([b4feadd](b4feadd))
* **renovate-deps:** forward GITHUB_TOKEN as GITHUB_COM_TOKEN
([#132](#132))
([4d6510b](4d6510b))
* replace broken release-please PR comment with docs
([#12](#12))
([817b37d](817b37d))
* run shellcheck on .bats files in native mode
([#137](#137))
([a4fd3f8](a4fd3f8))
* strip Scroll to Text Fragment anchors in link checks
([#86](#86))
([b630cdf](b630cdf))
* tighten markdownlint config for native mode
([#106](#106))
([6ef25b2](6ef25b2))
* use remap instead of exclude for issue comment anchors
([#58](#58))
([656f355](656f355))

---
> [!IMPORTANT]
> Close and reopen this PR to trigger CI checks.

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
This was referenced Apr 16, 2026
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