<commit_before><?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "AppStream.ent">
%BOOK_ENTITIES;
]>

<section id="sect-Quickstart-DesktopApps">
	<title>For GUI application upstream maintainers</title>

	<section id="qsr-app-introduction">
		<title>Introduction</title>
		<para>
			Every software center that exists allows the user to look at screenshots and a long description of the application before it is installed.
			For most users it allows them to answer the question <quote>Do I want to install this application?</quote>.
			Traditionally in Linux distributions, we have none of this data for the vast majority of our desktop user-installable applications.
			The packages-descriptions are describing all contents of a package, and not just a single application. They are also often written in a technical
			language and refer to other packages, which makes it hard for beginners to understand what the application they want to install really does.
			Additionally, if you are not using Debian or Ubuntu, the package descriptions are often untranslated.
			Also, packages do not provide some metadata users might be interested in before installing an application.
		</para>
		<para>
			To solve this, we have defined a new data file, which the upstream project can optionally translate using the same technique as
			<ulink url="http://standards.freedesktop.org/desktop-entry-spec/latest/">Desktop files</ulink> or GSetting schemas.
			The AppData specification is a subset of the AppStream metadata (see <xref linkend="sect-AppStream-ASXML"/>) and extends
			the generic component metadata with fields specific for applications (see <xref linkend="sect-Metadata-GenericComponent"/>).
		</para>
		<para>
			The AppData files override any values which are automatically fetched by the AppStream data generator.
			Applications can ship one or more files in <filename>/usr/share/appdata/%{id}.appdata.xml</filename>.
		</para>
		<para>
			AppData files can - just like all other metainfo files - be translated. See the section about translation for more information about that.
		</para>
		<note>
			<para>
				All tags defined in the generic component specification are valid in AppData as well, an application is just
				defined as a specialized component, which has the additional benefit of being displayed in a software-center application.
			</para>
		</note>
	</section>

	<section id="qsr-app-example">
		<title>Example file</title>
		<para>
			The file should contain something like this:
		</para>
		<programlisting language="XML">
