WvdS VSCode Packaging

The Packaging extension creates VSIX packages and enables publishing to the Visual Studio Marketplace.

Function and Purpose

The Packaging extension provides:

  • VSIX Creation - Packages for VS Code extensions
  • Version Management - Automatic version number management
  • Multi-Extension Support - Package multiple extensions simultaneously
  • Marketplace Publishing - Direct publishing

Commands

Command Description
WVDS: Create VSIX Package Creates a VSIX package
WVDS: Publish Package Publishes to the VS Marketplace

Creating VSIX Packages

Prerequisites

  • Node.js installed
  • vsce tool available:
    npm install -g @vscode/vsce

Workflow

  1. Ensure the project compiles
  2. Ctrl+Shift+PWVDS: Create VSIX Package
  3. Select the extension (if multiple exist)
  4. The package is created in binaries/dist/

Output

binaries/dist/
  wvds-vscode-core-0.1.0.vsix
  wvds-vscode-build-0.1.0.vsix
  ...

Version Management

Semantic Versioning

The suite uses Semantic Versioning (SemVer):

MAJOR.MINOR.PATCH
  1.0.0
Part Increment When
MAJOR Breaking changes, incompatible API changes
MINOR New features, backward compatible
PATCH Bug fixes, no feature changes

Automatic Increment

When packaging, the version can be automatically incremented:

  1. Select „Increment Version“ in the dialog
  2. Choose the part to increment (MAJOR, MINOR, PATCH)
  3. The package.json is updated

Pre-Release Versions

For beta releases:

1.0.0-beta.1
1.0.0-rc.1

Multi-Extension Packaging

The suite consists of multiple extensions that can be packaged together.

Extension Pack

An extension pack bundles multiple extensions:

{
  "name": "wvds-fpc-rad-suite",
  "displayName": "WvdS FPC RAD Suite",
  "extensionPack": [
    "wvds.wvds-vscode-core",
    "wvds.wvds-vscode-build",
    "wvds.wvds-vscode-projects",
    "wvds.wvds-vscode-ui-designer",
    "wvds.wvds-vscode-ui-meta",
    "wvds.wvds-vscode-ui-preview",
    "wvds.wvds-vscode-packaging"
  ]
}

Batch Packaging

Package all extensions at once:

  1. WVDS: Create VSIX Package
  2. Select „All Extensions“
  3. All packages are created

Marketplace Publishing

Prerequisites

  1. Azure DevOps Organization - For publisher account
  2. Personal Access Token (PAT) - With Marketplace permissions
  3. Publisher ID - Registered at marketplace.visualstudio.com

Creating a Publisher

  1. Create a publisher
  2. Note the Publisher ID

Creating a PAT

  1. User Settings → Personal Access Tokens
  2. Create a token with „Marketplace (Publish)“ scope

Publishing

  1. WVDS: Publish Package
  2. Enter the PAT (stored securely)
  3. The extension is uploaded
Do not publish extensions containing sensitive data!

Pre-Publish Checks

Before publishing, the following are automatically checked:

Check Description
Version Must be higher than published version
README Must exist and not be empty
CHANGELOG Must contain changes for current version
License Must be specified
Icon Recommended (128×128 PNG)
Repository Recommended (link to source code)

package.json Requirements

For Marketplace publishing:

{
  "name": "wvds-vscode-core",
  "displayName": "WvdS VSCode Core",
  "description": "Central infrastructure for WvdS FPC RAD Studio",
  "version": "0.1.0",
  "publisher": "wvds",
  "license": "MIT",
  "icon": "images/icon.png",
  "repository": {
    "type": "git",
    "url": "https://github.com/ArmandoFilho/WvdS.FPC"
  },
  "engines": {
    "vscode": "^1.85.0"
  },
  "categories": ["Other"],
  "keywords": ["pascal", "fpc", "free pascal"]
}

Local Installation

For testing before publishing:

code --install-extension binaries/dist/wvds-vscode-core-0.1.0.vsix

Or in VS Code:

  1. Extensions → „…“ → „Install from VSIX…“
  2. Select the VSIX file

Troubleshooting

"vsce not found"

Cause: vsce not installed.

Solution:

npm install -g @vscode/vsce

"Invalid publisher"

Cause: Publisher ID in package.json does not match registered publisher.

Solution:

  1. Check the Publisher ID in package.json
  2. Ensure the publisher is registered

"Version already exists"

Cause: This version was already published.

Solution:

  1. Increment the version number
  2. Use the increment function

"PAT expired"

Cause: Personal Access Token expired.

Solution:

  1. Create a new PAT
  2. Enter it on the next publish

Technical Details

Property Value
Extension ID wvds.wvds-vscode-packaging
Activation onCommand:wvds.packaging.create
Dependencies wvds-vscode-core, wvds-vscode-build
Min. VS Code 1.85.0

See Also

Zuletzt geändert: on 2026/01/29 at 10:27 PM