blob: 82d4758302c75b4d39f1bd22eaed381b4605d58b [file] [log] [blame]
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
<link title="Style" href="../../netbeans.css" type="text/css" rel="stylesheet">
<META NAME="AUTHOR" CONTENT="dan.pfeffer@sun.com">
<META NAME="NAV_LINK" content="AutoUpdate Management">
<title>Managing AutoUpdate Content</title>
<META NAME="DESCRIPTION" content="NetBeans Auto Update content management process - how to add or remove modules from the AU servers">
</head>
<body>
<site>
<h1>NetBeans Update Centers content management process</h1>
<h2>Table of content</h2>
<p>
<a href="#Synopsis">Synopsis<br>
</a><a href="#General Context">Auto Update General Information<br>
</a>&nbsp;&nbsp;&nbsp; <a href="#Autoupdate center (AUC)">Update center (UC)<br>
</a> &nbsp;&nbsp;&nbsp; <a href="#NBM Modules">NetBeans Plugins<br>
</a> &nbsp;&nbsp;&nbsp; <a href="#Autoupdate module in NetBeans IDE">Autoupdate module in NetBeans IDE<br>
</a> &nbsp;&nbsp;&nbsp; <a href="#NetBeans Module Catalogue">NetBeans Module Catalogue<br>
</a> &nbsp;&nbsp;&nbsp; <a href="#Module providers">Module providers<br>
</a> &nbsp;&nbsp;&nbsp; <a href="#Aumasters team">Aumasters team<br>
</a> <a href="#How to add module to Autoupdate">How to add module to Auto Update<br>
</a>&nbsp;&nbsp;&nbsp; <a href="#Add Process">Process<br>
</a> &nbsp;&nbsp;&nbsp; <a href="#Add Criteria">Criteria<br>
</a> &nbsp;&nbsp;&nbsp; <a href="#Add Steps">Steps<br>
</a> <a href="#How to remove module from AU">How to remove module from Auto Update<br>
</a>&nbsp;&nbsp;&nbsp; <a href="#Remove Process">Process</a> <a href="#Add Criteria">
<br>
</a>&nbsp;&nbsp;&nbsp; <a href="#Remove Steps">Steps</a>
</p>
<h2>
<a id="Synopsis" name="Synopsis">Synopsis</a>
</h2>
<p>This document contains a description of the NetBeans Auto Update content management process, including guidelines for module providers interacting with NetBeans Auto Update centers. This is intended to help to prevent inconsistent NetBeans Auto Update center structures and module categorization problems. It should also prevent the posting of unreliable and duplicate modules on Auto Update centers. To achieve that, we need a clearly defined process, module criteria, and steps necessary to add or remove modules on Auto Update. This process is driven by a small team established for these purposes (<a href="mailto:aumasters@netbeans.org">aumasters@netbeans.org</a>).</p>
<h2>
<a id="General Context" name="General Context">Auto Update General Information</a>
</h2>
<p>Before we start to describe the steps necessary to <a href="#How to add module to Autoupdate">add</a> or <a href="#How to remove module from AU">remove</a> modules on Auto Update center, it's necessary to understand all of the entities involved in the Auto Update content management process. This document section should setup such context.</p>
<h3>
<a id="Autoupdate center (AUC)" name="Autoupdate center (AUC)">Autoupdate center
(UC)</a>
</h3>
<p>UC consists of a set of <a href="#NBM Modules">NetBeans module (*.nbm) files</a> (in a defined directory structure) and autoupdate catalogue file in XML format. All of these files are made available for http download.</p>
<h4>UC types</h4>
<p><i>For each release there are are several AUC's (e.g.: Stable, Third party,
HotFixes, Beta and Daily )</i>
<br>
</p>
<h3>
<a id="NBM Modules" name="NBM Modules">NetBeans Plugins</a>
</h3>
<p>NetBeans Plugins (NBM files) are basically plug-in modules that extend or upgrade NetBeans functionality. (See: <a href="https://netbeans.org/projects/platform/nbm/nbm_package.html">NBM package technology</a> for more information.) These modules are mainly used for distribution from an
<a href="#Autoupdate center (AUC)">UC</a>. <i>Note: NetBeans modules can be installed locally as well.</i>
</p>
<h4>NetBeans module types</h4>
<p>NetBeans modules can be classified based on the following categories of distribution license type:</p>
<ul>
<li>NetBeans (NetBeans CVS hosted modules - open source license)</li>
<li>Third Party (Modules whose sources are not hosted in NetBeans CVS) <ul>
<li>Third Party open source (open source license)</li>
<li>Third Party free (no usage restrictions - freeware type of license)</li>
<li>Third Party evaluation (evaluation version of commercial module - evaluation license )</li>
<li>Third Party commercial (commercial modules, which need to be purchased - i.e. N/A for AU, but for the <a href="#NetBeans Module Catalogue">NetBeans module catalogue</a> )</li>
</ul>
</li>
</ul>
<p>
<i>Note: NetBeans modules can be classified based on other criteria as well (e.g. quality, functionality, L10N,...)</i>&nbsp;</p>
<h4>NetBeans module hosting options</h4>
<p>There are several options for hosting and distributing of NetBeans modules:</p>
<ul>
<li>NetBeans UC (NBM file is at NetBeans.org site)</li>
<li>Module provider (NBM file is at a third-party module provider web site) <ul>
<li>NBM module is made available directly (without click-through web form). Such a module can be linked from relevant NetBeans Third party AUC.</li>
<li>NBM module is made available indirectly (with click-through web form). Such a module can not be used for AU distribution, but can be listed in the <a href="#NetBeans Module Catalogue">NetBeans module catalogue</a>&nbsp;&nbsp;</li>
</ul>
</li>
</ul>
<h3>
<a id="Autoupdate module in NetBeans IDE" name="Autoupdate module in NetBeans IDE">Autoupdate module in NetBeans IDE</a>
</h3>
<p>
Autoupdate is a NetBeans plugin module that enables you to install NetBeans modules from an
UC or a local directory.</p>
<h4>Branding</h4>
<p>There are predefined UC URL's in each release. They are defined in bundles packaged separately from module code, so it's easy to "brand/localize" them.<br>
<i>
<br>There are following UC references predefined: [x]Stable, [x]Third party, []Beta and
[]HotFixes.</i>
</p>
<h3>
<a id="NetBeans Module Catalogue" name="NetBeans Module Catalogue">NetBeans Module Catalogue</a>
</h3>
<p>The <a href="http://plugins.netbeans.org/">NetBeans Module Catalogue</a> is a set of web pages that contains a references to NetBeans add-on modules, including third party commercial modules, and other modules that are not directly available from the NetBeans site.</p>
<h3>
<a id="Module providers" name="Module providers">Module providers</a>
</h3>
<p>Module providers are developers of NetBeans modules. They can be classified in the following categories:</p>
<ul>
<li>NetBeans development teams (teams of people developing the NetBeans platform and IDE)</li>
<li>Third party open source dev. projects (usually people developing open source NetBeans plugins or products built on NetBeans)</li>
<li>Third party companies (commercial NetBeans plugin tool-vendors or companies building commercial products on top of NetBeans)</li>
</ul>
<p>
<b><i>Role</i></b> - Module providers deliver modules that may be made available on the NetBeans <a href="#Autoupdate center (AUC)">AUC</a> or <a href="#NetBeans Module Catalogue">Modules Catalogue</a>. To add or remove a NetBeans module from an AUC, module providers has to follow the corresponding process (<a href="#How to add module to Autoupdate">Add module to AUC</a>, <a href="#How to remove module from AU">Remove module from AUC</a>)<br>
<i>Note: To add a module to the NetBeans Module Catalogue, see the <a href="http://plugins.netbeans.org/">Listing your Module in the Catalogue</a> document.</i>
</p>
<h3>
<a id="Aumasters team" name="Aumasters team">Aumasters team</a>
</h3>
<p>
<b><i>Membership</i></b> - This team is designed to be a small working group consisting of build masters, QA, evangelism and web-team representatives. It should be also open to anybody who is able to take on any Auto Update content management responsibility.&nbsp;</p>
<p>
<b><i>Role</i></b> - In general, the Aumasters team is responsible for Auto Update content. This team activities differs dependent on AUC type.</p>
<ul>
<li>
<i>Release AUC's</i>
<ul>
<li>Stable AUC definition (modules list, AUC folders and modules categorization)</li>
<li>Beta and Third party module vendors invitation for inclusion</li>
<li>Review of requests to add/remove module</li>
<li>Monitor AU modules criteria (quality)<br>
</li>
</ul>
</li>
<li>Development AUC <ul>
<li>Review requests to add/remove module</li>
<li>Monitor AU modules criteria (quality)</li>
</ul>
</li>
</ul>
<p>
<i>Note: If the Aumasters team realizes that a module doesn't comply with the AU publishing <a href="#Add Criteria">criteria</a>, the module owner will be asked to fix it immediately. Otherwise, the module will be removed. If the problem is fixed, the module can be posted on the AU again.</i>
</p>
<h2>
<a id="How to add module to Autoupdate" name="How to add module to Autoupdate">How to add module to Auto Update</a>
</h2>
<h3>
<a id="Add Process" name="Add Process">Process</a>
</h3>
<p>The process to add module to Auto Update consist of the following activities:</p>
<ol>
<li>
<b>Submit request</b> - Module provider submits NBM module with request to add module in specific AUC (See submission request <a href="#Add Steps">steps</a> for more details).</li>
<li>
<b>Aumasters review</b> - Aumasters ask the module provider to demonstrate that all relevant criteria are met. <i>Note: The module owner/vendor has still full responsibility for it.</i>
<br> If the module meets all corresponding <a href="#Add Criteria">criteria</a>, Aumasters approve the module to be added to AUC. Else the module provider will be asked to fix the problem.&nbsp;</li>
<li>
<b>Module addition</b>&nbsp;- Aumasters approved module is posted on AUC.</li>
<li>
<b>Announcement</b> - New module addition is announced to the module provider and community (<a href="mailto:nbusers@netbeans.org">nbusers@netbeans.org</a> and <a href="mailto:nbannounce@netbeans.org">nbannounce@netbeans.org</a>).</li>
</ol>
<h3>
<a id="Add Criteria" name="Add Criteria">Criteria</a>
</h3>
<p>NetBeans module has to meet following criteria corresponding to the module type:</p>
<ul>
<li>&nbsp;General (for both NetBeans and third party modules) <ul>
<li>The NBM file has to be <b>manually installable</b>.<br> (Place the NBM file in some local directory on your machine, and follow the Auto Update Center wizard instructions for manually installing modules. Do this using the release version of the IDE that your module should work with; if it should work with more than one version, please repeat for each to verify all is working. No exceptions or unexpected messages should appear during the NBM file installation.)</li>
<li>Module <b>AUC folder</b> has to be consistent with the target release AUC structure.</li>
<li>Module <b>category</b>&nbsp; has to be consistent with the target release modules categorization.</li>
<li>Module has a <b>proper description</b> text (provided in the module's "OpenIDE-Module-Long-Description" attribute)</li>
<li>Module has a <b>link to</b> a web page containing <b>more info</b> about the module/module update, e.g. in the form of Release Notes</li>
<li>If the module is an update of module, which is already published, module <b>specification version number</b> has to increase accordingly.&nbsp;</li>
</ul>
</li>
<li>&nbsp;NetBeans module <ul>
<li>
<b>Quality</b> - NetBeans module has to meet corresponding (stable, beta, alpha) <a href="http://qa.netbeans.org/processes/stabe_module_criteria_process.html">NetBeans quality criteria</a>.</li>
<li>
<b>Licensing</b> - The NetBeans module has to have proper license (See <a href="../../about/legal/license.html">NetBeans license pages</a> and license in <a href="https://netbeans.org/projects/platform/nbm/nbm_package.html#infoxml">Info.xml file</a> for more info)&nbsp;</li>
</ul>
</li>
<li>&nbsp;Third party module <ul>
<li>
<b>Privacy rules</b> - The module can ask for user data (such as name, e-mail, etc.) as long as this is optional for the module usage, and this fact is clearly described in the user interface.<br> The user interface should also contain a link to the company privacy policy.&nbsp;</li>
<li>
<b>Quality</b> - The module has to pass module provider release quality criteria with the target NetBeans release.</li>
<li>
<b>Promotion</b> - The module can contain promotion for commercial versions of the functionality as long as they are done in an unobtrusive way.<br> Examples of allowed promotion: Pricing/Product info in Help | About box, one time message that appears on the module functionality first usage, help content.<br> Examples of disallowed promotion: Repetitive reminders to purchase. Message appearing on the IDE startup. Requirements to register to use the product.</li>
<li>
<b>Catalogue</b> - The module will only appear in the Update Center after it was available in the Module Catalogue for at least 1 (one) month.&nbsp;</li>
<li>
<b>Licensing -</b> If the module will be hosted on module provider site (preferred option), such module URL will be referenced from autoupdate catalogue XML file only, and no special license review will be necessary. If this is not possible, the module can be hosted on NetBeans site. In this case however, the module needs to go through more detailed legal review.<br> There are additional criteria dependent on the license type.&nbsp;&nbsp; <ul>
<li>
<i>Third party free and open source</i>
<br> Such a module needs to have a license that permits the module user free usage (including commercial) for unlimited time. A typical example would be "stripped down" version of a commercial module.&nbsp;</li>
<li>
<i>Third party evaluation</i>
<br> Such a module can contain commercial (e.g. "try &amp; buy") type of license.<br>
<i>Note: In case of "try &amp; buy" type of license, the NetBeans has still run smoothly after the license expires (just the evaluation module stop work).</i>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>
<a id="Add Steps" name="Add Steps">Steps</a>
</h3>
<p>To submit module on NetBeans Auto Update you need to go through following steps:</p>
<ol>
<li>Check all <a href="#Add Criteria">criteria</a> relevant to the module you want to post on AUC.</li>
<li>Fill the AU request form according <a href="au-request-form.html">AU request form template</a>.</li>
<li>Submit the NBM file with filled-in request form to <a href="mailto:aumasters@netbeans.org">aumasters@netbeans.org</a>. Somebody from Aumasters should respond within two days.<br>
<i>Note: If your module is more than say a few hundred kilobytes, please try to make it available somewhere online (e.g. on your personal homepage). If you have no access to webspace, please contact <a href="https://netbeans.org/about/contact_form.html?to=1">webmaster</a>.</i>
</li>
<li>Wait for Aumasters feedback and/or module addition announcement.&nbsp;</li>
</ol>
<h2>
<a id="How to remove module from AU" name="How to remove module from AU">How to remove module from AU</a>
</h2>
<h3>
<a id="Remove Process" name="Remove Process">Process</a>
</h3>
<p>The process to remove module from Auto Update consist from following activities:</p>
<ol>
<li>
<b>Submit request</b> - Module provider requests to remove the module from AUC</li>
<li>
<b>Aumasters review</b> - Aumasters review the removal impact (dependencies,...) and confirm the module with all dependent modules removal.</li>
<li>
<b>Module removal</b> - Module reference in corresponding autoupdate catalogue XML file removal and eventually (if hosted on NetBeans.org site) the NBM file removal.</li>
<li>
<b>Announcement</b> - Module removal will be announced to the module provider and community (<a href="mailto:nbusers@netbeans.org">nbusers@netbeans.org</a>, and <a href="mailto:nbannounce@netbeans.org">nbannounce@netbeans.org</a>).</li>
</ol>
<h3>
<a id="Remove Steps" name="Remove Steps">Steps</a>
</h3>
<ol>
<li>Send the removal request from module provider to <a href="mailto:aumasters@netbeans.org">aumasters@netbeans.org</a>.<br>
<i>Note: make sure that the request contains module name and AUC from which the module should be removed.</i>
</li>
<li>Wait for feedback/module removal announcement</li>
</ol>
<p>
<i>Note: there are no explicitly defined criteria to remove module (except module provider identity verification).</i>
</p>
<p>Don't hesitate to contact <a href="mailto:aumasters@netbeans.org">aumasters@netbeans.org</a> in case you have any question or problem in this area.</p>
</body>
</html>
</site>