Update extension publishing process (#16592)

* Add validate page in the toc as it was missing

* Update publishing process

Introduce self-published and docker reviewd notions

Apply suggestions from code review

Co-authored-by: Allie Sadler <102604716+aevesdocker@users.noreply.github.com>
Co-authored-by: Felipe Cruz Martinez <15997951+felipecruz91@users.noreply.github.com>

* Add cards for publishing option to make them more visible

* Add images on cards

* Add description on the cards

* Mention self-published extension in the end users docs page as well

* Use buttons rather than cards

* Apply suggestions from code review

* Update desktop/extensions-sdk/extensions/publish.md

---------

Co-authored-by: Allie Sadler <102604716+aevesdocker@users.noreply.github.com>
Co-authored-by: Felipe Cruz Martinez <15997951+felipecruz91@users.noreply.github.com>
This commit is contained in:
Benjamin Grandfond 2023-02-27 17:15:43 +01:00 committed by GitHub
parent 730e33f216
commit 850fde24e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 112 additions and 15 deletions

View File

@ -1177,6 +1177,8 @@ manuals:
path: /desktop/extensions-sdk/extensions/
- title: Labels
path: /desktop/extensions-sdk/extensions/labels/
- title: Validate
path: /desktop/extensions-sdk/extensions/validate/
- title: Package and release your extension
path: /desktop/extensions-sdk/extensions/DISTRIBUTION/
- title: Generate a share link

View File

@ -0,0 +1,26 @@
<svg width="58" height="58" viewBox="0 0 58 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0_7183_173508" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="6" width="50" height="51">
<g clip-path="url(#clip0_7183_173508)">
<path d="M42.7077 29.4166H39.5827V21.0833C39.5827 18.7916 37.7077 16.9166 35.416 16.9166H27.0827V13.7916C27.0827 10.9166 24.7493 8.58325 21.8743 8.58325C18.9993 8.58325 16.666 10.9166 16.666 13.7916V16.9166H8.33268C6.04102 16.9166 4.18685 18.7916 4.18685 21.0833V28.9999H7.29102C10.3952 28.9999 12.916 31.5208 12.916 34.6249C12.916 37.7291 10.3952 40.2499 7.29102 40.2499H4.16602V48.1666C4.16602 50.4583 6.04102 52.3333 8.33268 52.3333H16.2493V49.2083C16.2493 46.1041 18.7702 43.5832 21.8743 43.5832C24.9785 43.5832 27.4993 46.1041 27.4993 49.2083V52.3333H35.416C37.7077 52.3333 39.5827 50.4583 39.5827 48.1666V39.8333H42.7077C45.5827 39.8333 47.916 37.4999 47.916 34.6249C47.916 31.7499 45.5827 29.4166 42.7077 29.4166Z" fill="black"/>
</g>
</mask>
<g mask="url(#mask0_7183_173508)">
<rect y="6.5" width="50" height="50" fill="#677285"/>
</g>
<mask id="mask1_7183_173508" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="36" y="1" width="22" height="23">
<g clip-path="url(#clip1_7183_173508)">
<path d="M53.8375 8.83331L54.5616 7.22914L56.1658 6.50498C56.5233 6.33998 56.5233 5.83581 56.1658 5.67081L54.5616 4.94664L53.8375 3.33331C53.6725 2.97581 53.1683 2.97581 53.0033 3.33331L52.2791 4.93748L50.6658 5.66164C50.3083 5.82664 50.3083 6.33081 50.6658 6.49581L52.27 7.21998L52.9941 8.83331C53.1591 9.19081 53.6725 9.19081 53.8375 8.83331ZM46.5408 10.2083L45.0833 6.99998C44.7625 6.28498 43.7358 6.28498 43.415 6.99998L41.9575 10.2083L38.7491 11.6658C38.0341 11.9958 38.0341 13.0133 38.7491 13.3341L41.9575 14.7916L43.415 18C43.745 18.715 44.7625 18.715 45.0833 18L46.5408 14.7916L49.7491 13.3341C50.4641 13.0041 50.4641 11.9866 49.7491 11.6658L46.5408 10.2083ZM52.9941 16.1666L52.27 17.7708L50.6658 18.495C50.3083 18.66 50.3083 19.1641 50.6658 19.3291L52.27 20.0533L52.9941 21.6666C53.1591 22.0241 53.6633 22.0241 53.8283 21.6666L54.5525 20.0625L56.1658 19.3383C56.5233 19.1733 56.5233 18.6691 56.1658 18.5041L54.5616 17.78L53.8375 16.1666C53.6725 15.8091 53.1591 15.8091 52.9941 16.1666Z" fill="black"/>
</g>
</mask>
<g mask="url(#mask1_7183_173508)">
<rect x="36" y="1.5" width="22" height="22" fill="#677285"/>
</g>
<defs>
<clipPath id="clip0_7183_173508">
<rect width="50" height="50" fill="white" transform="translate(0 6.5)"/>
</clipPath>
<clipPath id="clip1_7183_173508">
<rect width="22" height="22" fill="white" transform="translate(36 1.5)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

@ -0,0 +1,15 @@
<svg width="58" height="58" viewBox="0 0 58 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<mask id="mask0_7183_173512" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="4" y="4" width="50" height="50">
<g clip-path="url(#clip0_7183_173512)">
<path d="M46.7077 26.9166H43.5827V18.5833C43.5827 16.2916 41.7077 14.4166 39.416 14.4166H31.0827V11.2916C31.0827 8.41659 28.7493 6.08325 25.8743 6.08325C22.9993 6.08325 20.666 8.41659 20.666 11.2916V14.4166H12.3327C10.041 14.4166 8.18685 16.2916 8.18685 18.5833V26.4999H11.291C14.3952 26.4999 16.916 29.0208 16.916 32.1249C16.916 35.2291 14.3952 37.7499 11.291 37.7499H8.16602V45.6666C8.16602 47.9583 10.041 49.8333 12.3327 49.8333H20.2493V46.7083C20.2493 43.6041 22.7702 41.0832 25.8743 41.0832C28.9785 41.0832 31.4993 43.6041 31.4993 46.7083V49.8333H39.416C41.7077 49.8333 43.5827 47.9583 43.5827 45.6666V37.3333H46.7077C49.5827 37.3333 51.916 34.9999 51.916 32.1249C51.916 29.2499 49.5827 26.9166 46.7077 26.9166Z" fill="black"/>
</g>
</mask>
<g mask="url(#mask0_7183_173512)">
<rect x="4" y="4" width="50" height="50" fill="#677285"/>
</g>
<defs>
<clipPath id="clip0_7183_173512">
<rect width="50" height="50" fill="white" transform="translate(4 4)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -6,21 +6,27 @@ keywords: Docker, extensions, publish
## Submit your extension to the marketplace
Docker Desktop displays published extensions in [the Extensions Marketplace](https://hub.docker.com/search?q=&type=extension){: target="_blank" rel="noopener" class="_" }. The Extensions Marketplace is a curated space where developers can discover extensions to improve their developer experience and propose their own extension to be available for all Desktop users.
Docker Desktop displays published extensions in the Extensions Marketplace on [Docker Desktop](https://open.docker.com/extensions/marketplace){: target="_blank" rel="noopener" class="_"} and [Docker Hub](https://hub.docker.com/search?q=&type=extension){: target="_blank" rel="noopener" class="_"}.
The Extensions Marketplace is a curated space where developers can discover extensions to improve their developer experience and propose their own extension to be available for all Desktop users.
If you want to publish your extension in the Marketplace, you can submit your extension [here](https://www.docker.com/products/extensions/submissions/){: target="_blank" rel="noopener" class="_" }.
Whenever you are [ready to publish](./DISTRIBUTION.md) your extension in the Marketplace, you have two publishing options:
All extensions submitted to the Extension Marketplace are reviewed and approved by the Docker Extension team before listing. This review process ensures a level of trust, security, and quality for developers using Docker Extensions and allows for extension developers to get feedback.
[Self-publish your extension](https://github.com/docker/extensions-submissions/issues/new?assignees=&labels=&template=1_automatic_review.yaml&title=%5BSubmission%5D%3A+){: target="_blank" rel="noopener" .button .primary-btn }
[Request that Docker reviews your extension](https://www.docker.com/products/extensions/submissions/){: target="_blank" rel="noopener" .button .primary-btn }
> **Note**
>
> As the Extension Marketplace continues to add new features for both Extension users and publishers, we expect you
> to maintain your extension over time to ensure it stays available in the Marketplace.
### Before you submit
Ensure your extension has followed the guidelines outlined in this section before submitting for your extension for review. Docker highly encourages you to check the guidelines as not doing so may considerably impact the duration of the approval process.
Before you submit your extension, it must pass the [validation](validate.md) checks.
These guidelines don't replace Docker's terms of service or guarantee approval. As the Extension Marketplace continues adding new features for both Extension users and publishers, expect that you maintain your extension over time to ensure it stays available in the Marketplace.
It is highly recommended that your extension follows the guidelines outlined in this section before submitting your
extension. If you request a review from the Docker Extensions team and have not followed the guidelines above, the review process may take longer.
#### Guidelines:
- Ensure that youve run the [validation checks](validate.md)
These guidelines don't replace Docker's terms of service or guarantee approval:
- Review the [design guidelines](../design/design-guidelines.md)
- Ensure the [UI styling](../design/index.md) is in line with Docker Desktop guidelines
- Ensure your extensions support both light and dark mode
@ -30,9 +36,49 @@ These guidelines don't replace Docker's terms of service or guarantee approval.
- Test your extension on various platforms (Mac, Windows, Linux)
- Read the [Terms of Service](https://www.docker.com/legal/extensions_marketplace_developer_agreement/){: target="_blank" rel="noopener" class="_" }
### After you submit
### Which publishing option to choose
Once youve submitted your extension, here is what you can expect from the review process:
When submitting an extension to the extensions submissions [repository](https://github.com/docker/extensions-submissions/issues/new/choose){:target="_blank" rel="noopener" class="_" }, you have two publishing options. Publish as either:
- A Self-published extension
- A Docker-reviewed extension
- Timing: Extensions are reviewed by Docker manually. Although we strive for having your submission approved as soon as possible, bear in mind this is a manual process to ensure extensions meet high standards. If your extension is complex, if it doesn't follow the guidelines, or if you didn't complete the submission form properly, it may require more time to consider your extension.
- Rejections: Docker strives to review extensions for consideration fairly and consistently. We will do our best to provide adequate and actionable feedback for you so that we can reconsider publishing your extension after youve made appropriate changes. If your extension has been rejected, you can communicate directly with us.
Depending on which option you select, the publishing process will differ.
#### Process for Self-published extensions
Self-published extensions are automatically validated. If all the validation checks pass successfully, it is
published on the Marketplace and accessible to all users within a few hours.
It is the fastest way to get developers the tools they need and to get feedback from them as you work to
evolve/polish your extension. You can request a review from the Docker Extensions team at any time.
> **Important**
>
> Docker Desktop caches the list of extensions available in the Marketplace for 12 hours. If you don't see your
> extension in the Marketplace, you can restart Docker Desktop to force the cache to be refreshed.
{: .important}
#### Process for Docker-reviewed extensions
Docker-reviewed extensions are manually reviewed by the Docker Extensions team. This process ensures a level of trust
and quality for developers using Docker Extensions and allows extension developers to get feedback.
Although we strive to have your submission approved as soon as possible, bear in mind this is a manual process to
ensure extensions meet high standards. If your extension is complex, if it doesn't follow the guidelines, or if you
didn't complete the submission form properly, it may take longer to review your extension.
Once the extension is reviewed, we will do our best to provide adequate and actionable feedback for you so that you can
improve it. If your extension has been rejected, you can communicate directly with us.
The review process also offers some advantages for extension developers of reviewed and approved extensions:
- The extension appears as **Reviewed** in the Marketplace
- The extension is added to our monthly "Docker Extensions Roundup" blog post
- The same blog post is featured in our monthly newsletter
- The extension is promoted on our social media channels
- You receive weekly reports on your extension's performance
> **Note**
>
> If it doesn't meet the approval requirements for a reviewed extension, you can still publish it without a review,
> and get your extension in the hands of developers. However, you will not benefit from
> the advantages listed above.

View File

@ -26,9 +26,8 @@ For further inspiration, see the other examples in the [samples folder](https://
Docker Desktop displays published extensions in the Extensions Marketplace. The Extensions Marketplace is a curated space where developers can discover extensions to improve their developer experience and upload their own extension to share with the world.
All extensions submitted to the Extensions Marketplace are reviewed and approved by our team before listing. This review process ensures a level of trust, security, and quality for developers using extensions and allows for extension developers to recieve feedback and then improve their extension experience.
If you want your extension to be published in the Marketplace, you can submit your extension [here](https://www.docker.com/products/extensions/submissions/){:target="_blank" rel="noopener" class="_"}. Well review your submission and provide feedback if changes are needed before we validate and publish it to make it available to all Docker Desktop users.
If you want your extension to be published in the Marketplace, see our [publish](./extensions/publish.md)
documentation page.
{% include extensions-form.md %}

View File

@ -21,6 +21,15 @@ To install an extension:
From here, you can select **Open** to access the extension or install additional extensions. The extension also appears in the left-hand menu and in the **Manage** tab.
There are two types of extensions available in the Extensions Marketplace:
- Docker-reviewed extensions
- Self-published extensions
Docker-reviewed extensions are manually reviewed by the Docker Extensions team to ensure an extra level of trust
and quality. They appear as **Reviewed** in the Marketplace.
Self-published extensions are autonomously published by extension developers. They appear as **Not reviewed** in the Marketplace.
## Update an extension
You can update any extension outside of Docker Desktop releases. To update an extension to the latest version: