Skip to content

Commit ee20b5d

Browse files
authored
Merge pull request #8004 from MicrosoftDocs/users/chcomley/refresh-extend-publish-integration
Refresh extend/publish/integration.md
2 parents 03f5726 + c72a8b2 commit ee20b5d

File tree

5 files changed

+56
-70
lines changed

5 files changed

+56
-70
lines changed

docs/extend/includes/manifest-core.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<a id="core"></a>
2-
These properties are required:
2+
The following properties are required:
33

44
| Property | Description | Notes |
55
|---------------------|-------------|-------|

docs/extend/includes/manifest-discovery.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
These optional properties help users discover and learn about your extension:
1+
The following optional properties help users discover and learn about your extension:
22

33

44
| Property | Description | Notes |
Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
1-
To change an extension that's already published, update it.
1+
To update an extension you already published, do the following steps:
22

33
> [!TIP]
4-
> We recommend updating the extension over removing and re-uploading. We also recommend having two extensions, for example, `publisher.extension` and `publisher.extension-dev`.
5-
`Publisher.extension` is public in the Marketplace, where customers can install it in their Azure DevOps organizations. `Publisher.extension-dev` is kept private in the Marketplace and can be shared with an organization that you own and control.
6-
> You don't need to maintain two copies of source code of the extension. You can maintain two manifest files - one for each extension and during packaging of the extension you can provide the respective manifest file to the tfx-cli tool. For more information on arguments required for the tool, see [TFX extension commands](https://github.com/microsoft/tfs-cli/blob/master/docs/extensions.md#arguments).
4+
> Update your extension instead of removing and re-uploading it. We recommend maintaining two extensions: `publisher.extension`, public in the Marketplace for customers, and `publisher.extension-dev`, private, shared only with your organization for development and testing.
5+
> You don't need two copies of your source code—just maintain separate manifest files for each extension. When packaging, provide the appropriate manifest file to the tfx-cli tool. For more information, see [TFX extension commands](https://github.com/microsoft/tfs-cli/blob/master/docs/extensions.md#arguments).
76
8-
1. Select an extension from the list of displayed items.
9-
2. Right-click and select **Update** for the `publisher.extension-dev`, for example.
7+
1. Select your extension from the list of displayed items.
8+
2. Right-click and select **Update** for the development version, such as `publisher.extension-dev`.
109
3. Validate your extension.
11-
4. Make the same updates to the production version, `publisher.extension`, for example.
12-
5. Browse to the .vsix for your extension and upload it.
10+
4. Apply the same updates to the production version, such as `publisher.extension`.
11+
5. Browse to the .vsix file for your extension and upload it.
1312

14-
The updated version of your extension automatically gets installed to accounts that have it already installed. New accounts where the extension is installed in the future also receive the latest version.
13+
Azure DevOps automatically installs the updated version for all accounts that already have the extension. New installations also receive the latest version.
Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
The following list of requirements must be met before you publish to the Marketplace.
22

3-
- Install the extension packaging tool (TFX). Run `npm install -g tfx-cli` from a command prompt.
4-
- Ensure the proper permissions are granted to use any images, for example, icons, logos, screenshots, and so on.
5-
- Include a thorough `overview.md` file to describe your listing in the Marketplace.
6-
- Include an icon for your extension, which is at least 128x128 pixels in size.
7-
- When you refer to Microsoft products, use full names in place of abbreviations, for example, Azure DevOps vs. AzDO or - any other abbreviation.
8-
- Refrain from using brand names in the name of your extension.
3+
| Category | Requirements |
4+
|-------------------------|------------------|
5+
| Packaging tool | Install the extension packaging tool (TFX). Run `npm install -g tfx-cli` from a command prompt. |
6+
| Image permissions | Ensure you have proper permissions to use any images, like icons, logos, screenshots, and so on. |
7+
| Marketplace overview | Include a thorough `overview.md` file to describe your listing in the Marketplace. |
8+
| Extension icon | Include an icon for your extension that represents your integration, company, or organization, at least 128x128 pixels in size (PNG or JPEG). |
9+
| Microsoft product names | Use full names for Microsoft products (for example, Azure DevOps instead of AzDO or other abbreviations). |
10+
| Brand names | Don't use brand names in the name of your extension. |

docs/extend/publish/integration.md

