Fetches the package list from CPAN. Finds the current version of the given package. [1]

Downloads the relevant tarball; unpacks the tarball. [1]

Clean out the old directory (git clean -dfx)

Moves the old directory out of the way, moves the new directory in place.

Restores any .gitignore file.

Removes files from @IGNORE and EXCLUDED

git add any new files.

git rm any files that are gone.

Remove the +x bit on files in t/

Remove the +x bit on files that don't have it enabled in the current dir

Restore files mentioned in CUSTOMIZED

Adds new files to MANIFEST

Runs a make (assumes a configure has been run)

Cleans up

Runs tests for the package

Runs the porting tests

[1] If the --tarball option is given, then CPAN is not consulted. --tarball should be the path to the tarball; the version is extracted from the filename -- but can be overwritten by the --version option.