1
0
Fork 0

Docs/README.add-ons: update regarding /addon/authors and /addon/maintainers

With FlightGear commit 4d36082, the contents of /addon/authors (resp.
/addon/maintainers) in addon-metadata.xml files is now structured. It
may contain an arbitrary number of 'author' (resp. 'maintainer') child
nodes, each of which contains subnodes 'name', 'email' and 'url' ('name'
being mandatory, 'email' and 'url' being optional).

This commit updates Docs/README.add-ons regarding this change in the
syntax for addon-metadata.xml files, as well as the related
modifications to the add-on Nasal interface.
This commit is contained in:
Florent Rougon 2017-12-30 12:23:34 +01:00
parent c69e0ce0d1
commit 72414d039a

View file

@ -117,12 +117,26 @@ add-on called “Flying Turtle” distributed by Joe User:
<name type="string">Flying Turtle</name> <name type="string">Flying Turtle</name>
<version type="string">1.0.0rc2</version> <version type="string">1.0.0rc2</version>
<authors type="string"> <authors>
Joe user &lt;optional_address@example.com&gt; <author>
Jane Maintainer &lt;jane@example.com&gt; <name type="string">Joe User</name>
<email type="string">optional_address@example.com</email>
<url type="string">http://joe.example.com/foobar/</url>
</author>
<author>
<name type="string">Jane Maintainer</name>
<email type="string">jane@example.com</email>
<url type="string">https://jane.example.com/</url>
</author>
</authors> </authors>
<maintainers type="string">
Jane Maintainer &lt;jane@example.com&gt; <maintainers>
<maintainer>
<name type="string">Jane Maintainer</name>
<email type="string">jane@example.com</email>
<url type="string">https://jane.example.com/</url>
</maintainer>
</maintainers> </maintainers>
<short-description type="string"> <short-description type="string">
@ -213,10 +227,26 @@ Authors and maintainers
Nodes: /addon/authors and /addon/maintainers Nodes: /addon/authors and /addon/maintainers
Authors are people who contributed significantly to the add-on. Authors are people who contributed significantly to the add-on.
Maintainers are people currently in charge of maintaining the add-on. Maintainers are people currently in charge of maintaining it.
These fields are free-form, therefore contents such as “Joe User and
others” is allowed. However, please stick to the format used in the It is possible to declare any number of authors and any number of
above example if possible. maintainers---the example above shows only one maintainer for shortness,
but this is not a restriction.
For each author and maintainer, you can give a name, an email address
and a URL. The name must be non-empty, but the email address and URL
need not be specified or may be left empty, which is equivalent.
Obviously, if no email address nor URL is given for any maintainer, it
is highly desirable that /addon/urls/support contains a usable URL for
contacting the add-on maintainers.
The data in children nodes of /addon/maintainers may refer either to
real persons or to more abstract entities such as mailing-lists. In case
of a real person, the corresponding URL, if specified, is expected to be
the person's home page. On the other hand, if a declared “maintainer” is
a mailing-list, a good use for the 'url' field is to indicate the
address of a web page from which people can subscribe to the
mailing-list.
Short and long descriptions Short and long descriptions
=========================== ===========================
@ -427,8 +457,15 @@ code easy access to add-on metadata, for instance like this:
print(myAddon.id); print(myAddon.id);
print(myAddon.name); print(myAddon.name);
print(myAddon.version.str()); print(myAddon.version.str());
print(myAddon.authors);
print(myAddon.maintainers); foreach (var author; myAddon.authors) {
print(author.name, author.email, author.url);
}
foreach (var maintainer; myAddon.maintainers) {
print(maintainer.name, maintainer.email, maintainer.url);
}
print(myAddon.shortDescription); print(myAddon.shortDescription);
print(myAddon.longDescription); print(myAddon.longDescription);
print(myAddon.licenseDesignation); print(myAddon.licenseDesignation);
@ -481,8 +518,9 @@ Read-only data members (attributes) of addons.Addon objects:
name the add-on “pretty name” (string) name the add-on “pretty name” (string)
version the add-on version (instance of addons.AddonVersion, version the add-on version (instance of addons.AddonVersion,
ghost) ghost)
authors the add-on authors (string) authors the add-on authors (vector of addons.Author ghosts)
maintainers the add-on maintainers (string) maintainers the add-on maintainers (vector of addons.Maintainer
ghosts)
shortDescription the add-on short description (string) shortDescription the add-on short description (string)
longDescription the add-on long description (string) longDescription the add-on long description (string)
licenseDesignation licensing terms: "GNU GPL version 2 or later", licenseDesignation licensing terms: "GNU GPL version 2 or later",
@ -530,6 +568,20 @@ Member functions (methods) of addons.AddonVersion objects:
greaterThan(addons.AddonVersion other) | greaterThan(addons.AddonVersion other) |
greaterThanOrEqual(addons.AddonVersion other) | greaterThanOrEqual(addons.AddonVersion other) |
Read-only data members (attributes) of addons.Author objects:
name author name (non-empty string)
email email address of the author (string)
url home page of the author (string)
Read-only data members (attributes) of addons.Maintainer objects:
name maintainer name (non-empty string)
email email address of the maintainer (string)
url home page of the maintainer, if a person; if the
maintainer is a mailing-list, the URL can point
to a web page from which people can subscribe to
that mailing-list (string)
Footnotes Footnotes
--------- ---------