Lines changed: 38 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -7,75 +7,62 @@ ms.topic: conceptual
77
monikerRange: '<= azure-devops'
88
ms.author: chcomley
99
author: chcomley
10-
ms.date: 08/29/2016
10+
ms.date: 06/06/2025
1111
---
1212

1313
# Package and publish an integration to the Marketplace
1414

1515
[!INCLUDE [version-lt-eq-azure-devops](../../includes/version-lt-eq-azure-devops.md)]
1616

17-
Do you have a tool, service, or product that integrates with Azure DevOps or Team Foundation Server (TFS)?
18-
If so, help users find it by publishing it on the Visual Studio Marketplace.
19-
The Marketplace is a one-stop-shop for individuals and teams to find tools that extend and enhance the experience.
17+
This article explains how to publish your tool, service, or product that integrates with Azure DevOps on the Visual Studio Marketplace. Publishing on the Marketplace helps users discover solutions that extend and enhance their Azure DevOps experience. The Marketplace serves as the central hub for individuals and teams to find integrations and extensions.
2018

2119
[Browse the Marketplace](https://marketplace.visualstudio.com) to see examples of other integrations and extensions.
2220

2321
> [!NOTE]
24-
> If you're looking for packaging and publishing information for extensions, check out [Package & Publish Extensions](overview.md).
22+
> For packaging and publishing information for extensions, see [Package & Publish Extensions](overview.md).
2523
26-
## Publishing requirements
24+
## Prerequisites
2725

2826
[!INCLUDE [](includes/before-publishing.md)]
2927

30-
## What you need
28+
### Gather required assets
3129

32-
1. 128x128 pixel logo (PNG or JPEG format) representing your integration, yourself, or your company/organization
33-
2. Minimum of one screenshot showing your integration
34-
3. Call to action / get started URL (where users should go to get started with your integration)
30+
- At least one screenshot of your integration.
31+
- Call-to-action or get started URL for users.
3532

36-
## Steps
37-
38-
Publishing to the Marketplace is an iterative process that starts with creating a manifest file that defines your integration and key discovery characteristics (like screenshots, logos, and overview content). This information is used to present your integration to users on the Marketplace, for example:
39-
40-
![example](./media/integration-example.png)
41-
42-
[Jenkins for Azure DevOps](https://marketplace.visualstudio.com/items?itemName=ms-vsts.services-jenkins)
43-
44-
Note: The term, `extension`, is used in documentations referenced below. Extensions are another type of Marketplace item and share many similarities from a discovery standpoint as integrations.
45-
46-
<div class="alert alert-info">
47-
Need help with getting your integration on the Marketplace? <a href="https://go.microsoft.com/fwlink/?LinkId=615292" data-raw-source="[Contact us](https://go.microsoft.com/fwlink/?LinkId=615292)">Contact us</a>. And, yes, this e-mail address is monitored by real people.
48-
</div>
33+
> [!NOTE]
34+
> - The term `extension` is used in referenced documentation. Extensions are another type of Marketplace item and share many similarities with integrations.
35+
> - Need help getting your integration on the Marketplace? [Contact us](https://go.microsoft.com/fwlink/?LinkId=615292).
4936
50-
### Create a publisher
37+
### Create a publisher account
5138

5239
[!INCLUDE [](./includes/create-publisher.md)]
5340

54-
### Create a folder to contain your item manifest and other assets
41+
### Organize your manifest and assets
5542

56-
Before you package your integration as an extension, you'll need to create a `home` folder to contain some required assets, within this folder:
43+
To organize your manifest and assets, do the following steps:
5744

58-
1. Create a folder called `images` to contain:
59-
* Logo for your integration (128x128 pixels)
45+
1. Create a `home` folder to store required assets.
46+
2. Create an `images` folder for:
47+
* Your integration logo (128x128 pixels)
6048
* Screenshots (1366x768 pixels)
61-
2. Create a file called `overview.md`
62-
* Describe your integration here
63-
* To learn more about Markdown, see [GitHub Flavored Markdown](https://help.github.com/articles/github-flavored-markdown/)
64-
3. Create a file called `vss-integration.json`
65-
* This file is your Marketplace listing's manifest file, it contains many properties to describe your extension in your Marketplace listing. You can browse the [extension manifest reference here](../develop/manifest.md)
49+
3. Create an `overview.md` file to describe your integration. For more information, see [GitHub Flavored Markdown](https://help.github.com/articles/github-flavored-markdown/).
50+
4. Create a `vss-integration.json` file, which is your Marketplace listing's manifest file. For more information, see the [extension manifest reference](../develop/manifest.md).
6651

67-
#### Extension Manifest
52+
#### Complete the extension manifest
53+
54+
Publishing to the Marketplace starts with creating a manifest file that defines your integration and its key discovery details (screenshots, logos, overview content). This information is used to present your integration to users on the Marketplace.
6855

6956
1. Fill your `vss-integration.json` file with the following JSON:
7057

7158
[!code-javascript[JSON](../_data/integration.json)]
7259

73-
2. Update the JSON using the following reference:
60+
2. Update the JSON using the following references:
7461

7562
[!INCLUDE [](../includes/manifest-core.md)]
7663
[!INCLUDE [](../includes/manifest-discovery.md)]
7764

78-
#### Details page
65+
#### Understand the details page
7966

8067
* 1 - description
8168
* 2 - icon
@@ -85,20 +72,20 @@ Before you package your integration as an extension, you'll need to create a `ho
8572
* 6 - links
8673
* 7 - branding
8774

88-
![card](../develop/media/extension-details-page.png)
75+
![Screenshot shows details card for extension in the Visual Studio Marketplace.](../develop/media/extension-details-page.png)
8976

90-
<div class="alert alert-danger">
91-
Make sure the &quot;public&quot; attribute gets set to &quot;false&quot; (or not set at all) to avoid your extension or integration from becoming prematurely visible to all users on the Marketplace.
92-
</div>
77+
> [!WARNING]
78+
> Set the `public` attribute to `false` or omit it to prevent your integration from becoming visible to all Marketplace users before you're ready.
9379
9480
<a name="package"></a>
9581

9682
### Package your manifest and assets
9783

98-
#### Get the package tool (tfx-cli)
99-
You can install or update the Cross-platform CLI for Azure DevOps (tfx-cli) using `npm`, a component of [Node.js](https://nodejs.org), from your command line.
84+
#### Install the package tool (tfx-cli)
10085

101-
```no-highlight
86+
Install or update the cross-platform CLI for Azure DevOps (tfx-cli) using `npm`:
87+
88+
```bash
10289
npm i -g tfx-cli
10390
```
10491

@@ -109,29 +96,27 @@ tfx extension create --manifest-globs vss-extension.json
10996
```
11097

11198
> [!NOTE]
112-
> An extension/integration's version must be incremented on every update. <br>
113-
> If you haven't incremented your extension/integration in the manifest, you should pass the `--rev-version` command line switch. This increments the *patch* version number of your extension and saves the new version to your manifest.
99+
> Increment the version of your extension or integration with every update.
100+
> If you haven't updated the version in your manifest, use the `--rev-version` command line switch. This switch automatically increments the *patch* version number and saves the new version to your manifest.
114101
115102
### Publish your integration to the Marketplace
116103

117104
[!INCLUDE [Publish_extension](../includes/procedures/publish.md)]
118105

119106
### Share your integration
120-
Before you can install an integration into an organization in Azure DevOps or TFS, you must share it with that organization. Sharing is a requirement during development and testing of an integration, as it's the only way to run an integration.
121107

122-
To share an integration do the following tasks:
108+
Before installing an integration in an Azure DevOps organization, share it with that organization. Sharing is required for development and testing, as it's the only way to run an integration during these stages.
109+
110+
To share an integration do the following steps:
123111

124112
1. Select an integration from the list of displayed items
125113
2. Select the **Share** button
126-
3. Specify the name of the organization to make this integration visible to.
127-
- For example, to make an integration visible to the **dev.azure.com/fabrikam-fiber-inc** organization, specify `fabrikam-fiber-inc`.
114+
3. Specify the name of the organization to make this integration visible to. For example, to make an integration visible to the **dev.azure.com/fabrikam-fiber-inc** organization, specify `fabrikam-fiber-inc`.
128115

129116
#### Update an item
130117

131118
[!INCLUDE [Update_extension](../includes/procedures/update.md)]
132119

133-
## Make your integration public (visible to everyone)
134-
135-
For information on making your integration public, visit [Make your listing public](./publicize.md).
136-
120+
## Make your integration public
137121

122+
For information on making your integration visible to everyone, see [Make your listing public](./publicize.md).

0 commit comments

Comments
 (0)