cvs: peardoc / manual.xml /en language-defs.ent /en/guide/developers/package2 pecl.xml /en/guide/users concepts.xml /en/guide/users/concepts abstractpackage.xml api.xml channel.xml package.xml stability.xml version.xml /en/pyrus configuration.xml /en/pyrus/commands build.xml channeladd.xml channeldel.xml channeldiscover.xml configshow.xml download.xml help.xml info.xml install.xml listchannels.xml listpackages.xml listupgrades.xml make.xml mypear.xml package.xml remotelist.xml runscripts.xml set.xml uninstall.xml upgrade.xml upgraderegistry.xml /en/pyrus/configuration system.xml user.xml
[email protected] ("Greg Beaver")
| Newsgroups | php.pear.doc |
|---|---|
| Message-ID | <cvscellog1246079886@cvsserver> |
cellog Sat Jun 27 05:18:06 2009 UTC
Added files:
/peardoc/en/guide/users concepts.xml
/peardoc/en/guide/users/concepts abstractpackage.xml api.xml
channel.xml package.xml
stability.xml version.xml
/peardoc/en/pyrus configuration.xml
/peardoc/en/pyrus/configuration system.xml user.xml
Modified files:
/peardoc manual.xml
/peardoc/en language-defs.ent
/peardoc/en/guide/developers/package2 pecl.xml
/peardoc/en/pyrus/commands build.xml channeladd.xml channeldel.xml
channeldiscover.xml configshow.xml
download.xml help.xml info.xml
install.xml listchannels.xml
listpackages.xml listupgrades.xml
make.xml mypear.xml package.xml
remotelist.xml runscripts.xml set.xml
uninstall.xml upgrade.xml
upgraderegistry.xml
Log:
continue major doc updates to Pyrus and others
cellog-20090627051806.txt
(text/plain, 66.5 KB)
http://cvs.php.net/viewvc.cgi/peardoc/manual.xml?r1=1.8&r2=1.9&diff_format=u
Index: peardoc/manual.xml
diff -u peardoc/manual.xml:1.8 peardoc/manual.xml:1.9
--- peardoc/manual.xml:1.8 Fri Jun 26 05:22:00 2009
+++ peardoc/manual.xml Sat Jun 27 05:18:05 2009
@@ -62,6 +62,7 @@
<book xml:id="users">
<title>&UsersGuide;</title>
+ &guide.users.concepts;
&guide.users.installationpyrus;
&guide.users.installation;
&guide.users.commandline;
@@ -72,6 +73,7 @@
&pyrus.about;
&pyrus.commands;
+ &pyrus.configuration;
&pyrus.differences;
&pyrus.plugins;
&pyrus.developers;
http://cvs.php.net/viewvc.cgi/peardoc/en/language-defs.ent?r1=1.12&r2=1.13&diff_format=u
Index: peardoc/en/language-defs.ent
diff -u peardoc/en/language-defs.ent:1.12 peardoc/en/language-defs.ent:1.13
--- peardoc/en/language-defs.ent:1.12 Fri Jun 26 05:22:00 2009
+++ peardoc/en/language-defs.ent Sat Jun 27 05:18:05 2009
@@ -1,4 +1,4 @@
-<!-- $Revision: 1.12 $ -->
+<!-- $Revision: 1.13 $ -->
<!ENTITY PEARManual "PEAR Manual">
<!ENTITY Translatedby "Translated by">
@@ -10,7 +10,7 @@
<!ENTITY Channels "Channels: distributing your packages">
<!ENTITY UsersGuide "User Guide">
<!ENTITY NewMaintainersGuide "Becoming a PEAR developer: how to get involved">
-<!ENTITY ChangesInPear14 "PEAR Installer: package.xml and customizing packages">
+<!ENTITY ChangesInPear14 "PEAR Installer: customizing packages">
<!ENTITY Features "Features">
<!ENTITY PEAR "PEAR: the PHP Extension and Application Repository">
<!ENTITY PEAR2Packages "PEAR2 Packages">
http://cvs.php.net/viewvc.cgi/peardoc/en/guide/developers/package2/pecl.xml?r1=1.3&r2=1.4&diff_format=u
Index: peardoc/en/guide/developers/package2/pecl.xml
diff -u peardoc/en/guide/developers/package2/pecl.xml:1.3 peardoc/en/guide/developers/package2/pecl.xml:1.4
--- peardoc/en/guide/developers/package2/pecl.xml:1.3 Thu Oct 9 15:16:18 2008
+++ peardoc/en/guide/developers/package2/pecl.xml Sat Jun 27 05:18:06 2009
@@ -69,6 +69,28 @@
</programlisting>
</entry>
</row>
+ <row>
+ <entry>
+ <configureoption>
+ </entry>
+ <entry>
+ The <configureoption> tag is used to ask a user a specific
+ question, which is then used to influence the building of the extension.
+ Any configure option beginning with <quote>with</quote> is assumed
+ to be a question about enabling a feature. Other options have the user's
+ response automatically passed to <command>configure</command>. The
+ following configureoptions:
+ <programlisting role="xml">
+ <![CDATA[
+<configureoption name="with-blah" prompt="enable blah?" default="yes"/>
+<configureoption name="foo" prompt="what foo to use?" default="bar"/>
+ ]]>
+ </programlisting>
+ will generate a configure line similar to:
+ <screen>--with-blah --foo=bar</screen> if the user accepts the default
+ values.
+ </entry>
+ </row>
</tbody>
</tgroup>
</table>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/build.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/build.xml
diff -u peardoc/en/pyrus/commands/build.xml:1.1 peardoc/en/pyrus/commands/build.xml:1.2
--- peardoc/en/pyrus/commands/build.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/build.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,25 @@
<section xml:id="pyrus.commands.build.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ This command builds an installed PECL extension. It accepts as its
+ arguments a list of installed php extension packages to build.
+ It performs an automatic version of:
+ </para>
+ <para>
+ <screen>
+phpize --clean
+phpize
+./configure
+make
+make install
+ </screen>
+ </para>
+ <para>
+ In the source directory of the package. It also will prompt the user
+ if any <literal><configureoption></literal> tags exist in package.xml
+ (see the documentation for <literal><configureoption></literal>
+ <link linkend="guide.developers.package2.pecl">here</link>)
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/channeladd.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/channeladd.xml
diff -u peardoc/en/pyrus/commands/channeladd.xml:1.1 peardoc/en/pyrus/commands/channeladd.xml:1.2
--- peardoc/en/pyrus/commands/channeladd.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/channeladd.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,10 @@
<section xml:id="pyrus.commands.channeladd.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ Add a channel to the registry by its local <literal>channel.xml</literal> file.
+ Use <link linkend="pyrus.commands.channeldiscover">channel-discover</link> to
+ add a channel by its name.
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/channeldel.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/channeldel.xml
diff -u peardoc/en/pyrus/commands/channeldel.xml:1.1 peardoc/en/pyrus/commands/channeldel.xml:1.2
--- peardoc/en/pyrus/commands/channeldel.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/channeldel.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,19 @@
<section xml:id="pyrus.commands.channeldel.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ Remote a channel from the registry. Note that the default channels cannot
+ be removed from the registry.
+ </para>
+ <para>
+ Default channels in Pyrus:
+ <itemizedlist>
+ <listitem><simpara><literal>__uri</literal></simpara></listitem>
+ <listitem><simpara><literal>pear.php.net</literal></simpara></listitem>
+ <listitem><simpara><literal>pear2.php.net</literal></simpara></listitem>
+ <listitem><simpara><literal>pecl.php.net</literal></simpara></listitem>
+ <listitem><simpara><literal>doc.php.net</literal></simpara></listitem>
+ </itemizedlist>
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/channeldiscover.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/channeldiscover.xml
diff -u peardoc/en/pyrus/commands/channeldiscover.xml:1.1 peardoc/en/pyrus/commands/channeldiscover.xml:1.2
--- peardoc/en/pyrus/commands/channeldiscover.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/channeldiscover.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,20 @@
<section xml:id="pyrus.commands.channeldiscover.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ This command searches for a channel.xml first at a secure <literal>https</literal>
+ and then unsecured <literal>http</literal> address.
+ </para>
+ <para>
+ Examples:
+ <screen>php pyrus.phar channel-discover pear.example.com</screen>
+ This tries to locate <literal>https://pear.example.com/channel.xml</literal>
+ and if that fails, <literal>http://pear.example.com/channel.xml</literal>,
+ then adds the channel to the registry.
+ </para>
+ <para>
+ Use <link linkend="pyrus.commands.channeladd">channel-add</link> to add a
+ local channel.xml to the registry.
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/configshow.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/configshow.xml
diff -u peardoc/en/pyrus/commands/configshow.xml:1.1 peardoc/en/pyrus/commands/configshow.xml:1.2
--- peardoc/en/pyrus/commands/configshow.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/configshow.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,11 @@
<section xml:id="pyrus.commands.configshow.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ The <literal>config-show</literal> command lists all system and user
+ configuration variables. Documentation on currently supported
+ configuration variables and how Pyrus organizes configuration can be found
+ <link linkend="pyrus.configuration">here</link>.
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/download.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/download.xml
diff -u peardoc/en/pyrus/commands/download.xml:1.1 peardoc/en/pyrus/commands/download.xml:1.2
--- peardoc/en/pyrus/commands/download.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/download.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,11 @@
<section xml:id="pyrus.commands.download.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ This command downloads a remote package to the current directory. It
+ will accept any package name,
+ <link linkend="guide.users.concepts.abstractpackage">abstract</link> or
+ concrete, and save the resulting file in the current directory.
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/help.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/help.xml
diff -u peardoc/en/pyrus/commands/help.xml:1.1 peardoc/en/pyrus/commands/help.xml:1.2
--- peardoc/en/pyrus/commands/help.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/help.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,13 @@
<section xml:id="pyrus.commands.help.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ The <literal>help</literal> command simply lists all available commands. If
+ a command name is passed as an argument, help will provide detailed help
+ on that command.
+ </para>
+ <para>
+ <screen>php pyrus.phar help download</screen>
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/info.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/info.xml
diff -u peardoc/en/pyrus/commands/info.xml:1.1 peardoc/en/pyrus/commands/info.xml:1.2
--- peardoc/en/pyrus/commands/info.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/info.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,34 @@
<section xml:id="pyrus.commands.info.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ This command is used to display a list of information on a package,
+ such as the maintainers, the stability and version or versions available
+ for installation (for remote packages).
+ </para>
+ <para>
+ If passed <literal>description</literal> or <literal>notes</literal>,
+ it displays the complete text of these fields. If passed <literal>files</literal>,
+ it lists the files in the package and their on-disk location for installed
+ packages. For example:
+ </para>
+ <para>
+ <screen>php pyrus.phar info PackageName description</screen>
+ </para>
+ <para>
+ The command will accept any concrete or
+ <link linkend="guide.users.concepts.abstractpackage">abstract</link> package
+ names as its argument. Note that if there is an ambiguity between an installed
+ package and the remote package, Pyrus will assume that information is being
+ requested on the installed package.
+ </para>
+ </section>
+ <section xml:id="pyrus.commands.info.forceremote">
+ <title>--forceremote</title>
+ <para>
+ The <literal>--forceremote</literal> or <literal>-r</literal> option is used
+ to instruct Pyrus to resolve any ambiguity between an installed package and
+ a remote package to assume that information is requested on the remote package.
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/install.xml?r1=1.2&r2=1.3&diff_format=u
Index: peardoc/en/pyrus/commands/install.xml
diff -u peardoc/en/pyrus/commands/install.xml:1.2 peardoc/en/pyrus/commands/install.xml:1.3
--- peardoc/en/pyrus/commands/install.xml:1.2 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/install.xml Sat Jun 27 05:18:06 2009
@@ -5,7 +5,8 @@
<section xml:id="pyrus.commands.install.intro">
<info><title>Introduction</title></info>
<para>
- The install command is used to install packages. Unlike
+ The install command is used to install packages and accepts a list of package
+ names to install as arguments. Unlike
<link linkend="pyrus.commands.upgrade">upgrade</link>, the install command will
only install new packages.
</para>
@@ -48,84 +49,8 @@
</table>
</para>
<para>
- The first three ways of specifying a package are concrete: the package name
- always refers to one and only one package. Abstract packages are more
- flexible, and there are several ways of requesting a package
- <table>
- <title>Ways of specifying an abstract package for installation</title>
- <tgroup cols="2">
- <thead>
- <row>
- <entry>Example</entry>
- <entry>Description</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><literal>PackageName-1.2.3</literal></entry>
- <entry>
- This forces Pyrus to download version <literal>1.2.3</literal> of
- package <literal>PackageName</literal>, but will will attempt to download
- a release in one of the following file formats, in this order:
- <orderedlist>
- <listitem><simpara>phar</simpara></listitem>
- <listitem><simpara>tgz (only if zlib extension is enabled)</simpara></listitem>
- <listitem><simpara>tar</simpara></listitem>
- <listitem><simpara>zip</simpara></listitem>
- </orderedlist>
- </entry>
- </row>
- <row>
- <entry><literal>PackageName-alpha</literal></entry>
- <entry>
- This causes Pyrus to download the latest version of
- package <literal>PackageName</literal> that is <literal>alpha</literal>
- stability or better (the hierarchy of stabilities is <literal>devel</literal>,
- <literal>alpha</literal>, <literal>beta</literal>, <literal>stable</literal>).
- After finding a matching version, it will attempt to download a release
- in one of the following file formats, in this order:
- <orderedlist>
- <listitem><simpara>phar</simpara></listitem>
- <listitem><simpara>tgz (only if zlib extension is enabled)</simpara></listitem>
- <listitem><simpara>tar</simpara></listitem>
- <listitem><simpara>zip</simpara></listitem>
- </orderedlist>
- </entry>
- </row>
- <row>
- <entry><literal>PackageName</literal></entry>
- <entry>
- This causes Pyrus to download the latest version of
- package <literal>PackageName</literal> that is <literal>preferred_state</literal>
- (configuration variable)
- stability or better (the hierarchy of stabilities is <literal>devel</literal>,
- <literal>alpha</literal>, <literal>beta</literal>, <literal>stable</literal>).
- After finding a matching version, it will attempt to download a release
- in one of the following file formats, in this order:
- <orderedlist>
- <listitem><simpara>phar</simpara></listitem>
- <listitem><simpara>tgz (only if zlib extension is enabled)</simpara></listitem>
- <listitem><simpara>tar</simpara></listitem>
- <listitem><simpara>zip</simpara></listitem>
- </orderedlist>
- The <literal>preferred_state</literal> configuration variable can be seen
- with the <link linkend="pyrus.commands.configshow">config-show</link>
- command.
- </entry>
- </row>
- <row>
- <entry><literal>PackageName#groupname</literal></entry>
- <entry>
- This causes Pyrus to download and install a release of Pyrus as specified
- above, and it also causes Pyrus to download and install the contents
- of the <literal>groupname</literal> dependency group (dependency groups
- are documented <link linkend="guide.developers.package2.dependencies.groups">here</link>).
- </entry>
- </row>
- </tbody>
- </tgroup>
- </table>
+ Abstract Packages are documented
+ <link linkend="guide.users.concepts.abstractpackage">here</link>.
</para>
</section>
<section xml:id="pyrus.commands.install.optionaldeps">
@@ -182,4 +107,14 @@
<screen>php pyrus.phar install -r /home/myuser/package PackageName</screen>
</para>
</section>
+ <section xml:id="pyrus.commands.install.force">
+ <title>--force</title>
+ <para>
+ The <literal>--force</literal> or <literal>-f</literal> option can be used
+ to force installation if there are errors. For instance, this can be used
+ to override problems in dependency validation, or to force installation of a
+ package that is not stable enough. As such, it should be used sparingly if
+ at all. Better is to request a specific version for installation.
+ </para>
+ </section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/listchannels.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/listchannels.xml
diff -u peardoc/en/pyrus/commands/listchannels.xml:1.1 peardoc/en/pyrus/commands/listchannels.xml:1.2
--- peardoc/en/pyrus/commands/listchannels.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/listchannels.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,8 @@
<section xml:id="pyrus.commands.listchannels.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ List all known channels alphabetically.
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/listpackages.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/listpackages.xml
diff -u peardoc/en/pyrus/commands/listpackages.xml:1.1 peardoc/en/pyrus/commands/listpackages.xml:1.2
--- peardoc/en/pyrus/commands/listpackages.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/listpackages.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,9 @@
<section xml:id="pyrus.commands.listpackages.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ This command lists all installed packages in all channels, organized
+ by the installation location.
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/listupgrades.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/listupgrades.xml
diff -u peardoc/en/pyrus/commands/listupgrades.xml:1.1 peardoc/en/pyrus/commands/listupgrades.xml:1.2
--- peardoc/en/pyrus/commands/listupgrades.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/listupgrades.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,30 @@
<section xml:id="pyrus.commands.listupgrades.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ This command lists all packages that have upgrades available within the
+ current <literal>preferred_state</literal> or the installed package's stability,
+ whichever is less stable. This command does not list releases that are
+ incompatible with the current PHP version.
+ </para>
+ <para>
+ If package <literal>X</literal> is installed with version <literal>0.3.0</literal>,
+ stability <literal>alpha</literal>, and <literal>preferred_state</literal>
+ is <literal>stable</literal>, Pyrus will list the newest version available
+ that satisfies stability of <literal>alpha</literal>, <literal>beta</literal>
+ or <literal>stable</literal>. If package <literal>Y</literal> is also
+ installed, with version <literal>1.2.3</literal>, stability <literal>stable</literal>,
+ only the latest stable release will be listed. In both cases, if the latest
+ available version that satisfies these requirements is not found, none will
+ be listed.
+ </para>
+ <para>
+ Another example: If package <literal>X</literal> is installed with version
+ <literal>1.0.0</literal>, stability <literal>stable</literal>, and the
+ <literal>preferred_state</literal> is <literal>alpha</literal>, Pyrus
+ will list the newest version available
+ that satisfies stability of <literal>alpha</literal>, <literal>beta</literal>
+ or <literal>stable</literal>.
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/make.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/make.xml
diff -u peardoc/en/pyrus/commands/make.xml:1.1 peardoc/en/pyrus/commands/make.xml:1.2
--- peardoc/en/pyrus/commands/make.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/make.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,178 @@
<section xml:id="pyrus.commands.make.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <note>
+ <simpara>
+ The <literal>make</literal> command is available through the developer tools.
+ If you do not have the developer tools installed, simply run
+ </simpara>
+ <screen>php pyrus.phar make</screen>
+ <simpara>
+ and Pyrus will ask if you would like to install the developer tools. If you
+ assent with the word <literal>yes</literal>, Pyrus will automatically
+ download them and install them for you.
+ </simpara>
+ </note>
+ <para>
+ This command creates a package.xml file from a standard PEAR2 directory layout,
+ and then optionally creates a package release.
+ </para>
+ <para>
+ This command looks for these standard files:
+ <itemizedlist>
+ <listitem><simpara><literal>CREDITS</literal></simpara></listitem>
+ <listitem><simpara><literal>README</literal></simpara></listitem>
+ <listitem><simpara><literal>RELEASE-X.Y.Z</literal> (where X.Y.Z is the release version)</simpara></listitem>
+ </itemizedlist>
+
+ and for a standard directory layout of
+
+ <table>
+ <title>Standard directory layout</title>
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Sub-directory</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><literal>src/</literal></entry>
+ <entry>PHP files</entry>
+ </row>
+ <row>
+ <entry><literal>data/</literal></entry>
+ <entry>Data files</entry>
+ </row>
+ <row>
+ <entry><literal>test/</literal></entry>
+ <entry>Test files</entry>
+ </row>
+ <row>
+ <entry><literal>doc/</literal></entry>
+ <entry>Documentation files</entry>
+ </row>
+ <row>
+ <entry><literal>examples/</literal></entry>
+ <entry>Example files (documentation)</entry>
+ </row>
+ <row>
+ <entry><literal>scripts/</literal></entry>
+ <entry>Executable files, scripts</entry>
+ </row>
+ <row>
+ <entry><literal>www/</literal></entry>
+ <entry>Web files</entry>
+ </row>
+ <row>
+ <entry><literal>customrole/</literal></entry>
+ <entry>Custom installer role XML definition files</entry>
+ </row>
+ <row>
+ <entry><literal>customtask/</literal></entry>
+ <entry>Custom installer task XML definition files</entry>
+ </row>
+ <row>
+ <entry><literal>customcommand/</literal></entry>
+ <entry>Custom command XML definition files</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </para>
+ <para>
+ The <literal>CREDITS</literal> file must have this format:
+
+ <programlisting role="txt">
+ <![CDATA[
+;; comments ignored
+Maintainer One [handle1] <[email protected]> (role)
+Maintainer Two [handle2] <[email protected]> (role)
+ ]]>
+ </programlisting>
+
+ Where role is one of <literal>lead</literal>, <literal>developer</literal>,
+ <literal>contributor</literal>, or <literal>helper</literal>.
+ </para>
+ <para>
+ The first line of <literal>README</literal> is used as the summary of the
+ package, the rest is used as the description.
+ <literal>RELEASE-X.Y.Z</literal> is used as the release notes. Pyrus will
+ scan all release notes (such as <literal>RELEASE-1.0.0</literal> and
+ <literal>RELEASE-1.2.3</literal>) and use the most recent version number
+ (<literal>1.2.3</literal> in our example) as the version, and the contents
+ of the file (<literal>RELEASE-1.2.3</literal> in our example) as the release
+ notes.
+ </para>
+ </section>
+ <section xml:id="pyrus.commands.make.packagexmlsetup">
+ <title>--packagexmlsetup</title>
+ <para>
+ if <literal>--packagexmlsetup</literal> or <literal>-s</literal> is specified,
+ it should be passed the name of a file in the package base directory that is
+ used to fine-tune the generated package.xml. This file should work with variable
+ <literal>$package</literal> for modifying the package.xml, and
+ <literal>$compatible</literal> for the compatible
+ one (if present). If --packagexmlsetup is not specified, and
+ <literal>packagexmlsetup.php</literal>
+ exists in the package base directory, it will be used.
+ </para>
+ <para>
+ Here is an example <literal>packagexmlsetup.php</literal>:
+ <programlisting role="php">
+ <![CDATA[
+<?php
+$package->dependencies['required']->package['pear2.php.net/PEAR2_Autoload']->save();
+$package->dependencies['required']->package['pear2.php.net/PEAR2_Exception']->save();
+$package->dependencies['required']->package['pear2.php.net/PEAR2_MultiErrors']->save();
+
+$compatible->dependencies['required']->package['pear2.php.net/PEAR2_Autoload']->save();
+$compatible->dependencies['required']->package['pear2.php.net/PEAR2_Exception']->save();
+$compatible->dependencies['required']->package['pear2.php.net/PEAR2_MultiErrors']->save();
+?>
+ ]]>
+ </programlisting>
+ </para>
+ </section>
+ <section xml:id="pyrus.commands.make.nocompatible">
+ <title>--nocompatible</title>
+ <para>
+ If <literal>--nocompatible</literal> or <literal>-n</literal> option
+ is passed in, Pyrus will not generate a package.xml that is compatible
+ with the PEAR Installer.
+ </para>
+ </section>
+ <section xml:id="pyrus.commands.make.package">
+ <title>--package</title>
+ <para>
+ This option instruct the <literal>make</literal> command to pass off the
+ finished package.xml to the
+ <link linkend="pyrus.commands.package"><literal>package</literal></link>
+ command. It accepts a comma-delimited list of file formats, and can be any
+ of <literal>phar</literal>, <literal>tar</literal>, <literal>tgz</literal>
+ or <literal>zip</literal>.
+ </para>
+ </section>
+ <section xml:id="pyrus.commands.make.stub">
+ <title>--stub</title>
+ <para>
+ This option is identical to the option for the
+ <link linkend="pyrus.commands.package.stub"><literal>--stub</literal></link>
+ option of the <link linkend="pyrus.commands.package"><literal>package</literal></link>
+ command, and is ignored if <literal>--package</literal> or <literal>-p</literal>
+ is not also specified.
+ </para>
+ </section>
+ <section xml:id="pyrus.commands.make.extrasetup">
+ <title>--extrasetup</title>
+ <para>
+ This option is identical to the option for the
+ <link linkend="pyrus.commands.package.extrasetup"><literal>--extrasetup</literal></link>
+ option of the <link linkend="pyrus.commands.package"><literal>package</literal></link>
+ command, and is ignored if <literal>--package</literal> or <literal>-p</literal>
+ is not also specified.
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/mypear.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/mypear.xml
diff -u peardoc/en/pyrus/commands/mypear.xml:1.1 peardoc/en/pyrus/commands/mypear.xml:1.2
--- peardoc/en/pyrus/commands/mypear.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/mypear.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,19 @@
<section xml:id="pyrus.commands.mypear.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ The <literal>mypear</literal> command sets up the path or paths in which Pyrus
+ will look for installed packages. If multiple paths are specified, they
+ should be separated by <constant>PATH_SEPARATOR</constant>, which is
+ <literal>:</literal> on unix systems, and <literal>;</literal> on Windows-based
+ systems. If multiple paths are specified, only the first path will be
+ used for installing packages. The other paths are only used to validate
+ package dependencies.
+ </para>
+ <para>
+ <literal>mypear</literal> is a convenient alternative to using the
+ <link linkend="pyrus.commands.set"><literal>set</literal></link> command to
+ set the <literal>my_pear_path</literal> configuration variable.
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/package.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/package.xml
diff -u peardoc/en/pyrus/commands/package.xml:1.1 peardoc/en/pyrus/commands/package.xml:1.2
--- peardoc/en/pyrus/commands/package.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/package.xml Sat Jun 27 05:18:06 2009
@@ -6,4 +6,16 @@
<info><title>Introduction</title></info>
<para>This is a work in progress.</para>
</section>
+ <section xml:id="pyrus.commands.package.stub">
+ <title>--stub</title>
+ <para>
+ This document is a work in progress.
+ </para>
+ </section>
+ <section xml:id="pyrus.commands.package.extrasetup">
+ <title>--extrasetup</title>
+ <para>
+ This document is a work in progress.
+ </para>
+ </section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/remotelist.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/remotelist.xml
diff -u peardoc/en/pyrus/commands/remotelist.xml:1.1 peardoc/en/pyrus/commands/remotelist.xml:1.2
--- peardoc/en/pyrus/commands/remotelist.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/remotelist.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,18 @@
<section xml:id="pyrus.commands.remotelist.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ The remote-list command lists all remote packages in a channel, organized by
+ category. This command present an alphabetized list of all packages with the
+ latest release and package summary. Installed packages are marked with an
+ asterisk (<literal>*</literal>).
+ </para>
+ </section>
+ <section xml:id="pyrus.commands.remotelist.basic">
+ <title>--basic</title>
+ <para>
+ If the <literal>--basic</literal> or <literal>-b</literal> option is specified,
+ only package name, latest release, and latest stable release are listed.
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/runscripts.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/runscripts.xml
diff -u peardoc/en/pyrus/commands/runscripts.xml:1.1 peardoc/en/pyrus/commands/runscripts.xml:1.2
--- peardoc/en/pyrus/commands/runscripts.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/runscripts.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,9 @@
<section xml:id="pyrus.commands.runscripts.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ The <literal>run-scripts</literal> command is used to execute
+ post-install scripts of a package. It accepts a list
+ of <link linkend="guide.users.concepts.abstractpackage">abstract package names</link>.</para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/set.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/set.xml
diff -u peardoc/en/pyrus/commands/set.xml:1.1 peardoc/en/pyrus/commands/set.xml:1.2
--- peardoc/en/pyrus/commands/set.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/set.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,18 @@
<section xml:id="pyrus.commands.set.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ Set a configuration value. Documentation on how Pyrus organizes configuration
+ values can be found <link linkend="pyrus.configuration">here</link>. Also
+ note that <link linkend="pyrus.commands.mypear">mypear</link> can be used
+ as a simpler method of setting the <literal>my_pear_path</literal>
+ configuration value.
+ </para>
+ <para>
+ For example:
+ </para>
+ <para>
+ <screen>php pyrus.phar set download_dir /home/blah/downloads</screen>
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/uninstall.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/uninstall.xml
diff -u peardoc/en/pyrus/commands/uninstall.xml:1.1 peardoc/en/pyrus/commands/uninstall.xml:1.2
--- peardoc/en/pyrus/commands/uninstall.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/uninstall.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,34 @@
<section xml:id="pyrus.commands.uninstall.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ The uninstall command removes a package and accepts a list of installed
+ packages to remove as arguments.
+ </para>
+ <para>This document is a work in progress</para>
+ </section>
+ <section xml:id="pyrus.commands.uninstall.plugins">
+ <title>--plugin</title>
+ <para>
+ Plugins (documented <link linkend="pyrus.plugins">here</link>) must be explicitly
+ uninstalled with the <literal>-p</literal> or <literal>--plugin</literal> option.
+ Plugins are installed into the location specified by the <literal>plugins_dir</literal>
+ configuration variable, which defaults to the same location that the user
+ configuration file is located (<literal>$HOME/.pear</literal> in unix,
+ <literal><My Documents>\pear</literal> on windows).
+ </para>
+ <para>
+ <screen>php pyrus.phar uninstall -p PEAR2_Pyrus_Developer</screen>
+ </para>
+ </section>
+ <section xml:id="pyrus.commands.uninstall.force">
+ <title>--force</title>
+ <para>
+ The <literal>--force</literal> or <literal>-f</literal> option can be used
+ to force uninstallation if there are errors. For instance, this can be used
+ to override problems in dependency validation. As such, it should be used
+ sparingly if at all. Better is to uninstall the packages tha depend on the
+ package being uninstalled.
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/upgrade.xml?r1=1.2&r2=1.3&diff_format=u
Index: peardoc/en/pyrus/commands/upgrade.xml
diff -u peardoc/en/pyrus/commands/upgrade.xml:1.2 peardoc/en/pyrus/commands/upgrade.xml:1.3
--- peardoc/en/pyrus/commands/upgrade.xml:1.2 Fri Jun 26 18:19:44 2009
+++ peardoc/en/pyrus/commands/upgrade.xml Sat Jun 27 05:18:06 2009
@@ -10,7 +10,8 @@
as well as install a new one.
</para>
<para>
- The <literal>--packagingroot</literal> option is also unavailable, --packagingroot
+ The <literal>--packagingroot</literal> option is also unavailable,
+ <literal>--packagingroot</literal>
should only be used for installing new files.
</para>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/commands/upgraderegistry.xml?r1=1.1&r2=1.2&diff_format=u
Index: peardoc/en/pyrus/commands/upgraderegistry.xml
diff -u peardoc/en/pyrus/commands/upgraderegistry.xml:1.1 peardoc/en/pyrus/commands/upgraderegistry.xml:1.2
--- peardoc/en/pyrus/commands/upgraderegistry.xml:1.1 Fri Jun 26 18:10:52 2009
+++ peardoc/en/pyrus/commands/upgraderegistry.xml Sat Jun 27 05:18:06 2009
@@ -4,6 +4,25 @@
<section xml:id="pyrus.commands.upgraderegistry.intro">
<info><title>Introduction</title></info>
- <para>This is a work in progress.</para>
+ <para>
+ The upgrade-registry command is used to convert a registry from the old
+ PEAR Installer format into the new Pyrus format, and then optionally
+ remove the old registry.
+ </para>
+ <para>
+ The command creates registries in Sqlite3 and XML formats in the path passed
+ as the argument to <literal>upgrade-registry</literal>. Note that Pyrus
+ registries are stored in the parent directory as the installed PHP files,
+ whereas PEAR registries are stored in the same directory as the installed
+ PHP files, so it is necessary for Pyrus to have write access to the parent
+ directory.
+ </para>
+ </section>
+ <section xml:id="pyrus.commands.upgraderegistry.removeold">
+ <title>--removeold</title>
+ <para>
+ The <literal>--removeold</literal> or <literal>-r</literal> option instructs
+ Pyrus to remove the old PEAR registry when finished upgrading.
+ </para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/guide/users/concepts.xml?view=markup&rev=1.1
Index: peardoc/en/guide/users/concepts.xml
+++ peardoc/en/guide/users/concepts.xml
<?xml version="1.0" encoding="utf-8"?>
<chapter xmlns="http://docbook.org/ns/docbook" version="lillet" xml:id="guide.users.concepts">
<info>
<title>Basic concepts all PEAR users should understand</title>
<author><personname><firstname>Gregory</firstname><surname>Beaver</surname></personname></author>
<date>2009-06-26</date>
</info>
<simpara>
This chapter describes basic concepts that are important for all users of
Pyrus, the PEAR Installer, or PEAR packages to understand.
</simpara>
&guide.users.concepts.package;
&guide.users.concepts.api;
&guide.users.concepts.stability;
&guide.users.concepts.version;
&guide.users.concepts.abstractpackage;
&guide.users.concepts.channel;
</chapter>
http://cvs.php.net/viewvc.cgi/peardoc/en/guide/users/concepts/abstractpackage.xml?view=markup&rev=1.1
Index: peardoc/en/guide/users/concepts/abstractpackage.xml
+++ peardoc/en/guide/users/concepts/abstractpackage.xml
<?xml version="1.0" encoding="utf-8"?>
<section xmlns="http://docbook.org/ns/docbook" version="lillet" xml:id="guide.users.concepts.abstractpackage">
<info><title>Abstract Package Name (for install/uninstall command)</title></info>
<para>
There are several different ways of referring to a package that Pyrus and the
PEAR Installer understand. Three ways are concrete, in that they refer to
deterministic entities such as a package.xml file on disk, or a <acronym>URI</acronym>
(Uniform Resource Identifier) such as <literal>http://pear.php.ne/get/PEAR-1.8.1.tgz</literal>
that refers to a file on a remote server.
</para>
<para>
<table>
<title>Ways of specifying a package for installation</title>
<tgroup cols="3">
<thead>
<row>
<entry>Package type</entry>
<entry>Local/Remote</entry>
<entry>Example</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>package.xml</literal> file</entry>
<entry>Local</entry>
<entry><userinput>php pyrus.phar install /path/to/package.xml</userinput></entry>
</row>
<row>
<entry>Package release archive</entry>
<entry>Local</entry>
<entry><userinput>php pyrus.phar install /path/to/PackageName-1.2.3.tgz</userinput></entry>
</row>
<row>
<entry>Static url</entry>
<entry>Remote</entry>
<entry><userinput>php pyrus.phar install http://example.com/PackageName-1.2.3.tgz</userinput></entry>
</row>
<row>
<entry>Abstract package</entry>
<entry>Remote</entry>
<entry><userinput>php pyrus.phar install PackageName</userinput></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
The first three ways of specifying a package are concrete: the package name
always refers to one and only one package. Abstract packages are more
flexible, and there are several ways of requesting a package. Note that
if the channel is not explicitly requested (as it is in the last example),
Pyrus or the PEAR Installer prepends the default channel. The default channel
is set by the <literal>default_channel</literal> configuration variable, and is
set to one of <literal>pear.php.net</literal> (pear command), <literal>pecl.php.net</literal>
(pecl command), or <literal>pear2.php.net</literal> (Pyrus) unless explicitly changed
by a call to the <link linkend="guide.users.commandline.config">config-set</link>
(pear/pecl command) or <link linkend="pyrus.commands.set">set</link> (pyrus)
command. A request for
<literal>PackageName</literal> will be interpreted by the PEAR Installer or Pyrus
to be a request for package PackageName from the default channel, as if the user had
requested <literal>pear.php.net/PackageName</literal> (pear command),
<literal>pecl.php.net/PackageName</literal> (pecl command) or
<literal>pear2.php.net/PackageName</literal> (pyrus).
<table>
<title>Ways of specifying an abstract package</title>
<tgroup cols="2">
<thead>
<row>
<entry>Example</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>PackageName-1.2.3</literal></entry>
<entry>
This forces Pyrus to download version <literal>1.2.3</literal> of
package <literal>PackageName</literal>, but will will attempt to download
a release in one of the following file formats, in this order:
<orderedlist>
<listitem><simpara>phar</simpara></listitem>
<listitem><simpara>tgz (only if zlib extension is enabled)</simpara></listitem>
<listitem><simpara>tar</simpara></listitem>
<listitem><simpara>zip</simpara></listitem>
</orderedlist>
</entry>
</row>
<row>
<entry><literal>PackageName-alpha</literal></entry>
<entry>
This causes Pyrus to download the latest version of
package <literal>PackageName</literal> that is <literal>alpha</literal>
stability or better (the hierarchy of stabilities is <literal>devel</literal>,
<literal>alpha</literal>, <literal>beta</literal>, <literal>stable</literal>).
After finding a matching version, it will attempt to download a release
in one of the following file formats, in this order:
<orderedlist>
<listitem><simpara>phar</simpara></listitem>
<listitem><simpara>tgz (only if zlib extension is enabled)</simpara></listitem>
<listitem><simpara>tar</simpara></listitem>
<listitem><simpara>zip</simpara></listitem>
</orderedlist>
</entry>
</row>
<row>
<entry><literal>PackageName</literal></entry>
<entry>
This causes Pyrus to download the latest version of
package <literal>PackageName</literal> that is <literal>preferred_state</literal>
(configuration variable)
stability or better (the hierarchy of stabilities is <literal>devel</literal>,
<literal>alpha</literal>, <literal>beta</literal>, <literal>stable</literal>).
After finding a matching version, it will attempt to download a release
in one of the following file formats, in this order:
<orderedlist>
<listitem><simpara>phar</simpara></listitem>
<listitem><simpara>tgz (only if zlib extension is enabled)</simpara></listitem>
<listitem><simpara>tar</simpara></listitem>
<listitem><simpara>zip</simpara></listitem>
</orderedlist>
The <literal>preferred_state</literal> configuration variable can be seen
with the <link linkend="pyrus.commands.configshow">config-show</link>
command.
</entry>
</row>
<row>
<entry><literal>PackageName#groupname</literal></entry>
<entry>
This causes Pyrus to download and install a release of Pyrus as specified
above, and it also causes Pyrus to download and install the contents
of the <literal>groupname</literal> dependency group (dependency groups
are documented <link linkend="guide.developers.package2.dependencies.groups">here</link>).
Note that <literal>PackageName</literal> in <literal>PackageName#groupname</literal>
can be any of the above examples, such as <literal>PackageName-1.2.3#groupname</literal>.
</entry>
</row>
<row>
<entry><literal>channelname/PackageName</literal></entry>
<entry>
This causes Pyrus to download and install a release of
<literal>PackageName</literal> from the channel <literal>channelname</literal>.
Another syntax that can be used is <literal>channel://channelname/PackageName</literal>
which is useful if there is a sub-directory of the current working
directory named <literal>channelname</literal> and a file or directory
within it named <literal>PackageName</literal>. Note that
in the example above, <literal>PackageName</literal> can be any of the
previous syntaces such as <literal>channelname/PackageName-1.2.3#groupname</literal>.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<section xml:id="guide.users.concepts.abstractpackages.uninstall">
<title>Abstract Package for installed packages</title>
<para>
Note that the <literal>uninstall</literal>, <literal>run-scripts</literal>,
and other commands that operate on installed packages
only support a simple
package name as in <literal>PackageName</literal> or
<literal>channelname/PackageName</literal>. Any fancy stuff like
<literal>pear2.php.net/PackageName-1.2.3#group</literal> is ignored.
</para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/guide/users/concepts/api.xml?view=markup&rev=1.1
Index: peardoc/en/guide/users/concepts/api.xml
+++ peardoc/en/guide/users/concepts/api.xml
<?xml version="1.0" encoding="utf-8"?>
<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="lillet"
xml:id="guide.users.concepts.api">
<info><title>API (Application Program Interface)</title></info>
<para>
A package's API is the publicly documented entry points to the library or
program within the package. For example, the classes or methods that are
to be used with a PEAR package, or the commands for a command-line program
are all elements of an API. Another example might be the templating language.
</para>
<para>
Any element of the program that is not intended to be used by the outside
world, or is not documented, is not considered part of the API, and thus
should not be relied upon in your programs as it may change in any
future release.
</para>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/guide/users/concepts/channel.xml?view=markup&rev=1.1
Index: peardoc/en/guide/users/concepts/channel.xml
+++ peardoc/en/guide/users/concepts/channel.xml
<?xml version="1.0" encoding="utf-8"?>
<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="lillet" xml:id="guide.users.concepts.channel">
<info><title>PEAR Channels</title></info>
<para>
A PEAR Channel is a web site that distributes
<link linkend="guide.users.concepts.package">package</link> archives for remote
installation by users of Pyrus or the PEAR Installer. In addition to providing
the package archives for download, a PEAR Channel must also provide some
meta-information that the installer can use to locate the package releases and
determine which is the best release to download.
</para>
<para>
Channels have a file that defines the capabilities of the channel named
<link linkend="guide.migrating.channels.xml">channel.xml</link> located in its
document root (for instance,
<link xlink:href="http://pear.php.net/channel.xml">pear.php.net's channel.xml</link>)
and some meta-information in <link linkend="core.rest">REST</link> format.
</para>
<para>
A channel can also provide a public frontend for users to browse the contents
of the channel online, such as
<link xlink:href="http://pear.php.net/packages.php">PEAR's public frontend</link>.
</para>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/guide/users/concepts/package.xml?view=markup&rev=1.1
Index: peardoc/en/guide/users/concepts/package.xml
+++ peardoc/en/guide/users/concepts/package.xml
<?xml version="1.0" encoding="utf-8"?>
<section xmlns="http://docbook.org/ns/docbook" version="lillet" xml:id="guide.users.concepts.package">
<info><title>PEAR Packages</title></info>
<para>
The smallest unit that can be managed by Pyrus or the PEAR Installer is
a <literal>package</literal>. A package is a collection of files
that are organized and defined by a meta-information file called
<link linkend="guide.developers.package2.intro">package.xml</link>.
</para>
<para>
A package also contains meta-information about the collected files, such
as the name of the package, the <link linkend="guide.users.concepts.channel">channel</link>
that the package is from, the version of the package, information
on the developers who created the package, and any external dependencies the
package has on other packages or installation requirements (such as minimum PHP version).
</para>
<para>
Packages can exist as a collection of files on disk, or can be placed into
an archive in phar, tar, or zip format and then later installed on another
system.
</para>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/guide/users/concepts/stability.xml?view=markup&rev=1.1
Index: peardoc/en/guide/users/concepts/stability.xml
+++ peardoc/en/guide/users/concepts/stability.xml
<?xml version="1.0" encoding="utf-8"?>
<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="lillet"
xml:id="guide.users.concepts.stability">
<info><title>Package stability</title></info>
<para>
Versioning and stability are separate entities for
<link linkend="guide.users.concepts.package">packages</link>.
The stability of a package determines how likely the package is to contain bugs
or to have changes to its <link linkend="guide.users.concepts.api">API</link>.
A distinction is made between the version/stability of the API and the
version/stability of the code.
</para>
<para>
This simple chart shows the meaning of a package's stability:
<table>
<title>What a package's stability means</title>
<tgroup cols="3">
<thead>
<row>
<entry>Stability type</entry>
<entry>Stability</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>Release</entry>
<entry><literal>devel</literal></entry>
<entry>
The package is under development and will change dramatically, both
adding new features, changing the design, and fixing many bugs. It may
not function at all and be more of a proof-of-concept. There may be
little to no documentation or unit tests. Use at your own risk.
</entry>
</row>
<row>
<entry>Release</entry>
<entry><literal>alpha</literal></entry>
<entry>
The package is ready for testing by hard core users. Features are
still being developed, but the program should work. Subsequent releases
may have major changes.
</entry>
</row>
<row>
<entry>Release</entry>
<entry><literal>beta</literal></entry>
<entry>
The package is nearly ready for public release and usage in production.
Documentation is complete, unit tests are complete, and the API is
frozen (will not change) unless major problems are found.
</entry>
</row>
<row>
<entry>Release</entry>
<entry><literal>stable</literal></entry>
<entry>
The package is ready for use in production.
Documentation is complete, unit tests are complete, and the API is
frozen completely and will not change.
</entry>
</row>
<row>
<entry>API</entry>
<entry><literal>devel</literal></entry>
<entry>
The API will change dramatically between releases, and cannot be relied upon.
</entry>
</row>
<row>
<entry>API</entry>
<entry><literal>alpha</literal></entry>
<entry>
The API is starting to stabilize, but may still have major changes.
</entry>
</row>
<row>
<entry>API</entry>
<entry><literal>beta</literal></entry>
<entry>
The API will only have changes if major bugs are found.
</entry>
</row>
<row>
<entry>API</entry>
<entry><literal>stable</literal></entry>
<entry>
The API will not change and can be relied upon.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<section xml:id="guide.users.concepts.stability.conventions">
<para>
There are a few conventions that should be followed when deciding which
stability to use for your package. In general, the API stability should be
equal to or better than the release stability.
</para>
<para>
Here is a helpful chart of stabilities:
<table>
<title>Which stability to use</title>
<tgroup cols="3">
<thead>
<row>
<entry>Release Stability</entry>
<entry>API Stability</entry>
<entry>Scenario</entry>
</row>
</thead>
<tbody>
<row>
<entry><literal>devel</literal></entry>
<entry><literal>devel</literal></entry>
<entry>
This package is brand new, no documentation, no tests, more of
a proof-of-concept. It may not work at all.
</entry>
</row>
<row>
<entry><literal>alpha</literal></entry>
<entry><literal>alpha</literal></entry>
<entry>
This package has been developed extensively, and is ready for testing
by the outside world, has some documentation or full documentation
and tests, but the API or design is subject to dramatic change if
necessary. Bugs are likely
</entry>
</row>
<row>
<entry><literal>alpha</literal></entry>
<entry><literal>beta</literal></entry>
<entry>
This package has a relatively certain API, but may contain bugs, and
the API may change, but most changes will be small.
</entry>
</row>
<row>
<entry><literal>beta</literal></entry>
<entry><literal>beta</literal></entry>
<entry>
This package is approaching release, the code is stabilizing as well as
the API
</entry>
</row>
<row>
<entry><literal>beta</literal></entry>
<entry><literal>stable</literal></entry>
<entry>
This package is in the release candidate stage, has full documentation
and tests, as well as a frozen API. Bugs may still be present in the
code.
</entry>
</row>
<row>
<entry><literal>stable</literal></entry>
<entry><literal>stable</literal></entry>
<entry>
This package is ready for use in production, has full documentation
and tests, and the API can be relied upon as frozen.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/guide/users/concepts/version.xml?view=markup&rev=1.1
Index: peardoc/en/guide/users/concepts/version.xml
+++ peardoc/en/guide/users/concepts/version.xml
<?xml version="1.0" encoding="utf-8"?>
<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="lillet"
xml:id="guide.users.concepts.version">
<info><title>Package version</title></info>
<para>
Versioning and stability are separate entities for
<link linkend="guide.users.concepts.package">packages</link>.
The version of a package is a numeric string like <literal>1.2.3</literal> that
is incremented every time a new version of the package is released.
The stability of a package determines how likely the package is to contain bugs
or to have changes to its <link linkend="guide.users.concepts.api">API</link>.
</para>
<para>
In addition, PEAR makes a distinction between the
<link linkend="guide.users.concepts.api">API</link> version and the package
version.
<!-- disabling this part until it is approved by the man
This allows fine-grained control for Pyrus users,
who can request even finer control over the API version to be installed
by setting the <literal>paranoid</literal> setting higher than the default value.
This is documented <link linkend="guide.users.concepts.paranoid">here</link>. -->
</para>
<section xml:id="guide.users.concepts.version.guidelines">
<title>Versioning guidelines</title>
<para>
There are a few conventions that should be followed when deciding which version
number or stability to use for your package. Version numbers should always
contain three decimals such as <literal>1.2.3</literal>. This is because of
the way that PHP's <function>version_compare</function> function calculates
the difference between versions:
</para>
<para>
<programlisting role="php">
<![CDATA[
<?php
var_dump(version_compare("1.0", "1.0.0")); // int(-1)
?>
]]>
</programlisting>
</para>
<para>
The example above shows that in fact version <literal>1.0</literal> is
considered to be a different version from version <literal>1.0.0</literal>,
a distinction that is confusing at best for users. Use of 3 decimals for
every version will ensure that both your users and PHP will not be confused
by which of two versions is the same or newer.
</para>
<para>
Package versions can be abstractly referred to as <literal>X.Y.Z</literal>.
For version <literal>1.2.3</literal>, <literal>X</literal> is <literal>1</literal>,
<literal>Y</literal> is <literal>2</literal> and <literal>Z</literal> is
<literal>3</literal>.
</para>
<para>
Generally speaking, it is best if <literal>X</literal> is used to refer to
major API changes, sweeping addition of new features, or any break of
backwards compatibility. The <literal>Y</literal> component should be reserved
for small to large feature additions, but should never be used for
breaks of backwards compatibility. The <literal>Z</literal> component should
only be used for bugfixes.
</para>
<para>
These three questions can be used to determine how to increase the version
number:
<orderedlist>
<listitem>
<simpara>
Breaking backwards compatibility? Yes = increment <literal>X</literal>,
set <literal>Y</literal> = <literal>Z</literal> = 0
</simpara>
</listitem>
<listitem>
<simpara>
Adding new features? Yes = increment <literal>Y</literal>, set
<literal>Z</literal> = 0
</simpara>
</listitem>
<listitem>
<simpara>
Fixing bugs? Yes = increment <literal>Z</literal>
</simpara>
</listitem>
</orderedlist>
</para>
<para>
Here is a typical life cycle for a package:
<table>
<title>A version life cycle for a package</title>
<tgroup cols="3">
<thead>
<row>
<entry>Release Notes</entry>
<entry>Release Stability</entry>
<entry>API Stability</entry>
<entry>Release Version</entry>
<entry>API Version</entry>
</row>
</thead>
<tbody>
<row>
<entry>Initial release</entry>
<entry><literal>devel</literal> or <literal>alpha</literal></entry>
<entry><literal>devel</literal> or <literal>alpha</literal></entry>
<entry><literal>0.1.0</literal></entry>
<entry><literal>0.1.0</literal></entry>
</row>
<row>
<entry>Bugs fixed</entry>
<entry><literal>devel</literal> or <literal>alpha</literal></entry>
<entry><literal>devel</literal> or <literal>alpha</literal></entry>
<entry><literal>0.1.1</literal></entry>
<entry><literal>0.1.0</literal></entry>
</row>
<row>
<entry>More bugs fixed</entry>
<entry><literal>devel</literal> or <literal>alpha</literal></entry>
<entry><literal>devel</literal> or <literal>alpha</literal></entry>
<entry><literal>0.1.2</literal></entry>
<entry><literal>0.1.0</literal></entry>
</row>
<row>
<entry>API changed, more bugs fixed</entry>
<entry><literal>devel</literal> or <literal>alpha</literal></entry>
<entry><literal>devel</literal> or <literal>alpha</literal></entry>
<entry><literal>0.2.0</literal></entry>
<entry><literal>0.2.0</literal></entry>
</row>
<row>
<entry>API changed, more bugs fixed</entry>
<entry><literal>devel</literal> or <literal>alpha</literal></entry>
<entry><literal>devel</literal> or <literal>alpha</literal></entry>
<entry><literal>0.3.0</literal></entry>
<entry><literal>0.3.0</literal></entry>
</row>
<row>
<entry>API changed, documentation started, tests expanding</entry>
<entry><literal>alpha</literal></entry>
<entry><literal>alpha</literal></entry>
<entry><literal>0.4.0</literal></entry>
<entry><literal>0.4.0</literal></entry>
</row>
<row>
<entry>API stabilizing, documentation nearly finished, tests expanding</entry>
<entry><literal>alpha</literal></entry>
<entry><literal>beta</literal></entry>
<entry><literal>0.5.0</literal></entry>
<entry><literal>0.4.1</literal></entry>
</row>
<row>
<entry>API stabilizing, code stabilizing, documentation nearly finished, tests expanding</entry>
<entry><literal>beta</literal></entry>
<entry><literal>beta</literal></entry>
<entry><literal>0.5.1</literal></entry>
<entry><literal>0.4.1</literal></entry>
</row>
<row>
<entry>API problem fixed, code stabilizing, documentation nearly finished, tests expanding</entry>
<entry><literal>beta</literal></entry>
<entry><literal>beta</literal></entry>
<entry><literal>0.6.0</literal></entry>
<entry><literal>0.5.0</literal></entry>
</row>
<row>
<entry>API stabilized, code stabilizing, documentation nearly finished, tests expanding</entry>
<entry><literal>beta</literal></entry>
<entry><literal>stable</literal></entry>
<entry><literal>0.6.1</literal></entry>
<entry><literal>1.0.0</literal></entry>
</row>
<row>
<entry>API stabilized, code stabilizing, documentation finished, tests expanding</entry>
<entry><literal>beta</literal></entry>
<entry><literal>stable</literal></entry>
<entry><literal>1.0.0RC1</literal></entry>
<entry><literal>1.0.0</literal></entry>
</row>
<row>
<entry>API stabilized, code stabilizing, documentation finished, tests full coverage</entry>
<entry><literal>beta</literal></entry>
<entry><literal>stable</literal></entry>
<entry><literal>1.0.0RC2</literal></entry>
<entry><literal>1.0.0</literal></entry>
</row>
<row>
<entry>code ready for use in production</entry>
<entry><literal>stable</literal></entry>
<entry><literal>stable</literal></entry>
<entry><literal>1.0.0</literal></entry>
<entry><literal>1.0.0</literal></entry>
</row>
<row>
<entry>bugs fixed</entry>
<entry><literal>stable</literal></entry>
<entry><literal>stable</literal></entry>
<entry><literal>1.0.1</literal></entry>
<entry><literal>1.0.0</literal></entry>
</row>
<row>
<entry>bugs fixed</entry>
<entry><literal>stable</literal></entry>
<entry><literal>stable</literal></entry>
<entry><literal>1.0.2</literal></entry>
<entry><literal>1.0.0</literal></entry>
</row>
<row>
<entry>new features added, bugs fixed</entry>
<entry><literal>stable</literal></entry>
<entry><literal>stable</literal></entry>
<entry><literal>1.1.0</literal></entry>
<entry><literal>1.1.0</literal></entry>
</row>
<row>
<entry>bugs fixed, package enters maintenance mode to develop next generation</entry>
<entry><literal>stable</literal></entry>
<entry><literal>stable</literal></entry>
<entry><literal>1.1.1</literal></entry>
<entry><literal>1.1.0</literal></entry>
</row>
<!-- disabling this part until it is actually approved by the man
<row>
<entry>new features added, and backwards compatibility broken (PEAR2 only)</entry>
<entry><literal>alpha</literal></entry>
<entry><literal>alpha</literal></entry>
<entry><literal>2.0.0a1</literal></entry>
<entry><literal>2.0.0a1</literal></entry>
</row>
<row>
<entry>bugs fixed (PEAR2 only)</entry>
<entry><literal>alpha</literal></entry>
<entry><literal>alpha</literal></entry>
<entry><literal>2.0.0a2</literal></entry>
<entry><literal>2.0.0a1</literal></entry>
</row>
<row>
<entry>bugs fixed, API stabilizing (PEAR2 only)</entry>
<entry><literal>alpha</literal></entry>
<entry><literal>beta</literal></entry>
<entry><literal>2.0.0a3</literal></entry>
<entry><literal>2.0.0b1</literal></entry>
</row>
<row>
<entry>bugs fixed, API stable (PEAR2 only)</entry>
<entry><literal>beta</literal></entry>
<entry><literal>stable</literal></entry>
<entry><literal>2.0.0b1</literal></entry>
<entry><literal>2.0.0</literal></entry>
</row>
<row>
<entry>code stabilizing, API stable (PEAR2 only)</entry>
<entry><literal>beta</literal></entry>
<entry><literal>stable</literal></entry>
<entry><literal>2.0.0RC1</literal></entry>
<entry><literal>2.0.0</literal></entry>
</row>
<row>
<entry>ready for production use (PEAR2 only)</entry>
<entry><literal>stable</literal></entry>
<entry><literal>stable</literal></entry>
<entry><literal>2.0.0</literal></entry>
<entry><literal>2.0.0</literal></entry>
</row>-->
</tbody>
</tgroup>
</table>
</para>
<para>
Note that the PEAR coding standards require packages to be renamed when they
break backwards compatibility. Thus, a PEAR package can never reach
version <literal>2.0.0</literal>.
</para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/configuration.xml?view=markup&rev=1.1
Index: peardoc/en/pyrus/configuration.xml
+++ peardoc/en/pyrus/configuration.xml
<?xml version="1.0" encoding="utf-8"?>
<chapter xmlns="http://docbook.org/ns/docbook" version="lillet"
xml:id="pyrus.configuration">
<info>
<title>Pyrus configuration</title>
<author><personname><firstname>Gregory</firstname><surname>Beaver</surname></personname></author>
<date>2009-06-26</date>
</info>
<simpara>
Work in progress.
</simpara>
&pyrus.configuration.user;
&pyrus.configuration.system;
</chapter>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/configuration/system.xml?view=markup&rev=1.1
Index: peardoc/en/pyrus/configuration/system.xml
+++ peardoc/en/pyrus/configuration/system.xml
<?xml version="1.0" encoding="utf-8"?>
<section xmlns="http://docbook.org/ns/docbook" version="lillet" xml:id="pyrus.configuration.system">
<info><title>Pyrus system configuration variables</title></info>
<section xml:id="pyrus.configuration.system.intro">
<info><title>Introduction</title></info>
<para>This is a work in progress.</para>
</section>
</section>
http://cvs.php.net/viewvc.cgi/peardoc/en/pyrus/configuration/user.xml?view=markup&rev=1.1
Index: peardoc/en/pyrus/configuration/user.xml
+++ peardoc/en/pyrus/configuration/user.xml
<?xml version="1.0" encoding="utf-8"?>
<section xmlns="http://docbook.org/ns/docbook" version="lillet" xml:id="pyrus.configuration.user">
<info><title>Pyrus user configuration variables</title></info>
<section xml:id="pyrus.configuration.user.intro">
<info><title>Introduction</title></info>
<para>This is a work in progress.</para>
</section>
</section>