Hi Zihan,

Thanks for bringing these to the list — and for laying out the externals
reasoning up front, which makes the tradeoff much clearer than a bare
version bump would.

**1. Minimum supported Grafana version**

I agree the declaration should match what we actually test. Since
`@grafana/*` resolves from the host Grafana at runtime, a "declared but
unverified" floor is effectively no guarantee at all.

I'd suggest **option 1 — follow the toolchain**: raise to `>=12.3.0` (or
whatever the current scaffold's devDependencies track), document the
compatibility change in the plugin README and release notes, and add a CI
smoke test that boots the *minimum* declared Grafana version and verifies
the plugin loads and runs a table-model query. The smoke test is the part
that makes either choice trustworthy, so please keep it in #118 regardless.

The alternative — pinning the `@grafana/*` devDependencies to the oldest
version we intend to support — is more maintenance and partly defeats the
purpose of the migration, so I wouldn't choose it unless there's a concrete
user need we'd otherwise break.

Dropping Grafana 9/10/11 users of an already-released plugin is a
compatibility decision, so I'd like to give the community a chance to
object. **If there are no objections by end of 2026-08-06 (Thursday) UTC,
I'll merge #118 with option 1.**

**2. AGENT-instruction files**

I'd drop them from the PR and gitignore them. A checked-in,
scaffold-generated instruction set that tells contributors "do not modify
this folder" sits awkwardly with the expectation that everything in an ASF
repository is governed by the project — and since `.config` is regenerated
by the scaffold anyway, carrying it adds a maintenance surface without
adding governance value. If the community later develops a policy on
agent-facing files, we can revisit deliberately rather than inherit it as a
toolchain side effect.

Same deadline applies: no objections by 2026-08-06 → #118 lands without
them.

**3. LICENSE / RAT coverage for the grafana-plugin module**

This one I'll fold into #118 as a fix regardless. The module is the only
one in this repo carrying its own LICENSE, yet it's excluded from
apache-rat in the connectors pom, and no Maven job builds it in the default
connectors profile. With the dependency set changing wholesale (+69/−18),
I'd like to:

- bring the grafana-plugin tree back into RAT (or add a dedicated license
check), and
- give the module a Maven/CI path that actually builds it (it currently
only appears under the `with-grafana-plugin` profile).

Zihan, happy to have you implement these per the above; if the community
prefers a different direction on 1 or 2, speak up before 2026-08-06.

Best,
Xuan Wang

Zh D <[email protected]> 于2026年8月3日周一 20:43写道:

> Hi all,
>
> While migrating the Grafana data source plugin off the archived
> @grafana/toolkit onto @grafana/create-plugin (iotdb-extras PR #118),
> two questions came up that I do not think I should decide inside the
> PR. Xuan Wang raised both in review and suggested bringing them here.
> Neither blocks the migration itself.
>
> 1. Minimum supported Grafana version
> ------------------------------------
>
> The migration regenerates the plugin against the current scaffold, and
> the question is what to declare in plugin.json. Today it says
>
> "grafanaDependency": ">=9.3.0"
>
> and the PR currently proposes
>
> "grafanaDependency": ">=12.3.0"
>
> The technical situation: the @grafana/* packages are webpack externals,
> resolved from the host Grafana at runtime rather than bundled. So a
> plugin built against 13.x that calls a newer @grafana/ui or
> @grafana/data API does not fail to build against an older host -- it
> builds fine and then fails inside the user's Grafana, with no bundled
> fallback. In that sense a floor we have not tested is not really a
> supported floor.
>
> The cost is the part that is not mine to decide: raising it drops
> Grafana 9, 10 and 11 users of an already-released Apache plugin. That
> is a project compatibility decision rather than a build detail.
>
> The alternative, if the PMC prefers to keep a lower floor, is to pin
> the @grafana/* devDependencies down to the oldest version we intend to
> support instead of tracking the scaffold, and keep the declared
> dependency where it is. That is more maintenance but it makes the
> declared floor real rather than nominal.
>
> I have no strong preference and will implement whichever the PMC
> decides.
>
> 2. Agent-instruction files emitted by the scaffold
> --------------------------------------------------
>
> @grafana/create-plugin now generates a .config/AGENTS/ directory --
> four files, 316 lines (instructions.md, e2e-testing.md and two files
> under skills/). They are vendor-neutral Grafana content: they describe
> how to build, validate and e2e-test a plugin, and point at Grafana's
> own published component documentation. Nothing in them is specific to
> any AI vendor, and nothing claims authorship of our code.
>
> Two things about them are worth a conscious decision rather than
> arriving as a side effect of a toolchain bump:
>
> - They are instructions directed at an automated agent, checked into
> an ASF repository. As far as I can tell that is new ground for
> this project.
>
> - instructions.md lists under "Critical rules": "Do not modify
> anything inside the .config folder. It is managed by Grafana
> plugin tools." A checked-in file telling contributors not to
> modify part of the tree sits a little awkwardly next to the usual
> expectation that everything in the repository is governed by the
> project. In practice .config is regenerated by the scaffold, so
> the rule is descriptive rather than a real restriction -- but I
> would rather have that said out loud than assumed.
>
> They can be dropped from the PR and gitignored if the project would
> rather not carry them; the build does not depend on them.
>
> Related, and the reason I am asking now rather than later: the
> migration replaces the dependency set wholesale -- package.json
> changes by +69/-18 and yarn.lock (11,348 lines) is replaced by
> package-lock.json (16,642 lines).
>
> connectors/grafana-plugin/ is the only module in this repository that
> carries its own LICENSE; NOTICE files live at the root and cover the
> project as a whole. That file is unchecked twice over: the connectors
> pom excludes the grafana-plugin tree from apache-rat, and no CI job
> builds this module through Maven at all, since it sits in the separate
> with-grafana-plugin profile rather than with-all-connectors. Given the
> scale of the dependency change it seems worth confirming whether that
> LICENSE needs a pass, even though these are devDependencies and are
> not shipped in the plugin artifact.
>
> Happy to do the work either way on any of these -- I am asking for
> the direction, not for someone else to pick it up.
>
> Best regards,
> Zihan Dai
> GitHub: PDGGK
>

Reply via email to