From b9591239d6ac89916945f201ef2f440a5b695455 Mon Sep 17 00:00:00 2001 From: "Andrei.Ovcharenko" Date: Tue, 4 Aug 2026 21:04:32 +0300 Subject: [PATCH 1/3] Publish under the Markdown Table Editor Plus display name The Marketplace refused every upload with "This extension display name is taken". The identifier was not the problem: `Markdown Table Editor` as a display name belongs to the unrelated octop162.markdown-table-editor, and the Marketplace requires display names to be globally unique, so renaming the identifier alone could never have helped. Publish as krotname.markdown-table-editor-plus with the display name "Markdown Table Editor Plus", and carry the identifier through the workflows, scripts, packaging output, and documentation. Commands, settings, keybindings, and behaviour are untouched, so this is a metadata-only release. Co-Authored-By: Claude Opus 5 --- .github/workflows/ci.yml | 6 ++--- .github/workflows/publish-marketplace.yml | 18 +++++++-------- .github/workflows/release.yml | 6 ++--- CHANGELOG.md | 15 ++++++++---- MARKETPLACE_SUBMISSION.md | 28 ++++++++++++----------- README.en.md | 13 +++++++---- README.md | 12 ++++++---- THIRD_PARTY_NOTICES.md | 2 +- package-lock.json | 8 +++---- package.json | 6 ++--- scripts/package.mjs | 2 +- scripts/verify-vsix.mjs | 2 +- 12 files changed, 66 insertions(+), 52 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a198d64..471ddca 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -73,11 +73,11 @@ jobs: - run: npm ci - run: npm run package - run: npm run test:vsix - - run: sha256sum build/md-table-editor.vsix > build/SHA256SUMS.txt + - run: sha256sum build/markdown-table-editor-plus.vsix > build/SHA256SUMS.txt - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: md-table-editor-vsix + name: markdown-table-editor-plus-vsix path: | - build/md-table-editor.vsix + build/markdown-table-editor-plus.vsix build/SHA256SUMS.txt if-no-files-found: error diff --git a/.github/workflows/publish-marketplace.yml b/.github/workflows/publish-marketplace.yml index 1e8112d..364a770 100644 --- a/.github/workflows/publish-marketplace.yml +++ b/.github/workflows/publish-marketplace.yml @@ -16,7 +16,7 @@ on: - dry-run - publish confirmation: - description: For publish, type md-table-editor:. + description: For publish, type markdown-table-editor-plus:. required: false type: string @@ -24,7 +24,7 @@ permissions: contents: read concurrency: - group: md-table-editor-marketplace + group: markdown-table-editor-plus-marketplace cancel-in-progress: false jobs: @@ -66,12 +66,12 @@ jobs: echo "Publishing is allowed only from refs/heads/main; got '$RELEASE_REF'." >&2 exit 1 fi - if [ "$RELEASE_CONFIRMATION" != "md-table-editor:$RELEASE_VERSION" ]; then - echo "Publish confirmation must exactly match 'md-table-editor:$RELEASE_VERSION'." >&2 + if [ "$RELEASE_CONFIRMATION" != "markdown-table-editor-plus:$RELEASE_VERSION" ]; then + echo "Publish confirmation must exactly match 'markdown-table-editor-plus:$RELEASE_VERSION'." >&2 exit 1 fi fi - echo "Validated $RELEASE_MODE request for md-table-editor:$RELEASE_VERSION." + echo "Validated $RELEASE_MODE request for markdown-table-editor-plus:$RELEASE_VERSION." - run: npm ci # npm run package runs typecheck, unit tests, and the bundle build before vsce package. @@ -79,13 +79,13 @@ jobs: - run: npm run test:vsix - name: Record the artifact checksum - run: sha256sum build/md-table-editor.vsix > build/SHA256SUMS.txt + run: sha256sum build/markdown-table-editor-plus.vsix > build/SHA256SUMS.txt - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: marketplace-${{ inputs.version }}-${{ inputs.mode }} path: | - build/md-table-editor.vsix + build/markdown-table-editor-plus.vsix build/SHA256SUMS.txt if-no-files-found: error retention-days: 14 @@ -132,11 +132,11 @@ jobs: exit 1 fi sha256sum --check build/SHA256SUMS.txt - echo "Publishing md-table-editor:$RELEASE_VERSION from main." + echo "Publishing markdown-table-editor-plus:$RELEASE_VERSION from main." - run: npm ci - name: Publish the verified VSIX env: VSCE_PAT: ${{ secrets.VSCE_PAT }} - run: npx --no-install vsce publish --packagePath build/md-table-editor.vsix + run: npx --no-install vsce publish --packagePath build/markdown-table-editor-plus.vsix diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9e40c25..d10031f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,11 +23,11 @@ jobs: - run: npm ci - run: npm run test:coverage - run: npm run package - - run: sha256sum build/md-table-editor.vsix > build/SHA256SUMS.txt + - run: sha256sum build/markdown-table-editor-plus.vsix > build/SHA256SUMS.txt - uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1 with: - subject-path: build/md-table-editor.vsix + subject-path: build/markdown-table-editor-plus.vsix - name: Create GitHub release env: GH_TOKEN: ${{ github.token }} - run: gh release create "$GITHUB_REF_NAME" build/md-table-editor.vsix build/SHA256SUMS.txt --generate-notes --verify-tag + run: gh release create "$GITHUB_REF_NAME" build/markdown-table-editor-plus.vsix build/SHA256SUMS.txt --generate-notes --verify-tag diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e9ba7e..0506c4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,15 @@ All notable changes follow [Keep a Changelog](https://keepachangelog.com/en/1.1. ## [Unreleased] +## [0.2.2] - 2026-08-04 + +### Changed + +- The Marketplace display name is now `Markdown Table Editor Plus`, and the extension identifier + is `krotname.markdown-table-editor-plus`. The Marketplace requires a display name that no other + extension already uses, and `Markdown Table Editor` belongs to an unrelated extension, so upload + was refused regardless of the identifier. Commands, settings, and behaviour are unchanged. + ### Added - Real VS Code screenshots and a demo GIF in `docs/`, linked from both READMEs and reusable @@ -13,10 +22,8 @@ All notable changes follow [Keep a Changelog](https://keepachangelog.com/en/1.1. ### Changed -- The extension identifier is now `krotname.md-table-editor`. The Marketplace requires an - extension `name` that no other publisher uses, and `markdown-table-editor` was already taken, - so the package name and the built VSIX file name changed. The display name, commands, - settings, and behaviour are unchanged. +- Renamed the extension identifier away from `markdown-table-editor`, which the Marketplace + reported as already in use. Commands, settings, and behaviour are unchanged. ## [0.2.0] - 2026-08-04 diff --git a/MARKETPLACE_SUBMISSION.md b/MARKETPLACE_SUBMISSION.md index 869c212..4de27ec 100644 --- a/MARKETPLACE_SUBMISSION.md +++ b/MARKETPLACE_SUBMISSION.md @@ -1,16 +1,18 @@ # Visual Studio Marketplace submission -Status: release metadata for version `0.2.1`, the first public Marketplace submission. +Status: release metadata for version `0.2.2`, the first public Marketplace submission. Keep the version here in sync with `package.json`; the publish workflow refuses a mismatch. -The Marketplace rejects an extension `name` that any publisher already uses, and -`markdown-table-editor` is taken by an unrelated extension, so this project publishes as -`md-table-editor`. The display name is unaffected. +The Marketplace requires both the extension `name` and the **display name** to be unique across +all published extensions. `Markdown Table Editor` is held by the unrelated `octop162.markdown-table-editor`, +and upload is refused with "This extension display name is taken" no matter which identifier is used. +This project therefore publishes as `krotname.markdown-table-editor-plus` with the display name +`Markdown Table Editor Plus`. It is the same product as the JetBrains and Notepad++ editions. ## Artifact -- Version: `0.2.1` -- VSIX: `build/md-table-editor.vsix`, produced by `npm run package` +- Version: `0.2.2` +- VSIX: `build/markdown-table-editor-plus.vsix`, produced by `npm run package` - Checksum: `build/SHA256SUMS.txt`, produced by the release and publish workflows - Marketplace item: fill after upload - Marketplace verification status: fill after upload @@ -18,8 +20,8 @@ The Marketplace rejects an extension `name` that any publisher already uses, and ## Extension metadata -- Extension identifier: `krotname.md-table-editor` -- Display name: `Markdown Table Editor` +- Extension identifier: `krotname.markdown-table-editor-plus` +- Display name: `Markdown Table Editor Plus` - Publisher: `krotname` - Categories: `Formatters`, `Other` - Keywords: `markdown`, `table`, `formatter`, `csv`, `tsv` @@ -56,8 +58,8 @@ leaving the editor. Everything runs locally, with no telemetry and no network ac ## Marketplace release notes for 0.2.1 ```markdown -- The extension is published as `krotname.md-table-editor`; the Marketplace already had the - `markdown-table-editor` name in use by an unrelated extension. +- The extension is published as `krotname.markdown-table-editor-plus` with the display name + `Markdown Table Editor Plus`; both the identifier and the plain display name were already in use. - The table engine is a faithful port of the shared JetBrains/Notepad++ core and matches it byte for byte across the differential corpus, correcting table detection, header protection, caret placement, width fitting, and CSV/TSV whitespace handling. @@ -70,13 +72,13 @@ leaving the editor. Everything runs locally, with no telemetry and no network ac ## Automated submission Run the **Publish to VS Code Marketplace** workflow from `main`: start with `dry-run`, then use -`publish` with the confirmation `md-table-editor:0.2.1`. The verify job builds the VSIX, +`publish` with the confirmation `markdown-table-editor-plus:0.2.2`. The verify job builds the VSIX, installs it into a throwaway VS Code profile, and records a checksum without ever seeing the Marketplace token. The publish job then waits for approval in the `marketplace` GitHub environment, which holds the `VSCE_PAT` secret, verifies the checksum of the artifact built by the verify job, and uploads exactly that file with `vsce publish --packagePath`. -Locally the same upload is `npx vsce publish --packagePath build/md-table-editor.vsix` with +Locally the same upload is `npx vsce publish --packagePath build/markdown-table-editor-plus.vsix` with `VSCE_PAT` set in the environment. ## Manual submission @@ -84,7 +86,7 @@ Locally the same upload is `npx vsce publish --packagePath build/md-table-editor 1. Sign in at with the Microsoft account that owns the `krotname` publisher, creating the publisher first if it does not exist. 2. Open the publisher page and choose `New extension` / `Visual Studio Code`. -3. Upload `build/md-table-editor.vsix`. +3. Upload `build/markdown-table-editor-plus.vsix`. 4. Confirm that the rendered README, icon, categories, license, and repository links are correct. 5. Wait for the automated Marketplace verification to finish and record the resulting status above. diff --git a/README.en.md b/README.en.md index a4a87ef..0ed21b8 100644 --- a/README.en.md +++ b/README.en.md @@ -1,4 +1,4 @@ -# Markdown Table Editor for Visual Studio Code +# Markdown Table Editor Plus for Visual Studio Code [![CI](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/ci.yml) [![CodeQL](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/codeql.yml/badge.svg?branch=main)](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/codeql.yml?query=branch%3Amain) @@ -7,7 +7,7 @@ [![License](https://img.shields.io/github/license/krotname/VsCodeMarkdownTableEditor)](LICENSE) [![Website](https://img.shields.io/badge/website-markdowntableeditor.ru-0f766e)](https://markdowntableeditor.ru/) -Markdown Table Editor turns VS Code into a comfortable Markdown table editor. Take a crooked table +Markdown Table Editor Plus turns VS Code into a comfortable Markdown table editor. Take a crooked table written by hand or generated by an AI, press `Tab`, and the extension aligns the columns while keeping the Markdown intact — then helps you move rows, columns, and data without leaving the editor. @@ -15,7 +15,10 @@ keeping the Markdown intact — then helps you move rows, columns, and data with [open the project site](https://markdowntableeditor.ru/) · [README на русском](README.md) -The Visual Studio Marketplace listing is in preparation; until then the extension installs from the VSIX. +The Visual Studio Marketplace listing is in preparation; until then the extension installs from the +VSIX. On the Marketplace it is named **Markdown Table Editor Plus**, because the plain +`Markdown Table Editor` name is held by an unrelated extension. It is the same product line as the +JetBrains IDE and Notepad++ editions. ## Other editions @@ -115,10 +118,10 @@ cells without changing what each row means: From a VSIX: -1. Download `md-table-editor.vsix` from the [latest release](https://github.com/krotname/VsCodeMarkdownTableEditor/releases/latest) +1. Download `markdown-table-editor-plus.vsix` from the [latest release](https://github.com/krotname/VsCodeMarkdownTableEditor/releases/latest) or build it locally with `npm run package`. 2. Run `Extensions: Install from VSIX...` in VS Code. -3. Select the downloaded or built `md-table-editor.vsix`. +3. Select the downloaded or built `markdown-table-editor-plus.vsix`. Every released VSIX ships with a `SHA256SUMS.txt` file and a GitHub Actions build provenance attestation. diff --git a/README.md b/README.md index 5b45820..577c65e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Markdown Table Editor для Visual Studio Code +# Markdown Table Editor Plus для Visual Studio Code [![CI](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/ci.yml) [![CodeQL](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/codeql.yml/badge.svg?branch=main)](https://github.com/krotname/VsCodeMarkdownTableEditor/actions/workflows/codeql.yml?query=branch%3Amain) @@ -7,7 +7,7 @@ [![License](https://img.shields.io/github/license/krotname/VsCodeMarkdownTableEditor)](LICENSE) [![Website](https://img.shields.io/badge/website-markdowntableeditor.ru-0f766e)](https://markdowntableeditor.ru/) -Markdown Table Editor превращает VS Code в удобный редактор Markdown-таблиц. Берёте чужую косую +Markdown Table Editor Plus превращает VS Code в удобный редактор Markdown-таблиц. Берёте чужую косую таблицу или сгенерированную ИИ, жмёте `Tab` — и расширение выравнивает колонки, сохраняя разметку, а дальше помогает переставлять строки, колонки и данные, не выходя из редактора. @@ -15,7 +15,9 @@ Markdown Table Editor превращает VS Code в удобный редак [открыть сайт проекта](https://markdowntableeditor.ru/) · [English README](README.en.md) -Публикация в Visual Studio Marketplace готовится; до неё расширение ставится из VSIX. +Публикация в Visual Studio Marketplace готовится; до неё расширение ставится из VSIX. В Marketplace +расширение называется **Markdown Table Editor Plus**: простое `Markdown Table Editor` там уже занято +посторонним расширением. Это та же линейка, что версии для JetBrains IDEs и Notepad++. ## Другие версии @@ -115,10 +117,10 @@ GIF собран из реальных скриншотов VS Code под Windo Из VSIX: -1. Скачайте `md-table-editor.vsix` из [последнего релиза](https://github.com/krotname/VsCodeMarkdownTableEditor/releases/latest) +1. Скачайте `markdown-table-editor-plus.vsix` из [последнего релиза](https://github.com/krotname/VsCodeMarkdownTableEditor/releases/latest) или соберите его локально командой `npm run package`. 2. В VS Code выполните `Extensions: Install from VSIX...`. -3. Выберите скачанный или собранный файл `md-table-editor.vsix`. +3. Выберите скачанный или собранный файл `markdown-table-editor-plus.vsix`. Каждый релизный VSIX сопровождается файлом `SHA256SUMS.txt` и подписью происхождения сборки (build provenance attestation), созданной GitHub Actions. diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index aee2a66..3da419e 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -2,7 +2,7 @@ ## Distributed extension -The published `md-table-editor.vsix` does not bundle third-party runtime code. It contains +The published `markdown-table-editor-plus.vsix` does not bundle third-party runtime code. It contains the bundled extension entry point built from this repository's TypeScript sources, its source map, the extension manifest, the icon, and the project documentation, including the GPL-3.0-or-later license text. diff --git a/package-lock.json b/package-lock.json index 2d698a7..19667e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { - "name": "md-table-editor", - "version": "0.2.1", + "name": "markdown-table-editor-plus", + "version": "0.2.2", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "md-table-editor", - "version": "0.2.1", + "name": "markdown-table-editor-plus", + "version": "0.2.2", "license": "GPL-3.0-or-later", "devDependencies": { "@types/mocha": "^10.0.10", diff --git a/package.json b/package.json index e8b110e..75b2ad4 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { - "name": "md-table-editor", - "displayName": "Markdown Table Editor", + "name": "markdown-table-editor-plus", + "displayName": "Markdown Table Editor Plus", "description": "Fast, local Markdown table editing for Visual Studio Code.", - "version": "0.2.1", + "version": "0.2.2", "publisher": "krotname", "license": "GPL-3.0-or-later", "repository": { diff --git a/scripts/package.mjs b/scripts/package.mjs index a36f610..29fe7f5 100644 --- a/scripts/package.mjs +++ b/scripts/package.mjs @@ -4,7 +4,7 @@ import { join } from 'node:path'; await mkdir('build', { recursive: true }); const cli = join('node_modules', '@vscode', 'vsce', 'vsce'); -const result = spawnSync(process.execPath, [cli, 'package', '--no-dependencies', '--out', 'build/md-table-editor.vsix'], { +const result = spawnSync(process.execPath, [cli, 'package', '--no-dependencies', '--out', 'build/markdown-table-editor-plus.vsix'], { stdio: 'inherit', }); if (result.error) throw result.error; diff --git a/scripts/verify-vsix.mjs b/scripts/verify-vsix.mjs index d307293..424a064 100644 --- a/scripts/verify-vsix.mjs +++ b/scripts/verify-vsix.mjs @@ -6,7 +6,7 @@ import { runVSCodeCommand } from '@vscode/test-electron'; const root = process.cwd(); const { name, publisher, version } = JSON.parse(await readFile(join(root, 'package.json'), 'utf8')); const expected = `${publisher}.${name}@${version}`; -const vsix = join(root, 'build', 'md-table-editor.vsix'); +const vsix = join(root, 'build', 'markdown-table-editor-plus.vsix'); const extensionsDirectory = join(root, 'build', 'vsix-extensions'); const userDataDirectory = join(root, 'build', 'vsix-user-data'); const profileArgs = ['--extensions-dir', extensionsDirectory, '--user-data-dir', userDataDirectory]; From b5e04946294eb791e6c0a764220dcebe19b209c7 Mon Sep 17 00:00:00 2001 From: "Andrei.Ovcharenko" Date: Tue, 4 Aug 2026 21:07:34 +0300 Subject: [PATCH 2/3] Point the E2E suite at the renamed extension identifier The suite resolves the extension by id before exercising it, so the rename left it looking up an identifier that no longer exists. Co-Authored-By: Claude Opus 5 --- e2e/extension.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/extension.test.ts b/e2e/extension.test.ts index e242932..42239d6 100644 --- a/e2e/extension.test.ts +++ b/e2e/extension.test.ts @@ -18,7 +18,7 @@ suiteTeardown(async () => { }); test('extension activates and aligns an actual VS Code document', async () => { - const extension = vscode.extensions.getExtension('krotname.md-table-editor'); + const extension = vscode.extensions.getExtension('krotname.markdown-table-editor-plus'); assert.ok(extension); await extension.activate(); await vscode.commands.executeCommand('markdownTableEditor.align'); From 65674cc2eee4412655252e9dd6af2b6b9702b9f2 Mon Sep 17 00:00:00 2001 From: "Andrei.Ovcharenko" Date: Tue, 4 Aug 2026 21:10:05 +0300 Subject: [PATCH 3/3] Point the submission checklist at the 0.2.2 tag and notes Co-Authored-By: Claude Opus 5 --- MARKETPLACE_SUBMISSION.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/MARKETPLACE_SUBMISSION.md b/MARKETPLACE_SUBMISSION.md index 4de27ec..8a7e16f 100644 --- a/MARKETPLACE_SUBMISSION.md +++ b/MARKETPLACE_SUBMISSION.md @@ -16,7 +16,7 @@ This project therefore publishes as `krotname.markdown-table-editor-plus` with t - Checksum: `build/SHA256SUMS.txt`, produced by the release and publish workflows - Marketplace item: fill after upload - Marketplace verification status: fill after upload -- GitHub release: fill after tagging `v0.2.1` +- GitHub release: fill after tagging `v0.2.2` ## Extension metadata @@ -55,7 +55,7 @@ Edit Markdown pipe tables directly in VS Code: align with `Tab`, fit the table w widen columns, sort rows, convert CSV/TSV, insert tables by size, and move rows or columns without leaving the editor. Everything runs locally, with no telemetry and no network access. -## Marketplace release notes for 0.2.1 +## Marketplace release notes for 0.2.2 ```markdown - The extension is published as `krotname.markdown-table-editor-plus` with the display name