From 25712983d06187a42fa3855ac5fa201b6ce77dbd Mon Sep 17 00:00:00 2001 From: "Andrei.Ovcharenko" Date: Tue, 4 Aug 2026 19:55:53 +0300 Subject: [PATCH] Publish under the md-table-editor extension name The Marketplace rejects an extension name that any other publisher already uses, and markdown-table-editor is taken by an unrelated extension, so the first upload of krotname.markdown-table-editor was refused. Rename the package to md-table-editor and release it as 0.2.1: v0.2.0 is already tagged and published as a GitHub release with checksums and build provenance, so the renamed package needs its own version rather than a silent replacement of an existing one. The display name, commands, settings, and behaviour are unchanged. Co-Authored-By: Claude Opus 5 (1M context) --- .github/workflows/ci.yml | 6 +++--- .github/workflows/publish-marketplace.yml | 18 ++++++++--------- .github/workflows/release.yml | 6 +++--- CHANGELOG.md | 9 +++++++++ MARKETPLACE_SUBMISSION.md | 24 ++++++++++++++--------- README.en.md | 4 ++-- README.md | 4 ++-- THIRD_PARTY_NOTICES.md | 2 +- e2e/extension.test.ts | 2 +- package-lock.json | 8 ++++---- package.json | 4 ++-- scripts/package.mjs | 2 +- scripts/verify-vsix.mjs | 2 +- 13 files changed, 53 insertions(+), 38 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ccd2add..a198d64 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/markdown-table-editor.vsix > build/SHA256SUMS.txt + - run: sha256sum build/md-table-editor.vsix > build/SHA256SUMS.txt - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: markdown-table-editor-vsix + name: md-table-editor-vsix path: | - build/markdown-table-editor.vsix + build/md-table-editor.vsix build/SHA256SUMS.txt if-no-files-found: error diff --git a/.github/workflows/publish-marketplace.yml b/.github/workflows/publish-marketplace.yml index fe0afe2..1e8112d 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 markdown-table-editor:. + description: For publish, type md-table-editor:. required: false type: string @@ -24,7 +24,7 @@ permissions: contents: read concurrency: - group: markdown-table-editor-marketplace + group: md-table-editor-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" != "markdown-table-editor:$RELEASE_VERSION" ]; then - echo "Publish confirmation must exactly match 'markdown-table-editor:$RELEASE_VERSION'." >&2 + if [ "$RELEASE_CONFIRMATION" != "md-table-editor:$RELEASE_VERSION" ]; then + echo "Publish confirmation must exactly match 'md-table-editor:$RELEASE_VERSION'." >&2 exit 1 fi fi - echo "Validated $RELEASE_MODE request for markdown-table-editor:$RELEASE_VERSION." + echo "Validated $RELEASE_MODE request for md-table-editor:$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/markdown-table-editor.vsix > build/SHA256SUMS.txt + run: sha256sum build/md-table-editor.vsix > build/SHA256SUMS.txt - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: marketplace-${{ inputs.version }}-${{ inputs.mode }} path: | - build/markdown-table-editor.vsix + build/md-table-editor.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 markdown-table-editor:$RELEASE_VERSION from main." + echo "Publishing md-table-editor:$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/markdown-table-editor.vsix + run: npx --no-install vsce publish --packagePath build/md-table-editor.vsix diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6072bad..9e40c25 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/markdown-table-editor.vsix > build/SHA256SUMS.txt + - run: sha256sum build/md-table-editor.vsix > build/SHA256SUMS.txt - uses: actions/attest-build-provenance@0f67c3f4856b2e3261c31976d6725780e5e4c373 # v4.1.1 with: - subject-path: build/markdown-table-editor.vsix + subject-path: build/md-table-editor.vsix - name: Create GitHub release env: GH_TOKEN: ${{ github.token }} - run: gh release create "$GITHUB_REF_NAME" build/markdown-table-editor.vsix build/SHA256SUMS.txt --generate-notes --verify-tag + run: gh release create "$GITHUB_REF_NAME" build/md-table-editor.vsix build/SHA256SUMS.txt --generate-notes --verify-tag diff --git a/CHANGELOG.md b/CHANGELOG.md index 3593da1..2aaf486 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.1] - 2026-08-04 + +### 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. + ## [0.2.0] - 2026-08-04 ### Added diff --git a/MARKETPLACE_SUBMISSION.md b/MARKETPLACE_SUBMISSION.md index 7979ad2..f6371f7 100644 --- a/MARKETPLACE_SUBMISSION.md +++ b/MARKETPLACE_SUBMISSION.md @@ -1,20 +1,24 @@ # Visual Studio Marketplace submission -Status: release metadata for version `0.2.0`, the first public Marketplace submission. +Status: release metadata for version `0.2.1`, 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. + ## Artifact -- Version: `0.2.0` -- VSIX: `build/markdown-table-editor.vsix`, produced by `npm run package` +- Version: `0.2.1` +- VSIX: `build/md-table-editor.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 -- GitHub release: fill after tagging `v0.2.0` +- GitHub release: fill after tagging `v0.2.1` ## Extension metadata -- Extension identifier: `krotname.markdown-table-editor` +- Extension identifier: `krotname.md-table-editor` - Display name: `Markdown Table Editor` - Publisher: `krotname` - Categories: `Formatters`, `Other` @@ -36,9 +40,11 @@ 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.0 +## 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 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. @@ -51,13 +57,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 `markdown-table-editor:0.2.0`. The verify job builds the VSIX, +`publish` with the confirmation `md-table-editor:0.2.1`. 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/markdown-table-editor.vsix` with +Locally the same upload is `npx vsce publish --packagePath build/md-table-editor.vsix` with `VSCE_PAT` set in the environment. ## Manual submission @@ -65,7 +71,7 @@ Locally the same upload is `npx vsce publish --packagePath build/markdown-table- 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/markdown-table-editor.vsix`. +3. Upload `build/md-table-editor.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 698eeda..1741beb 100644 --- a/README.en.md +++ b/README.en.md @@ -99,10 +99,10 @@ cells without changing what each row means: From a VSIX: -1. Download `markdown-table-editor.vsix` from the [latest release](https://github.com/krotname/VsCodeMarkdownTableEditor/releases/latest) +1. Download `md-table-editor.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 `markdown-table-editor.vsix`. +3. Select the downloaded or built `md-table-editor.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 4a74a38..6afedb6 100644 --- a/README.md +++ b/README.md @@ -99,10 +99,10 @@ Markdown Table Editor превращает VS Code в удобный редак Из VSIX: -1. Скачайте `markdown-table-editor.vsix` из [последнего релиза](https://github.com/krotname/VsCodeMarkdownTableEditor/releases/latest) +1. Скачайте `md-table-editor.vsix` из [последнего релиза](https://github.com/krotname/VsCodeMarkdownTableEditor/releases/latest) или соберите его локально командой `npm run package`. 2. В VS Code выполните `Extensions: Install from VSIX...`. -3. Выберите скачанный или собранный файл `markdown-table-editor.vsix`. +3. Выберите скачанный или собранный файл `md-table-editor.vsix`. Каждый релизный VSIX сопровождается файлом `SHA256SUMS.txt` и подписью происхождения сборки (build provenance attestation), созданной GitHub Actions. diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index 6080bae..aee2a66 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -2,7 +2,7 @@ ## Distributed extension -The published `markdown-table-editor.vsix` does not bundle third-party runtime code. It contains +The published `md-table-editor.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/e2e/extension.test.ts b/e2e/extension.test.ts index e8b170b..e242932 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.markdown-table-editor'); + const extension = vscode.extensions.getExtension('krotname.md-table-editor'); assert.ok(extension); await extension.activate(); await vscode.commands.executeCommand('markdownTableEditor.align'); diff --git a/package-lock.json b/package-lock.json index 1836964..2d698a7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { - "name": "markdown-table-editor", - "version": "0.2.0", + "name": "md-table-editor", + "version": "0.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "markdown-table-editor", - "version": "0.2.0", + "name": "md-table-editor", + "version": "0.2.1", "license": "GPL-3.0-or-later", "devDependencies": { "@types/mocha": "^10.0.10", diff --git a/package.json b/package.json index 5f5ba88..e8b110e 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { - "name": "markdown-table-editor", + "name": "md-table-editor", "displayName": "Markdown Table Editor", "description": "Fast, local Markdown table editing for Visual Studio Code.", - "version": "0.2.0", + "version": "0.2.1", "publisher": "krotname", "license": "GPL-3.0-or-later", "repository": { diff --git a/scripts/package.mjs b/scripts/package.mjs index 2917866..a36f610 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/markdown-table-editor.vsix'], { +const result = spawnSync(process.execPath, [cli, 'package', '--no-dependencies', '--out', 'build/md-table-editor.vsix'], { stdio: 'inherit', }); if (result.error) throw result.error; diff --git a/scripts/verify-vsix.mjs b/scripts/verify-vsix.mjs index fa298e5..d307293 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', 'markdown-table-editor.vsix'); +const vsix = join(root, 'build', 'md-table-editor.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];