<![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2013 <NAME> <<EMAIL>> -->
<component type="desktop">
  <id>gnome-power-statistics.desktop</id>
  <metadata_license>CC0</metadata_license>
  <project_license>GPL-2.0+</project_license>
  <name>Power Statistics</name>
  <summary>Observe power management</summary>

  <description>
    <p>
      Power Statistics is a program used to view historical and current battery
      information and will show programs running on your computer using power.
    </p>
    <p>Example list:</p>
    <ul>
      <li>First item</li>
      <li>Second item</li>
    </ul>
    <p>
      You probably only need to install this application if you are having problems
      with your laptop battery, or are trying to work out what programs are using
      significant amounts of power.
    </p>
  </description>

  <screenshots>
    <screenshot type="default">
      <caption>The options dialog</caption>
      <image width="800" height="600">http://www.hughsie.com/en_US/main.png</image>
    </screenshot>
    <screenshot>
      <image width="800" height="600">http://www.hughsie.com/en_US/preferences.png</image>
    </screenshot>
  </screenshots>

  <url type="homepage">http://www.gnome.org/projects/en_US/gnome-power-manager</url>
  <project_group>GNOME</project_group>

  <provides>
    <binary>gnome-power-statistics</binary>
  </provides>

  <releases>
    <release version="3.12.2" date="2013-04-12">
      <description>
        <p>Fixes issues X, Y and Z</p>
      </description>
    </release>
  </releases>
</component>]]>
		</programlisting>
	</section>

	<section id="qsr-app-contents">
		<title>Recommended metadata file contents</title>

		<para>
			This is a list of tags you might want to define for your application. For a full list of all possible tags, take a look at
			the definition of a generic component (<xref linkend="spec-component-filespec"/>) and an application-component (<xref linkend="spec-appdata-filespec"/>).
		</para>

		<variablelist>
			<varlistentry>
			<term>&lt;id/&gt;</term>
			<listitem>
				<para>
					For applications, the <literal>&lt;id/&gt;</literal> tag value must be the same name as the installed .desktop file for the application.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;metadata_license/&gt;</term>
			<listitem>
				<para>
					The <code>&lt;metadata_license/&gt;</code> tag is indicating the content license that you are releasing the one
					metadata file as. This is not typically the same as the project license. By ommitting the license value would
					probably mean your data would not be incorporated into the distribution metadata.
					Permissible license codes include:
				</para>
				<itemizedlist>
					<listitem>
						<para>CC0-1.0</para>
					</listitem>
					<listitem>
						<para>CC-BY-3.0</para>
					</listitem>
					<listitem>
						<para>CC-BY-SA-3.0</para>
					</listitem>
					<listitem>
						<para>GFDL-1.3</para>
					</listitem>
					<listitem>
						<para>MIT</para>
					</listitem>
				</itemizedlist>
				<para>
					The license codes correspond to the identifiers found at the <ulink url="http://spdx.org/licenses/">SPDX OpenSource License Registry</ulink>.
					Take a look at <xref linkend="tag-metadata_license"/> for more details about this tag.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;project_license/&gt;</term>
			<listitem>
				<para>
					The <literal>&lt;project_license/&gt;</literal> tag is indicating the license(s) this application is released under.
					Take a look at the specification of the <xref linkend="tag-project_license"/> tag for details on how to properly use it.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;name/&gt;</term>
			<listitem>
				<para>
					While this tag is requited for a generic component, for an application metainfo file it is not necessary, but only recommended.
					You can omit this tag if you want the software center to have the same strings as defined in the XDG desktop file.
					In some cases it might be required to have a different name in the app-store, but most <filename>appdata.xml</filename> files will not need this.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;summary/&gt;</term>
			<listitem>
				<para>
					While this tag is requited for a generic component, for an application metainfo file it is not necessary, but only recommended.
					You can omit this tag if you want the software center to have the same strings as defined in the XDG desktop file.
					In some cases it might be required to have a different name in the app-store, but most <filename>appdata.xml</filename> files will not need this.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;description/&gt;</term>
			<listitem>
				<para>
					The long description is an important part of the file. Important things to consider when writing the application description:
				</para>
				<itemizedlist>
					<listitem>
						<para>Include 2-3 paragraphs of interesting easy to read prose.</para>
					</listitem>
					<listitem>
						<para>Ensure you provide a description of what the application actually does.</para>
					</listitem>
					<listitem>
						<para>Describe any important features.</para>
					</listitem>
					<listitem>
						<para>Do not use possily trademarked product names when refering to competitors.</para>
					</listitem>
					<listitem>
						<para>Break down each paragraph into easily translated paragraphs.</para>
					</listitem>
					<listitem>
						<para>Use lists sparingly.</para>
					</listitem>
					<listitem>
						<para>Never refer to installable items as packages.</para>
					</listitem>
					<listitem>
						<para>Never start the first sentence with "This application..."</para>
					</listitem>
					<listitem>
						<para>Try not use more than 100 words.</para>
					</listitem>
					<listitem>
						<para>Do not be too geeky. Aim for an intelligent semi-technical reader.</para>
					</listitem>
					<listitem>
						<para>Don't mention what language an application is written in, users don't care</para>
					</listitem>
					<listitem>
						<para>Only mention what the application can do now, rather than what is planned</para>
					</listitem>
				</itemizedlist>
				<para>
					Do not assume the format is HTML. Only paragraph, ordered list and unordered list are supported at this time.
				</para>
				<para>
					In metainfo files, this tag should be translated by-paragraph, meaning that in a translated file, each translated <literal>&lt;p/&gt;</literal> child
					has a language property.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry id="qsr-app-screenshots-info">
			<term>&lt;screenshots/&gt;</term>
			<listitem>
				<para>
					A screenshot presents your application to the outside world, and could be seen by hundreds or thousands of people.
				</para>
				<para>
					The <code>&lt;screenshots/&gt;</code> tag contains multiple <code>&lt;screenshot/&gt;</code> children, where at least one of them must have the property
					<code>type="default"</code> to indicate the application's primary screenshot. Every <code>&lt;screenshot/&gt;</code> tag must have at least
					one <code>&lt;image/&gt;</code> child, which should define the width and height of the referenced image in it's properties.
					The value of the <code>&lt;image/&gt;</code> tag is a direct URL to a screenshot uploaded to a public location on the web.
				</para>
				<para>
					Optionally, a <code>&lt;screenshot/&gt;</code> tag may have a <code>&lt;caption/&gt;</code> child, defining a short (not more than 180 characters!)
					description of what the user can see on the referenced screenshot.
				</para>
				<para>
					Screenshots are an important part of how people choose which applications to install, so it's important to get them right.
					Consistent, good looking screenshots will make your application look more attractive and will expand your userbase.
					Consistent screenshots also provide a more predictable experience for people using the software center.
				</para>
				<para>
					Screenshot size, shape and format:
				</para>
				<itemizedlist>
					<listitem>
						<para>
							All screenshots should have a 16:9 aspect ratio, and should have a width that is no smaller than 620px (software center applications will be able to fill in the screenshots in the space they provide for that
							more easily then).
						</para>
						<para>
							Ideally the window will be resized to a 16:9 aspect ratio, but screenshots can also be cropped if only a small area of the window needs to be shown.
						</para>
					</listitem>
					<listitem>
						<para>
							Screenshots should be in PNG or JPEG format. PNG is the preferred format; JPEG should only be used when screenshots include large photographs or other images where a lossy format like
							JPEG may compress better.
						</para>
					</listitem>
					<listitem>
						<para>Do not scale screenshots below their original size.</para>
					</listitem>
				</itemizedlist>
				<para>
					Basic guidelines for things to include (and not include) in your screenshots:
				</para>
				<itemizedlist>
					<listitem>
						<para>
							Use the default visual and theme settings, including the default font, icons, and window controls. Avoid including your own tweaks to the standard distribution offering.
						</para>
					</listitem>
					<listitem>
						<para>Screenshots should be taken with English as the display language.</para>
					</listitem>
					<listitem>
						<para>
							Your default screenshot should give an overview of your application, and should show an entire application window.
							It can be combined with screenshots which show specific aspects of the application.
						</para>
					</listitem>
					<listitem>
						<para>
							Screenshots should not show anything outside the application's windows (including the background wallpaper).
							If you are taking a screenshot of the whole window, use your screenshot tool's "window" mode (including any window borders in the screenshot, and ensuring that the resulting image has an
							alpha mask for the rounded corners).
						</para>
					</listitem>
					<listitem>
						<para>
							Some applications, such as games, primarily run full screen. Screenshots of these applications should be taken with the application
							running full screen - there should be no visible window controls in the screenshot.
						</para>
					</listitem>
					<listitem>
						<para>Don't add shadows to your screenshots.</para>
					</listitem>
					<listitem>
						<para>
							Do not include content that might be considered offensive or controversial, and avoid showing personal information. Remember that your screenshots will be visible to the internet at large.
						</para>
					</listitem>
				</itemizedlist>
				<para>
					Additional advice on how to take effective screenshots:
				</para>
				<itemizedlist>
					<listitem>
						<para>
							Each of your screenshots should focus on one thing and one thing only. Screenshot one window at a time, and avoid having
							overlapping windows or user interface elements.
							This will make it much easier for people to understand what you are showing them.
						</para>
					</listitem>
					<listitem>
						<para>If a screenshot is demonstrating a single feature or aspect of the application, crop it to exclude irrelevant detail.</para>
					</listitem>
					<listitem>
						<para>
							Screenshots often need to feature content, such as images, documents, web pages or videos. Don’t show your application in an ‘empty’
							state, and try and use high quality content which has positive associations and broad appeal.
						</para>
					</listitem>
					<listitem>
						<para>In general, you shouldn't include the mouse pointer in your screenshots.</para>
					</listitem>
				</itemizedlist>
				<para>
					Some advice for a good screenshot caption:
				</para>
				<itemizedlist>
					<listitem>
						<para>The caption should be short. Try not to use more than a few words to describe the image.</para>
					</listitem>
					<listitem>
						<para>Try not to state the obvious: "Main window displaying an image" is something the user can see on the screenshot already.</para>
					</listitem>
					<listitem>
						<para>Try not to repeat the application's name in the caption.</para>
					</listitem>
					<listitem>
						<para>Do not end your caption with a fullstop.</para>
					</listitem>
				</itemizedlist>

				<para>
					Some examples of good and bad screenshot choices:
				</para>

				<informaltable frame='none' colsep="0">
					<tgroup cols='2'>
						<colspec colwidth='0.5in'/>
						<colspec colwidth='0.5in'/>
						<tbody>
							<row>
								<entry>
									<mediaobject>
										<imageobject>
											<imagedata fileref="images/scr-examples/xterm-bad.png" />
										</imageobject>
										<caption>
											<para>
												<emphasis role="bold">BAD:</emphasis> Not on Linux
											</para>
										</caption>
									</mediaobject>
								</entry>

								<entry>
									<mediaobject>
										<imageobject>
											<imagedata fileref="images/scr-examples/geany-good.png" />
										</imageobject>
										<caption>
											<para><emphasis role="bold">GOOD</emphasis></para>
										</caption>
									</mediaobject>
								</entry>
							</row>
							<row>
								<entry>
									<mediaobject>
										<imageobject>
											<imagedata fileref="images/scr-examples/xmedcon-bad.png" />
										</imageobject>
										<caption>
											<para>
												<emphasis role="bold">BAD:</emphasis> Not 16:9, shows the whole desktop and too many small windows
											</para>
										</caption>
									</mediaobject>
								</entry>

								<entry>
									<mediaobject>
										<imageobject>
											<imagedata fileref="images/scr-examples/xonotic-good.png" />
										</imageobject>
										<caption>
											<para>
												<emphasis role="bold">GOOD:</emphasis> No window border required for fullscreen game
											</para>
										</caption>
									</mediaobject>
								</entry>
							</row>
							<row>
								<entry>
									<mediaobject>
										<imageobject>
											<imagedata fileref="images/scr-examples/gameconqueror-bad.png" />
										</imageobject>
										<caption>
											<para>
												<emphasis role="bold">BAD:</emphasis> Uses custom font, custom color theme and is not 16:9
											</para>
										</caption>
									</mediaobject>
								</entry>

								<entry>
									<mediaobject>
										<imageobject>
											<imagedata fileref="images/scr-examples/wireshark-good.png" />
										</imageobject>
										<caption>
											<para><emphasis role="bold">GOOD</emphasis></para>
										</caption>
									</mediaobject>
								</entry>
							</row>
						</tbody>
					</tgroup>
				</informaltable>

			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;url/&gt;</term>
			<listitem>
				<para>
					This is a recommended tag for links of type <code>homepage</code>.
					Links of type <code>homepage</code> should be a link to the upstream homepage for the application.
				</para>
				<para>
					For other possible values, tage a look at the tag's description at <xref linkend="tag-url"/>.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;project_group/&gt;</term>
			<listitem>
				<para>
					This tag is described for generic components at <xref linkend="tag-project_group"/>. You should use it for your application if appropriate.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;developer_name/&gt;</term>
			<listitem>
				<para>
					The <code>&lt;developer_name/&gt;</code> tag is designed to represent the developers or project responsible for development of the project described in the metadata.
				</para>
				<para>
					Values might be for example "The GNOME Foundation" or "The KDE Community".
					You must not include hyperlinks or emails in this field, if you want to link to the developer's homepage, use the <xref linkend="tag-url"/>-tag instead.
				</para>
				<para>
					This tag is translatable.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;update_contact/&gt;</term>
			<listitem>
				<para>
					The <code>&lt;update_contact/&gt;</code> tag is an optional tag which can be added to provide an email address distributors can use to contact the project
					about invalid or incomplete metadata, or in case the specification has changed, about old metadata. It can also be used to ask general questions in case of
					an update of the component described in the metadata file. Spam protection using <code>_AT_</code> is valid.
				</para>
				<para>
					Example:
				</para>
				<programlisting language="XML"><![CDATA[<update_contact>developer_AT_example.com</update_contact>]]></programlisting>
			</listitem>
			</varlistentry>

		</variablelist>
	</section>

	<section id="qsr-app-contents-suggestions">
		<title>Suggested metadata file contents</title>

		<para>
			You may choose to add these tags as well, if you need them.
		</para>

		<variablelist>
			<varlistentry>
			<term>&lt;provides/&gt;</term>
			<listitem>
				<para>
					This tag is described in detail for generic components at <xref linkend="tag-provides"/>.
				</para>
				<para>
					If your application ships a binary in a location in the default <envar>PATH</envar>, you should add at least a child of type
					<code>&lt;binary/&gt;</code> to make that new executable known to the distribution.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;releases/&gt;</term>
			<listitem>
				<para>
					The application metainfo should at least provide one <code>&lt;releases/&gt;</code> tag,
					which has one or more <code>&lt;release/&gt;</code> childs to define the version and release date of this
					application. For details, see <xref linkend="tag-releases"/> .
				</para>
				<para>
					Additionally, the <code>&lt;release/&gt;</code> might be described in a short manner using the <code>&lt;description/&gt;</code> child tag, which should give brief information about what is new
					in the release, in a way which is understandable by non-technical users.
				</para>
			</listitem>
			</varlistentry>
		</variablelist>

	</section>

