@@ -267,42 +267,47 @@ registry (PR to zed-industries/extensions), and consider shipping Helix indent/t
267267## Distribution (marketplace/registry presence — post-launch except where noted)
268268
269269- ** Open VSX** — DONE, ** accepted** : ` pyfun.pyfun ` covers VSCodium/code-server/Gitpod/Theia.
270- At ** 0.3 .0** (2026-07-31). Every release: ` ovsx publish <vsix> -p <token> ` (scriptable, no
271- moderation).
270+ At ** 0.4 .0** (2026-07-31, verified against the registry API). Every release:
271+ ` ovsx publish <vsix> -p <token> ` (scriptable, no moderation).
272272- ** JetBrains Marketplace** — DONE, ** accepted** : plugin ` com.github.simontreanor.pyfun ` (id
273273 32915 ) is live (` editors/jetbrains/ ` , thin: file type + TextMate grammar + LSP4IJ wiring, free
274- mode + legacy CE, 2024.2+). 0.1.0 and 0.2.0 approved; ** 0.3.0 uploaded 2026-07-31 via
275- ` gradle publishPlugin ` , awaiting the usual moderation pass** — check plugins.jetbrains.com if it
276- has not appeared in a few business days.
277- - ** VS Code Marketplace** — accepted and live as ` pyfun.pyfun ` , but the ** only surface that cannot
278- be scripted** : the vsix is uploaded by hand through the publisher web UI (the CLI auth path is
279- broken — see ` editors/vscode/DEVELOPMENT.md ` and RELEASING.md). It is therefore the one that
280- silently falls behind; check it whenever a release goes out.
281- - ** Zed extensions registry** — PR open
282- ([ zed-industries/extensions #6814 ] ( https://github.com/zed-industries/extensions/pull/6814 ) ):
283- the main repo as a submodule with ` path = editors/zed ` (no dedicated repo needed; the
284- registry required a LICENSE file inside the extension dir — added). On merge, Pyfun is
285- one-click in Zed's extension panel.
286- - ** Upstream registry PRs** — status after the 2026-07-14 sweep:
287- - ** Helix** : PR open ([ helix-editor/helix #16036 ] ( https://github.com/helix-editor/helix/pull/16036 ) ) —
288- languages.toml + git/rev/subpath grammar + Helix-scope queries; their query-check/docgen run
289- clean locally; CI awaits first-contributor approval. May face an "established language" test.
290- - ** nvim-lspconfig** : PR #4476 CLOSED by maintainers — new languages need adoption evidence
291- (~ 100 stars informally). ** Resubmit post-launch with downloads/installs/stars in hand** ; until
292- then the manual ` vim.lsp.config ` snippet in ` editors/README.md ` is the documented path.
293- - ** Mason registry** : PR #16012 withdrawn by us (its acceptance path was lspconfig approval).
294- Same resubmission trigger as lspconfig.
295- - ** nvim-treesitter** : upstream repo ARCHIVED 2026-04, no successor yet (candidates: the
296- neovim-treesitter fork org, or parser management in Neovim core — neovim/neovim #39006 ). A
297- fully validated branch is parked at ` simontreanor/nvim-treesitter ` (` add-pyfun ` , parser entry
298- + queries, their linter clean) ready to retarget when the ecosystem settles.
299- - ** MELPA** ` pyfun-mode ` recipe: PR open
300- ([ melpa/melpa #10094 ] ( https://github.com/melpa/melpa/pull/10094 ) ); their process asked for an
301- ` Assisted-by: ` header on the elisp (added). MELPA reviews code, not popularity — expect
302- interactive review comments.
303- - ** Sublime Text Package Control** (M, new audience) and a ** Pygments lexer** on PyPI (S–M;
304- improves JupyterLab/nbconvert/Sphinx rendering — kernel currently declares the ` fsharp `
305- lexer as an approximation) — both demand-gated.
274+ mode + legacy CE, 2024.2+). 0.1.0, 0.2.0 and ** 0.3.0 all approved** (verified against the
275+ plugins API 2026-07-31 — the earlier "awaiting moderation" note was stale). ** 0.4.0 is not
276+ uploaded yet** : it is the one artifact the 0.4.0 release still owes, and acceptance is already
277+ granted, so ` gradle publishPlugin ` (JDK 21, ` JETBRAINS_PERMANENT_TOKEN ` ) is not gated on
278+ anything.
279+ - ** VS Code Marketplace** — accepted and live as ` pyfun.pyfun ` , at ** 0.4.0** (2026-07-31, verified
280+ against the gallery API). The ** only surface that cannot be scripted** : the vsix is uploaded by
281+ hand through the publisher web UI (the CLI auth path is broken — see
282+ ` editors/vscode/DEVELOPMENT.md ` and RELEASING.md). It is therefore the one that silently falls
283+ behind; check it whenever a release goes out. Note it reports the * previous* version for a few
284+ minutes after an upload while validation runs, so a stale read there is not a failed upload.
285+ - ** Third-party registries — PARKED until there is adoption evidence** (decided 2026-07-31). The
286+ surfaces Pyfun controls (PyPI, VS Code Marketplace, Open VSX, JetBrains) are the ones that get
287+ kept current every release; these do not, and their status is deliberately * not* re-checked each
288+ time. Two of them already told us the same thing in different words, which is what makes the rule
289+ rather than the exception:
290+ - ** nvim-lspconfig** (#4476 , closed) and ** Mason** (#16012 , withdrawn — its path was lspconfig
291+ approval): new languages need adoption evidence, informally ~ 100 stars.
292+ - ** MELPA** ` pyfun-mode ` (melpa/melpa #10094 , closed 2026-07-19): * not* a rejection of the recipe,
293+ which they had already signed off; they require the Emacs package to live in a public repository
294+ for ** one month or more** and ` pyfun-mode.el ` was five days old. Re-openable any time from
295+ mid-August with the same recipe unchanged.
296+ - ** Zed** (zed-industries/extensions #6814 — the main repo as a submodule at ` editors/zed ` , with
297+ the LICENSE the registry wanted inside the extension dir) and ** Helix**
298+ (helix-editor/helix #16036 — languages.toml, git/rev/subpath grammar, Helix-scope queries, their
299+ checks clean locally) are still open and need nothing from us; if they merge, they merge.
300+ - ** nvim-treesitter** : upstream ARCHIVED 2026-04 with no successor (candidates: the
301+ neovim-treesitter fork org, or parser management in Neovim core — neovim/neovim #39006 ). A fully
302+ validated branch is parked at ` simontreanor/nvim-treesitter ` (` add-pyfun ` ), ready to retarget
303+ when the ecosystem settles.
304+ - ** Sublime Text Package Control** and a ** Pygments lexer** on PyPI (the kernel declares the
305+ ` fsharp ` lexer as an approximation) were always demand-gated and stay that way.
306+
307+ The documented fallback for every one of these already exists in ` editors/README.md ` , so a user
308+ on any of those editors is not blocked — they install by hand instead of by registry. Revisit the
309+ whole list when download or install numbers give the maintainers something to say yes to, rather
310+ than re-litigating each one per release.
306311
307312## Docs & education site (live at simontreanor.github.io/Pyfun — what remains)
308313
0 commit comments