Skip to content

3.2 | Packaging and publishing

zalan-racz-gaijin edited this page Jun 18, 2024 · 1 revision

Packaging

After building the extension, the DagorShaderLanguageSupport\bin\Release folder will contain the packaged extension in .vsix file format.

.vsix packages

This package contains all the required resources. A .vsix file uses a simple zip compression, so you can open it with any program that can handle zip compression. DagorShaderLanguageSupport.csproj defines which files will be included in the package and which files are not. You don't want to include any files that are not required in runtime. After the packaging, you can decide to publish the package to Visual Studio Marketplace, or just share the .vsix file directly. If you want to install the package manually, double click on it.

Resources

You have to include the dll file, the TextMate grammars, language-configuration.json, README.md, CHANGELOG.md, the Icons filder, parts of the Resources folder, the language server, the manifest file, and the pkgdef file.

Publishing

When I create a new release for the extension, I follow these steps:

  • I update the CHANGELOG.md file, based on the commits since the last release.
  • I update the README.md file's Release notes section (a shorter version of the changelog), and all the other sections if necessary.
  • I update the year in LICENSE, if this is the first release in the current year.
  • I change the version of the extension in the 3 places: the Version attribute of source.extension.vsixmanifest, and both versions in AssemblyInfo.cs. When I add a whole new feature, I increment the minor version, but if the release only contains improvements and bug fixes, I increment the patch version.
  • I build the extension in Release mode.
  • I regenerate the PAT (Personal Access Token) in Azure DevOps if it's expired, and add the new one to GitHub secrets (Settings / Secrets and variables / Actions / Repository secrets / Update secret).
  • I create a commit with the name Version <VERSION>, and push it to GitHub. It's important to commit and push before publishing because the README.md file's content (at the moment of publishing) will be the description of the extension in Visual Studio Marketplace.
  • I create a new GitHub Release, where I copy the content from the CHANGELOG.md file, and upload the packages.
  • I publish the extension by going to the Marketplace management page, clicking on the ... button besides the extension, and selecting the Edit button. Here I click on the 🖉 icon besides the package name, and upload the new .vsix file. Here, I have to manually edit the readme. I use git history to paste only the changed parts. If you just paste the whole text, you'd need to deal with the screenshots again. Then I click on the ˙Save & Upload` button. It can take a couple of minutes to see the new version in the marketplace.

When you go to the management page of the extension, make sure to select the Gaijin directory, instead of the Gaijin Team, otherwise, you won't see the extensions.

Useful resources

Clone this wiki locally