</section>
<commit_msg>trivial: Application metadata should be installed in share/metainfo too<commit_after><?xml version='1.0' encoding='utf-8' ?>
<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "AppStream.ent">
%BOOK_ENTITIES;
]>

<section id="sect-Quickstart-DesktopApps">
	<title>For GUI application upstream maintainers</title>

	<section id="qsr-app-introduction">
		<title>Introduction</title>
		<para>
			Every software center that exists allows the user to look at screenshots and a long description of the application before it is installed.
			For most users it allows them to answer the question <quote>Do I want to install this application?</quote>.
			Traditionally in Linux distributions, we have none of this data for the vast majority of our desktop user-installable applications.
			The packages-descriptions are describing all contents of a package, and not just a single application. They are also often written in a technical
			language and refer to other packages, which makes it hard for beginners to understand what the application they want to install really does.
			Additionally, if you are not using Debian or Ubuntu, the package descriptions are often untranslated.
			Also, packages do not provide some metadata users might be interested in before installing an application.
		</para>
		<para>
			To solve this, we have defined a new data file, which the upstream project can optionally translate using the same technique as
			<ulink url="http://standards.freedesktop.org/desktop-entry-spec/latest/">Desktop files</ulink> or GSetting schemas.
			The AppData specification is a subset of the AppStream metadata (see <xref linkend="sect-AppStream-ASXML"/>) and extends
			the generic component metadata with fields specific for applications (see <xref linkend="sect-Metadata-GenericComponent"/>).
		</para>
		<para>
			The AppData files override any values which are automatically fetched by the AppStream data generator.
			Applications can ship one or more files in <filename>/usr/share/metainfo/%{id}.appdata.xml</filename>.
		</para>
		<para>
			AppData files can - just like all other metainfo files - be translated. See the section about translation for more information about that.
		</para>
		<note>
			<para>
				All tags defined in the generic component specification are valid in AppData as well, an application is just
				defined as a specialized component, which has the additional benefit of being displayed in a software-center application.
			</para>
		</note>
	</section>

	<section id="qsr-app-example">
		<title>Example file</title>
		<para>
			The file should contain something like this:
		</para>
		<programlisting language="XML">
