Changes -*- org -*-
:   ____ _                              _                
:  / ___| |__   __ _ _ __   __ _  ___  | |    ___   __ _ 
: | |   | '_ \ / _` | '_ \ / _` |/ _ \ | |   / _ \ / _` |
: | |___| | | | (_| | | | | (_| |  __/ | |__| (_) | (_| |
:  \____|_| |_|\__,_|_| |_|\__, |\___| |_____\___/ \__, |
:                          |___/                   |___/ 

* Release 0.10 [2011-05-25 Wed]

** Add set_pos() method to WWW::AUR::Iterator.

This is nice if you want to start iterating where you left off
last. Keep in mind that the value you give set_pos() is not the ID of
the package it is simply the offset that is given to the packages.php
webpage as a query parameter.

** Depend array with extra whitespace now parses                        :FIX:

The only package on the AUR that seems to have this problem is
turbovnc-bin.  To give you an idea of the problem, the depend string
looks like this:

: depends=('turbojpegipp >=1.11')

This was throwing an error from inside WWW::AUR::PKGBUILD when attempting
to parse this.

*** Adds new test to parse example PKGBUILDs from the AUR

I added a new test and a new directory (t/PKGBUILDs) for testing real-
world examples that I find on the AUR. I have already accomodated for
some poorly written / difficult to parse PKGBUILDs but I forgot to
write tests to them. I'll try to add more later.

I wanted to be sure I could parse turbovnc-bin's PKGBUILD after making

* Release 0.09 [2011-03-09 Wed]

** Default dependency data structure

I corrected the data structure that is created for a dependency which
does not specify a version and only a package name. Without a version
specified the dep should be satisfied by any version. The hash ref
that is created is similiar to this:

: { 'pkg' => q{...}, 'cmp' => q{>=}, 'ver' => 0, 'str' => q{...} }

** Improved PKGBUILD parsing

While I was using this module to iterate over the entire AUR I noticed
there were many badly written PKGBUILDs that did not parse
properly. Some bad (and not so bad) habits that are accounted for

 - Fields which should be arrays but aren't.
 - Backslashes (\) after every array element.
 - Commented array elements.

** Expand empty parameters

Because of a mistake of mine empty but defined parameters were not
expanded to the empty string. Now they are.

** Public WWW::AUR::URI module

I documented the WWW::AUR::URI module and allowed it to be indexed
by CPAN. This module might be useful for advanced users.

** WWW::AUR::Iterator is more robust

WWW::AUR::Iterator was rewritten to provide more data without creating
a WWW::AUR::Package object. The Iterator->next() method was changed to
return a hash ref of all available data that I could scrape. The data
is scraped from the package list (packages.php) webpage on the AUR.

The old next() method which returns an object was renamed to

* Release 0.08 [2011-03-06 Sun]

** Rename packages() method to iter()

I thought packages() might be a bit misleading as to what you are
actually getting from the method (a WWW::AUR::Iterator object).


The URLs for every PKGBUILD were changed on the website. The old
scheme was /packages/$pkgname/$pkgname/PKGBUILD. The new scheme is

** Better PKGBUILD Parsing

*** Splits array fields on spaces
Some poorly authored PKGBUILDs have fields which should be arrays,
but instead are one element arrays with many elements separated
by spaces. We split arrays on spaces where possible (everywhere
except optdepends) and where array fields are expected.

*** Crude parameter expansion added

We expand previously defined bash parameters (aka PKGBUILD fields).
The expansion is very simple, no special modifiers are recognized.
(Only ${NAME} is expanded, not ${NAME:-default}, etc). No command
expansion, path expansion, etc is implemented.

** WWW::AUR::Package->maintainer_name() method added

This is handy when you don't want a full fledged WWW::AUR::Maintainer
object. When creating objects, often their names, etc, are looked
up on the AUR RPC. This takes more time.
* Release 0.07 [2011-02-04 Fri]

** Fix Broken Test                                                      :FIX:

I foolishly broke a test by changing outside circumstances. I had
renamed 'Archlinux::Messages' to 'Archlinux::Term' and so the
'perl-archlinux-messages' package on the AUR was deleted in favor of
'perl-archlinux-term'. One of our tests checks for the existance of
'perl-archlinux-messages' on the AUR, which fails.

* Release 0.06 [2011-02-04 Fri]

** POD Documentation

Fixes many errors in the documentation.

** PKGBUILD Parsing

PKGBUILD parsing is now more resilient. The parsing is still far from
perfect but strange quotations now result in the same value that bash
gives them. I have also changed how parsing works, internally. I
suspect it is more efficient than previously.

** Org-mode documentation

I've decided to switch to Emacs's org-mode for all README and
changelog files in my own projects.

** Logins

*** HTTPS Logins

All actions taken while logged in now use HTTPS in order to secure
the login's session key. This also requires the Crypt::SSLeay
module to be installed if you want to login and do stuff.

*** Multilingual Logins

Multilingual logins will now work properly. The internal webpage
requests are set to English so the module only has to check for errors
in one language.
** Delete Action Added

Adds the delete package action in case any Trusted User wants to
use this module to delete packages. It is kind of scary what you
can do with it but heck... I trust you!

* Old GNU-style ChangeLog Entries:

2010-10-21  Justin Davis  <>

	* RELEASE (0.05)

	* lib/WWW/AUR/Package/ Extracted package file code
	from lib/WWW/AUR/Package/

	* lib/WWW/AUR/ Extracted PKGBUILD code from

2010-10-09  Justin Davis  <>

	* RELEASE (0.04)

	* lib/WWW/AUR.pod: Fix docs for PATH PARAMETERS. They still had
	sigils on their names from when I copy/pasted.

	* RELEASE (0.03)

	* Makefile.PL: Add module requirements I forgot about.

	* lib/WWW/AUR/Package.pod: Fix typo in docs (%BUILD_PARMAS).
	Add info() method.

	* lib/WWW/AUR/ Remove 'Returns' and 'Parameters'
	in documentation. Add documentation for action methods
	and upload method.

	* lib/WWW/AUR/ Remove 'Returns' and 'Parameters'
	in documentation.

	* lib/WWW/AUR/ Remove 'Returns' and 'Parameters'
	in documentation.

	* lib/WWW/AUR.pod: Fix wrong usage of 'upload' in SYNOPSIS.

2010-10-07  Justin Davis  <>

	* RELEASE (0.02)

	* lib/WWW/AUR/ (extract): Use the Archive::Tar module
	instead of the 'bsdtar' command to extract .tar.gz source package

2010-10-04  Justin Davis  <>

	* RELEASE (0.01)