Title: Rslint extension sunset checklist · Issue #86 · rstackjs/rstack-editor · GitHub
Open Graph Title: Rslint extension sunset checklist · Issue #86 · rstackjs/rstack-editor
X Title: Rslint extension sunset checklist · Issue #86 · rstackjs/rstack-editor
Description: Retire the standalone Rslint extension (rstack.rslint, web-infra-dev/rslint packages/vscode-extension) in favor of rstack.rstack, following the same process as #75. Decisions Same as #75, with these values: Settings mapping: rslint.enabl...
Open Graph Description: Retire the standalone Rslint extension (rstack.rslint, web-infra-dev/rslint packages/vscode-extension) in favor of rstack.rstack, following the same process as #75. Decisions Same as #75, with thes...
X Description: Retire the standalone Rslint extension (rstack.rslint, web-infra-dev/rslint packages/vscode-extension) in favor of rstack.rstack, following the same process as #75. Decisions Same as #75, with thes...
Mail addresses
vsmarketplace@microsoft.com
Opengraph URL: https://github.com/rstackjs/rstack-editor/issues/86
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Rslint extension sunset checklist","articleBody":"Retire the standalone Rslint extension (`rstack.rslint`, web-infra-dev/rslint `packages/vscode-extension`) in favor of `rstack.rstack`, following the same process as #75.\n\n## Decisions\n\nSame as #75, with these values:\n\n- Settings mapping: `rslint.enable` → `rstack.rslint.enable`, `rslint.corePath` → `rstack.rslint.corePath`, `rslint.trace.server` → `rstack.rslint.trace.server`. `rslint.binPath` / `rslint.customBinPath` have no equivalent. Settings are not migrated automatically.\n- Supported core range for the final release: `@rslint/core` `^0.9.0` (0.9.x prereleases included).\n- `displayName` becomes `Rslint (moved to Rstack)`. Do not try `Rslint (Deprecated)`; the Marketplace rejects display names close to an existing one (`TSLint (deprecated)`) at publish time. Fallback: `Rslint (now part of Rstack)`.\n- No changes to `rstack.rstack`. No `extensionPack` / `extensionDependencies` link. \"Don't show again\" lives in `globalState`.\n\n## Final release behavior\n\nSame three cases as #75, in order. Reference implementation: web-infra-dev/rstest `packages/vscode/src/migrationNotice.ts` and `versionCheck.ts` (web-infra-dev/rstest#1917).\n\n1. **`rstack.rstack` is installed and enabled.** Stand down. Prompt \"Rstack has taken over Rslint. Uninstall the Rslint extension.\" with **Uninstall Rslint** and **Don't show again**. Only check whether Rstack is installed; drop the current `rstack.rslint.enable` condition.\n2. **The local `@rslint/core` does not satisfy `^0.9.0`.** Do not start a runtime for that core. Error on every activation: \"Rslint has moved into the Rstack extension. The Rslint extension only supports @rslint/core ^0.9.0 (found X). Please install Rstack.\" with **Install Rstack**.\n3. **Only the old extension is present.** Run normally. Prompt once: \"Rslint has moved into the Rstack extension. The Rslint extension is deprecated and will not be updated. Please install Rstack.\" with **Install Rstack** and **Don't show again**.\n\nAt most one notification at a time: case 3 is shown only if case 2 did not fire.\n\n## Checklist\n\n### Phase 1: final `rstack.rslint` release (web-infra-dev/rslint)\n\nUpstream coverage after this phase: rstackjs/rstack-ecosystem-ci#104 runs this repo's `test:unit` against the freshly built `@rslint/core` on every rslint `main` push, once web-infra-dev/rslint#2420 connects rslint to the ecosystem CI. Unlike the Rstest suite (rstackjs/rstack-ecosystem-ci#99), it does not run `lint` yet. Renovate's `rstack toolchain` group, which includes `@rslint/**`, opens a PR that runs the three-platform E2E on every release. Running this repo's VS Code E2E in ecosystem-ci stays out of scope for the same reasons as #75.\n\n- [x] Implement the three cases above, with unit and E2E tests (web-infra-dev/rslint#2427)\n- [x] Add the `^0.9.0` semver guard on the local `@rslint/core`, checked from `package.json` before any core module is loaded (web-infra-dev/rslint#2427)\n- [x] Rename `displayName` to `Rslint (moved to Rstack)` (web-infra-dev/rslint#2427)\n- [x] Add the settings key mapping table to `packages/vscode-extension/README.md` (web-infra-dev/rslint#2427)\n- [x] Release through the normal Release workflow (`to_release: all`, `extension_type: official`) to both Marketplace and Open VSX (0.10.0: Open VSX on 2026-10-31, Marketplace on 2026-11-02 after renewing `RSLINT_VSCE_PAT` and re-running the failed job)\n- [x] ~~Freeze the extension version: exclude `packages/vscode-extension/package.json` from `scripts/version.mjs`, update `.agents/skills/prepare-rslint-npm-release/SKILL.md`, and add `--skip-duplicate` to both publish commands in `scripts/publish-marketplace.mjs` so later full releases do not fail on the frozen version~~ Superseded: web-infra-dev/rslint#2488 removes the extension directly, so there is no version left to freeze\n- [x] Merge web-infra-dev/rslint#2420 so rslint `main` pushes dispatch the ecosystem CI (merged 2026-10-14; the first `main` push after it, web-infra-dev/rslint#2427, dispatched rstackjs/rstack-ecosystem-ci with the `rstack-editor` suite from rstackjs/rstack-ecosystem-ci#104)\n- [x] Remove the extension E2E from CI (`test-node` via the root `test` filter, and `test-vscode-windows`): it runs against the workspace `@rslint/core`, so the `^0.9.0` guard would fail it at the first 0.10.0 bump (web-infra-dev/rslint#2480)\n\n### Phase 2: registries and docs (2 to 4 weeks after Phase 1)\n- [x] Request Marketplace deprecation (`rstack.rslint` → `rstack.rstack`, `disallowInstall: false`) in microsoft/vscode-discussions#1 ([comment](https://github.com/microsoft/vscode-discussions/discussions/1#discussioncomment-19350082), requested 2026-11-02, not yet applied)\n- [x] Open a PR to EclipseFdn/publish-extensions `extension-control/extensions.json` with the same entry (EclipseFdn/publish-extensions#1207, open)\n- [ ] Replace remaining `rstack.rslint` references in rslint docs, templates, and `.vscode/extensions.json` files (the rslint repo's own references were removed in web-infra-dev/rslint#2488, merged 2026-11-04; the last two `.vscode/extensions.json` entries are replaced in rstackjs/rspack-ecosystem-ci#91 (merged 2026-11-04) and rstackjs/rsbuild-plugin-tailwindcss#121 (open); no other `.vscode/extensions.json` in the web-infra-dev or rstackjs orgs recommends `rstack.rslint`)\n\n### Phase 3: stop publishing in rslint\n- [x] Remove the `publish-extension-vscode` and `publish-extension-open-vsx` jobs from `.github/workflows/release.yml` and the `extension` option of `to_release` (web-infra-dev/rslint#2488, merged 2026-11-04)\n- [ ] Revoke `RSLINT_VSCE_PAT` / `RSLINT_OVSX_PAT` (no workflow reads them after web-infra-dev/rslint#2488; the secrets are still in the `release` environment and need a repo admin to delete. The current Marketplace PAT was created on 2026-11-02 with a 30-day lifetime)\n\n### Phase 4: remove the source (brought forward: not waiting for installs to drop off)\n- [x] `git rm -r packages/vscode-extension`, then clean up the remaining references (root `package.json` filters and `typecheck` reference, `tsconfig.json`, `cspell.config.cjs`, `rslint.config.ts`, `rstack.config.mts`, `.github/workflows/ci.yml`, `scripts/publish-marketplace.mjs`, the release-prep skill) (web-infra-dev/rslint#2488, merged 2026-11-04)\n- [ ] Update both deprecation entries to `disallowInstall: true` (not yet: Phase 2 entries do not exist, and this should wait until installs have dropped off)\n\n## References\n\n- #75 (Rstest sunset)\n- Deprecating extensions: https://code.visualstudio.com/api/working-with-extensions/publishing-extension#deprecating-extensions\n- Marketplace deprecation requests: https://github.com/microsoft/vscode-discussions/discussions/1\n- Open VSX extension control: https://github.com/EclipseFdn/open-vsx.org/wiki/Managing-Extensions\n\n\n\n\n\n\n\n\n\n","author":{"url":"https://github.com/fi3ework","@type":"Person","name":"fi3ework"},"datePublished":"2026-10-08T08:55:20Z","url":"https://github.com/rstackjs/rstack-editor/issues/86"}
| react-profiling | 0 |
| react-import-map | react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf |
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:9ece630e-109d-0f7f-add2-bef94acf6cb4 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | C954:205131:2CC1D:3A623:6AEC7D07 |
| html-safe-nonce | fca5b6e6be43a4db09d55575c0954606be887d3313648ec945ddf923e27f0ce7 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDOTU0OjIwNTEzMToyQ0MxRDozQTYyMzo2QUVDN0QwNyIsInZpc2l0b3JfaWQiOiI3Mzk5ODI4OTI4Nzg1NTc5MjcxIiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0= |
| visitor-hmac | 77fc0a221993adf3238464f40c4ae1376089957b36ebc2604aecdc76e320486a |
| hovercard-subject-tag | issue:5758882610 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/rstackjs/rstack-editor/86/issue_layout |
| twitter:image | https://opengraph.githubassets.com/728d0fa8330d37316c2212b3f3ee6706599864435cadb13f2053ab67b0cc4528/rstackjs/rstack-editor/issues/86 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/728d0fa8330d37316c2212b3f3ee6706599864435cadb13f2053ab67b0cc4528/rstackjs/rstack-editor/issues/86 |
| og:image:alt | Retire the standalone Rslint extension (rstack.rslint, web-infra-dev/rslint packages/vscode-extension) in favor of rstack.rstack, following the same process as #75. Decisions Same as #75, with thes... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | fi3ework |
| hostname | github.com |
| expected-hostname | github.com |
| None | 2bdf579c3278a003eb7fd86a77e2ed31e813bf4e18e5958458d2bdc3941566b0 |
| turbo-cache-control | no-preview |
| go-import | github.com/rstackjs/rstack-editor git https://github.com/rstackjs/rstack-editor.git |
| octolytics-dimension-user_id | 129049372 |
| octolytics-dimension-user_login | rstackjs |
| octolytics-dimension-repository_id | 1316963958 |
| octolytics-dimension-repository_nwo | rstackjs/rstack-editor |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 1316963958 |
| octolytics-dimension-repository_network_root_nwo | rstackjs/rstack-editor |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 22d3a69d3307500eb5a7909970fc0d9a7735cb70 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| react-app-name | issues |
Links:
Viewport: width=device-width