<![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2013 <NAME> <<EMAIL>> -->
<component type="desktop">
  <id>gnome-power-statistics.desktop</id>
  <metadata_license>CC0</metadata_license>
  <project_license>GPL-2.0+</project_license>
  <name>Power Statistics</name>
  <summary>Observe power management</summary>

  <description>
    <p>
      Power Statistics is a program used to view historical and current battery
      information and will show programs running on your computer using power.
    </p>
    <p>Example list:</p>
    <ul>
      <li>First item</li>
      <li>Second item</li>
    </ul>
    <p>
      You probably only need to install this application if you are having problems
      with your laptop battery, or are trying to work out what programs are using
      significant amounts of power.
    </p>
  </description>

  <screenshots>
    <screenshot type="default">
      <caption>The options dialog</caption>
      <image width="800" height="600">http://www.hughsie.com/en_US/main.png</image>
    </screenshot>
    <screenshot>
      <image width="800" height="600">http://www.hughsie.com/en_US/preferences.png</image>
    </screenshot>
  </screenshots>

  <url type="homepage">http://www.gnome.org/projects/en_US/gnome-power-manager</url>
  <project_group>GNOME</project_group>

  <provides>
    <binary>gnome-power-statistics</binary>
  </provides>

  <releases>
    <release version="3.12.2" date="2013-04-12">
      <description>
        <p>Fixes issues X, Y and Z</p>
      </description>
    </release>
  </releases>
</component>]]>
		</programlisting>
	</section>

	<section id="qsr-app-contents">
		<title>Recommended metadata file contents</title>

		<para>
			This is a list of tags you might want to define for your application. For a full list of all possible tags, take a look at
			the definition of a generic component (<xref linkend="spec-component-filespec"/>) and an application-component (<xref linkend="spec-appdata-filespec"/>).
		</para>

		<variablelist>
			<varlistentry>
			<term>&lt;id/&gt;</term>
			<listitem>
				<para>
					For applications, the <literal>&lt;id/&gt;</literal> tag value must be the same name as the installed .desktop file for the application.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;metadata_license/&gt;</term>
			<listitem>
				<para>
					The <code>&lt;metadata_license/&gt;</code> tag is indicating the content license that you are releasing the one
					metadata file as. This is not typically the same as the project license. By ommitting the license value would
					probably mean your data would not be incorporated into the distribution metadata.
					Permissible license codes include:
				</para>
				<itemizedlist>
					<listitem>
						<para>CC0-1.0</para>
					</listitem>
					<listitem>
						<para>CC-BY-3.0</para>
					</listitem>
					<listitem>
						<para>CC-BY-SA-3.0</para>
					</listitem>
					<listitem>
						<para>GFDL-1.3</para>
					</listitem>
					<listitem>
						<para>MIT</para>
					</listitem>
				</itemizedlist>
				<para>
					The license codes correspond to the identifiers found at the <ulink url="http://spdx.org/licenses/">SPDX OpenSource License Registry</ulink>.
					Take a look at <xref linkend="tag-metadata_license"/> for more details about this tag.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;project_license/&gt;</term>
			<listitem>
				<para>
					The <literal>&lt;project_license/&gt;</literal> tag is indicating the license(s) this application is released under.
					Take a look at the specification of the <xref linkend="tag-project_license"/> tag for details on how to properly use it.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;name/&gt;</term>
			<listitem>
				<para>
					While this tag is requited for a generic component, for an application metainfo file it is not necessary, but only recommended.
					You can omit this tag if you want the software center to have the same strings as defined in the XDG desktop file.
					In some cases it might be required to have a different name in the app-store, but most <filename>appdata.xml</filename> files will not need this.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;summary/&gt;</term>
			<listitem>
				<para>
					While this tag is requited for a generic component, for an application metainfo file it is not necessary, but only recommended.
					You can omit this tag if you want the software center to have the same strings as defined in the XDG desktop file.
					In some cases it might be required to have a different name in the app-store, but most <filename>appdata.xml</filename> files will not need this.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;description/&gt;</term>
			<listitem>
				<para>
					The long description is an important part of the file. Important things to consider when writing the application description:
				</para>
				<itemizedlist>
					<listitem>
						<para>Include 2-3 paragraphs of interesting easy to read prose.</para>
					</listitem>
					<listitem>
						<para>Ensure you provide a description of what the application actually does.</para>
					</listitem>
					<listitem>
						<para>Describe any important features.</para>
					</listitem>
					<listitem>
						<para>Do not use possily trademarked product names when refering to competitors.</para>
					</listitem>
					<listitem>
						<para>Break down each paragraph into easily translated paragraphs.</para>
					</listitem>
					<listitem>
						<para>Use lists sparingly.</para>
					</listitem>
					<listitem>
						<para>Never refer to installable items as packages.</para>
					</listitem>
					<listitem>
						<para>Never start the first sentence with "This application..."</para>
					</listitem>
					<listitem>
						<para>Try not use more than 100 words.</para>
					</listitem>
					<listitem>
						<para>Do not be too geeky. Aim for an intelligent semi-technical reader.</para>
					</listitem>
					<listitem>
						<para>Don't mention what language an application is written in, users don't care</para>
					</listitem>
					<listitem>
						<para>Only mention what the application can do now, rather than what is planned</para>
					</listitem>
				</itemizedlist>
				<para>
					Do not assume the format is HTML. Only paragraph, ordered list and unordered list are supported at this time.
				</para>
				<para>
					In metainfo files, this tag should be translated by-paragraph, meaning that in a translated file, each translated <literal>&lt;p/&gt;</literal> child
					has a language property.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry id="qsr-app-screenshots-info">
			<term>&lt;screenshots/&gt;</term>
			<listitem>
				<para>
					A screenshot presents your application to the outside world, and could be seen by hundreds or thousands of people.
				</para>
				<para>
					The <code>&lt;screenshots/&gt;</code> tag contains multiple <code>&lt;screenshot/&gt;</code> children, where at least one of them must have the property
					<code>type="default"</code> to indicate the application's primary screenshot. Every <code>&lt;screenshot/&gt;</code> tag must have at least
					one <code>&lt;image/&gt;</code> child, which should define the width and height of the referenced image in it's properties.
					The value of the <code>&lt;image/&gt;</code> tag is a direct URL to a screenshot uploaded to a public location on the web.
				</para>
				<para>
					Optionally, a <code>&lt;screenshot/&gt;</code> tag may have a <code>&lt;caption/&gt;</code> child, defining a short (not more than 180 characters!)
					description of what the user can see on the referenced screenshot.
				</para>
				<para>
					Screenshots are an important part of how people choose which applications to install, so it's important to get them right.
					Consistent, good looking screenshots will make your application look more attractive and will expand your userbase.
					Consistent screenshots also provide a more predictable experience for people using the software center.
				</para>
				<para>
					Screenshot size, shape and format:
				</para>
				<itemizedlist>
					<listitem>
						<para>
							All screenshots should have a 16:9 aspect ratio, and should have a width that is no smaller than 620px (software center applications will be able to fill in the screenshots in the space they provide for that
							more easily then).
						</para>
						<para>
							Ideally the window will be resized to a 16:9 aspect ratio, but screenshots can also be cropped if only a small area of the window needs to be shown.
						</para>
					</listitem>
					<listitem>
						<para>
							Screenshots should be in PNG or JPEG format. PNG is the preferred format; JPEG should only be used when screenshots include large photographs or other images where a lossy format like
							JPEG may compress better.
						</para>
					</listitem>
					<listitem>
						<para>Do not scale screenshots below their original size.</para>
					</listitem>
				</itemizedlist>
				<para>
					Basic guidelines for things to include (and not include) in your screenshots:
				</para>
				<itemizedlist>
					<listitem>
						<para>
							Use the default visual and theme settings, including the default font, icons, and window controls. Avoid including your own tweaks to the standard distribution offering.
						</para>
					</listitem>
					<listitem>
						<para>Screenshots should be taken with English as the display language.</para>
					</listitem>
					<listitem>
						<para>
							Your default screenshot should give an overview of your application, and should show an entire application window.
							It can be combined with screenshots which show specific aspects of the application.
						</para>
					</listitem>
					<listitem>
						<para>
							Screenshots should not show anything outside the application's windows (including the background wallpaper).
							If you are taking a screenshot of the whole window, use your screenshot tool's "window" mode (including any window borders in the screenshot, and ensuring that the resulting image has an
							alpha mask for the rounded corners).
						</para>
					</listitem>
					<listitem>
						<para>
							Some applications, such as games, primarily run full screen. Screenshots of these applications should be taken with the application
							running full screen - there should be no visible window controls in the screenshot.
						</para>
					</listitem>
					<listitem>
						<para>Don't add shadows to your screenshots.</para>
					</listitem>
					<listitem>
						<para>
							Do not include content that might be considered offensive or controversial, and avoid showing personal information. Remember that your screenshots will be visible to the internet at large.
						</para>
					</listitem>
				</itemizedlist>
				<para>
					Additional advice on how to take effective screenshots:
				</para>
				<itemizedlist>
					<listitem>
						<para>
							Each of your screenshots should focus on one thing and one thing only. Screenshot one window at a time, and avoid having
							overlapping windows or user interface elements.
							This will make it much easier for people to understand what you are showing them.
						</para>
					</listitem>
					<listitem>
						<para>If a screenshot is demonstrating a single feature or aspect of the application, crop it to exclude irrelevant detail.</para>
					</listitem>
					<listitem>
						<para>
							Screenshots often need to feature content, such as images, documents, web pages or videos. Don’t show your application in an ‘empty’
							state, and try and use high quality content which has positive associations and broad appeal.
						</para>
					</listitem>
					<listitem>
						<para>In general, you shouldn't include the mouse pointer in your screenshots.</para>
					</listitem>
				</itemizedlist>
				<para>
					Some advice for a good screenshot caption:
				</para>
				<itemizedlist>
					<listitem>
						<para>The caption should be short. Try not to use more than a few words to describe the image.</para>
					</listitem>
					<listitem>
						<para>Try not to state the obvious: "Main window displaying an image" is something the user can see on the screenshot already.</para>
					</listitem>
					<listitem>
						<para>Try not to repeat the application's name in the caption.</para>
					</listitem>
					<listitem>
						<para>Do not end your caption with a fullstop.</para>
					</listitem>
				</itemizedlist>

				<para>
					Some examples of good and bad screenshot choices:
				</para>

				<informaltable frame='none' colsep="0">
					<tgroup cols='2'>
						<colspec colwidth='0.5in'/>
						<colspec colwidth='0.5in'/>
						<tbody>
							<row>
								<entry>
									<mediaobject>
										<imageobject>
											<imagedata fileref="images/scr-examples/xterm-bad.png" />
										</imageobject>
										<caption>
											<para>
												<emphasis role="bold">BAD:</emphasis> Not on Linux
											</para>
										</caption>
									</mediaobject>
								</entry>

								<entry>
									<mediaobject>
										<imageobject>
											<imagedata fileref="images/scr-examples/geany-good.png" />
										</imageobject>
										<caption>
											<para><emphasis role="bold">GOOD</emphasis></para>
										</caption>
									</mediaobject>
								</entry>
							</row>
							<row>
								<entry>
									<mediaobject>
										<imageobject>
											<imagedata fileref="images/scr-examples/xmedcon-bad.png" />
										</imageobject>
										<caption>
											<para>
												<emphasis role="bold">BAD:</emphasis> Not 16:9, shows the whole desktop and too many small windows
											</para>
										</caption>
									</mediaobject>
								</entry>

								<entry>
									<mediaobject>
										<imageobject>
											<imagedata fileref="images/scr-examples/xonotic-good.png" />
										</imageobject>
										<caption>
											<para>
												<emphasis role="bold">GOOD:</emphasis> No window border required for fullscreen game
											</para>
										</caption>
									</mediaobject>
								</entry>
							</row>
							<row>
								<entry>
									<mediaobject>
										<imageobject>
											<imagedata fileref="images/scr-examples/gameconqueror-bad.png" />
										</imageobject>
										<caption>
											<para>
												<emphasis role="bold">BAD:</emphasis> Uses custom font, custom color theme and is not 16:9
											</para>
										</caption>
									</mediaobject>
								</entry>

								<entry>
									<mediaobject>
										<imageobject>
											<imagedata fileref="images/scr-examples/wireshark-good.png" />
										</imageobject>
										<caption>
											<para><emphasis role="bold">GOOD</emphasis></para>
										</caption>
									</mediaobject>
								</entry>
							</row>
						</tbody>
					</tgroup>
				</informaltable>

			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;url/&gt;</term>
			<listitem>
				<para>
					This is a recommended tag for links of type <code>homepage</code>.
					Links of type <code>homepage</code> should be a link to the upstream homepage for the application.
				</para>
				<para>
					For other possible values, tage a look at the tag's description at <xref linkend="tag-url"/>.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;project_group/&gt;</term>
			<listitem>
				<para>
					This tag is described for generic components at <xref linkend="tag-project_group"/>. You should use it for your application if appropriate.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;developer_name/&gt;</term>
			<listitem>
				<para>
					The <code>&lt;developer_name/&gt;</code> tag is designed to represent the developers or project responsible for development of the project described in the metadata.
				</para>
				<para>
					Values might be for example "The GNOME Foundation" or "The KDE Community".
					You must not include hyperlinks or emails in this field, if you want to link to the developer's homepage, use the <xref linkend="tag-url"/>-tag instead.
				</para>
				<para>
					This tag is translatable.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;update_contact/&gt;</term>
			<listitem>
				<para>
					The <code>&lt;update_contact/&gt;</code> tag is an optional tag which can be added to provide an email address distributors can use to contact the project
					about invalid or incomplete metadata, or in case the specification has changed, about old metadata. It can also be used to ask general questions in case of
					an update of the component described in the metadata file. Spam protection using <code>_AT_</code> is valid.
				</para>
				<para>
					Example:
				</para>
				<programlisting language="XML"><![CDATA[<update_contact>developer_AT_example.com</update_contact>]]></programlisting>
			</listitem>
			</varlistentry>

		</variablelist>
	</section>

	<section id="qsr-app-contents-suggestions">
		<title>Suggested metadata file contents</title>

		<para>
			You may choose to add these tags as well, if you need them.
		</para>

		<variablelist>
			<varlistentry>
			<term>&lt;provides/&gt;</term>
			<listitem>
				<para>
					This tag is described in detail for generic components at <xref linkend="tag-provides"/>.
				</para>
				<para>
					If your application ships a binary in a location in the default <envar>PATH</envar>, you should add at least a child of type
					<code>&lt;binary/&gt;</code> to make that new executable known to the distribution.
				</para>
			</listitem>
			</varlistentry>

			<varlistentry>
			<term>&lt;releases/&gt;</term>
			<listitem>
				<para>
					The application metainfo should at least provide one <code>&lt;releases/&gt;</code> tag,
					which has one or more <code>&lt;release/&gt;</code> childs to define the version and release date of this
					application. For details, see <xref linkend="tag-releases"/> .
				</para>
				<para>
					Additionally, the <code>&lt;release/&gt;</code> might be described in a short manner using the <code>&lt;description/&gt;</code> child tag, which should give brief information about what is new
					in the release, in a way which is understandable by non-technical users.
				</para>
			</listitem>
			</varlistentry>
		</variablelist>

	</section>

</section>

{'fraction_non_alphanumeric': 0.1020059452753786, 'fraction_numerical': 0.0036982421646419962, 'mean_word_length': 2.8917835671342687, 'pattern_counts': {'":': 0, '<': 1133, '<?xml version=': 4, '>': 1133, 'https://': 0, 'lorem ipsum': 0, 'www.': 8, 'xml': 12}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4115186', 'n_tokens_mistral': 16312, 'n_tokens_neox': 11974, 'n_words': 4562}