-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathtut_publishing_guidelines.html
196 lines (141 loc) · 13.6 KB
/
tut_publishing_guidelines.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
---
layout: default-withsidebar
title: Publishing guidelines
author: andreasbovens
copyright: opera-ccby
---
<h2>Contents</h2>
<ol class="toc">
<li><a href="#intro">Introduction</a></li>
<li><a href="#create">Create your extension</a></li>
<li><a href="#prepare">Prepare your details before submission</a>
<ul>
<li><a href="#good-name">Pick a good name</a></li>
<li><a href="#version-numbers">Choose a version number</a></li>
<li><a href="#support-webpage">Create an extension support page (optional)</a></li>
<li><a href="#categories">Choose a category</a></li>
<li><a href="#chooselicense">Choose a license</a></li>
<li><a href="#good-summary">Write a good summary</a></li>
<li><a href="#good-description">Write a good description</a></li>
<li><a href="#testing">Test your extension</a></li>
<li><a href="#good-icons">Create a good icon</a></li>
<li><a href="#good-screenshots">Take good screenshots</a></li>
</ul>
</li>
<li><a href="#submit">Submit your extension for review</a>
<ul>
<li><a href="#acceptance-criteria">Acceptance criteria</a></li>
</ul>
</li>
<li><a href="#reviewed">Your extension is reviewed</a></li>
<li><a href="#published">When the extension satisfies all criteria, it will be published</a></li>
</ol>
<h2 id="intro">Introduction</h2>
<p><img src="static/images/publishingprocess.png" alt="overview of the publishing process — development, submission, testing, then publishing" class="img-polaroid"></p>
<p class="comment">Figure 1: Overview of the publishing process — development, submission, testing, and publishing.</p>
<p>This guide explains how to publish your extension, which is a multi-step process that begins when you <a href="https://addons.opera.com/developer/upload/">submit your extension for review</a>. The extension moderators then test the extension and publish it in our <a href="https://addons.opera.com/addons/extensions/">Opera extensions catalog</a>. In case there are issues, they reject the extension and send it back to the developer to work on it more and submit it again (see Figure 1).
<p>We want published Opera extensions to be of a consistently high quality, so we have created this guide for you to follow.</p>
<h2 id="create">1. Create your extension</h2>
<p>See our <a href="tut_getting_started.html">Getting started tutorial</a> and the rest of the documentation to build your own extension.</p>
<h2 id="prepare">2. Prepare your details before submission</h2>
<p>Before you submit your extension, you should do the following to prepare, and get all the details you need together. The following sections contain many hints and tips for creating effective descriptions, screenshots, etc. If you have been through all these before and just need a checklist to check your details against, go straight to the <a href="#submit">Submit your extension for review</a> section.</p>
<h3 id="good-name">Pick a good name</h3>
<p>Think carefully about the name of your extension. It needs to be memorable, short and appropriate, so it is easy for users to find and remember.</p>
<h3 id="version-numbers">Choose a version number</h3>
<p>The version number can consist of one to four dot-separated integers. Examples are <code>1</code>, <code>1.3</code>, <code>2.0.4</code>, and <code>3.5.8.98</code>. Note that non-zero integers cannot start with 0 — in other words, <code>064</code> is not allowed. For more details, see the <a href="manifest.html#version">version documentation section</a>.</p>
<h3 id="support-webpage">Create an extension support page (optional)</h3>
<p>You should seriously consider creating a support page for your extension. We'd recommend you include news of new releases and updates, detailed usage instructions, a portfolio of your other work, and contact details in case anyone needs to contact you with queries.</p>
<p>The support webpage should be relevant to your extension. If it is not, your extension may be rejected.</p>
<h3 id="categories">Choose a category</h3>
<p>Choose one of the following categories for your extension:</p>
<ul>
<li>Accessibility</li>
<li>Appearance</li>
<li>Entertainment</li>
<li>Games</li>
<li>Music</li>
<li>News & Blogging</li>
<li>Pictures</li>
<li>Productivity</li>
<li>Reference</li>
<li>Shopping</li>
<li>Social</li>
<li>Travel</li>
<li>Weather</li>
<li>Web Development</li>
</ul>
<h3 id="chooselicense">Choose a license</h3>
<p>Choose the distribution license for your extension — the Opera Extensions site allows you to choose between two when uploading.</p>
<p>With the <a href="https://addons.opera.com/developer/license/hosting/">Opera hosting license</a> you keep all content rights, but allow Opera to make the extension available free of charge to users worldwide. Opera can make changes to the extension, if required to make it work properly.</p>
<p>Alternatively, if you prefer an Open Source license that allows anyone to build on your work, you can choose the <a href="http://www.apache.org/licenses/LICENSE-2.0.html">Apache 2.0 license</a>.</p>
<h3 id="good-summary">Write a good summary</h3>
<p>The summary should briefly explain what your extension does. This will be shown on the front page of the catalogue and in the extensions manager in the browser. Keep it short and sweet - try summarizing its purpose and functionality in one sentence.</p>
<p>Example: <strong>Video Downloader allows you to easily save all your favorite videos directly as .mov and .avi files, so they are ready to be watched on any device.</strong></p>
<h3 id="good-description">Write a good description</h3>
<p>The description provides more detail about your extension to supplement the summary. It shouldn't just be a copy of the summary: it should aim to describe what your extension looks like, what its purpose is, and how you use it. You could also choose to write about the main features, the target audience, and what is coming in future versions.</p>
<p>Example:</p>
<blockquote>
<p>Video Downloader is the most advanced tool to keep hold of your favorite videos.</p>
<p>With Video Downloader you can easily save all your favorite videos directly as .mov and .avi files, so they are ready to be watched on any device. Video Downloader also fetches subtitles for the video from different sources, and you can set it up to automatically download subtitles in any language. Video Downloader also lets you save a series of videos in bulk and turn them into a single file.</p>
<p>Video uploader works especially well on low bandwidth connections as it compresses the files before sending them, increasing the download speed up to 60%.</p>
<p>Simply click on the Video Downloader button when visiting the page that contains the video you want to download, then select advanced settings or just press "Continue" to download the single video file.</p>
</blockquote>
<h3 id="testing">Test your extension</h3>
<p>You should test your extension on Mac as well as Windows, and try it out in low and high bandwidth scenarios. Also make sure it doesn't unnecessarily slow down the browser, or otherwise impacts the user experience in a negative way.</p>
<h3 id="good-icons">Create a good icon</h3>
<p>You also need to have a good icon prepared for your extension. For more information on creating a good icon, along with icon templates, read <a href="tut_icons.html">Creating effective Opera Extension icons</a>.</p>
<h3 id="good-screenshots">Take good screenshots</h3>
<p>You need to provide screenshots of your extension. We recommend one screenshot to show how the extension works and one to show how it looks in the browser. Your screenshots should be tidy and clearly illustrate the main features of your extension. They should appeal to your potential users.</p>
<p>You <strong>should</strong>:</p>
<ul>
<li><p><em>Have a screenshot size of 612x408 pixels. This is the preferable screenshot size.</em> The maximum you go can go with it is 800x600 pixels (though we would recommend you stick with 612x408 pixels if possible).</p></li>
<li><p>Take your screenshots with a white background.</p></li>
<li><p>Disable other extensions you have installed, so that yours can take center stage.</p></li>
<li><p>Make sure to include the relevant part of your functionality.</p></li>
<li><p>Show the location of the extension in the browser UI. For example, if your extension has a button on the toolbar, focus the screenshot on this location (see Figure 2 for an example). Make a screenshot of the extension in action. In an image editor, center the image and crop the screenshot, leaving some whitespace if necessary.</p></li>
<li><p>Show how the extension interacts with a webpage, if this is the case. Make sure the screenshot highlights the functionality of your extension and not merely the webpage.</p></li>
<li><p>Use the default UI of the browser (consider using a clean install.)</p></li>
</ul>
<p>You <strong>should not</strong>:</p>
<ul>
<li><p>Make the screenshots larger than 800x600 pixels.</p></li>
<li><p>Show any page or background tab that is not relevant to the extension.</p></li>
<li><p>Include superfluous content.</p></li>
<li><p>Show other extensions or other customizations.</p></li>
</ul>
<h2 id="submit">3. Submit your extension for review</h2>
<p>To submit your extension, you need to head over to the <a href="https://addons.opera.com/addons/extensions/">Opera extensions repository</a>, make sure you are signed in, and then upload your extension and associated files and details using the <a href="https://addons.opera.com/developer/upload/">Upload Extensions form</a>. There are a quite a few options to look through in this multi-page process.</p>
<p>The final page gives you a chance to review all your choices before submitting your extension.</p>
<h2 id="reviewed">4. Your extension is reviewed</h2>
<p>When you submit your extension, we will evaluate it according to a set of acceptance criteria. If it doesn't satisfy all of them, the extension will be rejected. You can track the status of your submitted extensions at the <a href="https://addons.opera.com/developer/">Submitted extensions</a> page.</p>
<h3 id="acceptance-criteria">Acceptance criteria</h3>
<p>Your extension must satisfy the following acceptance criteria:</p>
<ul>
<li>It must perform as described.</li>
<li>There should be no obvious bugs.</li>
<li>Icons of all sizes should be similar in style.</li>
<li>Icons should not just consist of one or more words on a colored background. Refer to our <a href="tut_icons.html">icon guidelines</a> for tips on how to make good icons.</li>
<li>The icons, screenshots and graphic design must be of acceptable quality. Anti-aliased PNGs with transparent backgrounds are preferred. Note that interlaced PNG-files are currently not supported, due to a <a href="http://www.pythonware.com/library/pil/handbook/format-png.htm">limitation of the image library</a> we're using. Avoid this effect in your screenshots.</li>
<li>Icons inside the address bar (page actions) cannot have a padlock shape.</li>
<li>If defined, the support webpage must be relevant to the extension.</li>
<li>It must not collect private information without authorization from the user.</li>
<li>It must not send private data to an external store, for example through XHR.</li>
<li>It must not unlawfully incorporate third party information, code or graphics.</li>
<li>It must not include 'Opera' in the title or any other Opera branding that can indicate the extension was created by Opera Software.</li>
<li>It must comply with the <a href="https://addons.opera.com/developer/terms/">Terms of Service</a>.</li>
<li>No external JavaScript is allowed. All JavaScript code must be contained in the extension. External APIs are ok.</li>
<li>Values in <code>manifest.json</code> must be sound and valid.</li>
<li>Flash is not allowed.</li>
<li>Ads in content scripts are not allowed.</li>
<li>Speed Dial extensions cannot just be a static picture linking to a website. They must provide valuable functionality, such as e.g. real-time info.</li>
<li>Extensions cannot just consist of a button linking to a website, or of a popup with some static links pointing to a website. Extensions must provide valuable functionality, such as e.g. a transformation applied on a page when a button is clicked, real-time info in a popup, etc.</li>
<li>Content inside popups must be optimized for display in a popup. The content must match the popup's size, and vertical scrolling should only be used if really necessary. Avoid horizontal scrolling inside popups.</li>
<li>While linking to your own or other sites from your extension is fine, such links should be relevant and have a clear function. Don't overload the extension with promotional links.</li>
<li>We must be able to review the code in a reasonable manner. Therefor, the code shouldn't be obfuscated. Binary code is not ok.</li>
<li>The summary must answer the question: what does your extension do? It must be composed of grammatically correct and complete sentences.</li>
<li>The description must answer: 1) How do you use the extension? 2) What does the extension look like?</li>
</ul>
<p>If the above criteria are satisfied, your extension undergoes additional testing, to see that it works on all platforms (Windows, Mac and Linux).</p>
<p>An extension that does not satisfy the criteria or fails the testing will be rejected, and you will be given information on the <a href="https://addons.opera.com/developer/">Submitted extensions</a> page. After you have fixed the problems, you can resubmit the extension by clicking the "Upgrade" button next to the package name.</p>
<h2 id="published">5. When the extension satisfies all criteria, it will be published</h2>
<p>If your extension is outstanding, it may be placed in the "Recommended" section.</p>