0.025_003 2011-12-03 04:12:56 America/Los_Angeles
Now needs newer versions of Dist::Requires and
Dist::Metadata. Thanks CPAN Testers for shaking that out.
Prevent uninitialized warning when using the 'list' command.
0.025_002 2011-12-02 04:39:19 America/Los_Angeles
Fixed bugs in the Rebuild action.
Changed some log messages to be more helpful
and/or less noisy.
0.025_001 2011-12-02 03:18:26 America/Los_Angeles
===============================================================
IMPORTANT: This version of Pinto is not compatible with
repositories built with any prior version. In theory, you can
migrate your old repository with the right combination of
pinto-admin and VCS commands. If you really want to try
migrating your old repository, please contact me for guidance.
Otherwise, you'll have to create a new repository and 'add' each
of your local distributions again. If you have foreign
distributions in your repository then you'll have to 'mirror'
them again too, but you might not get exactly the same versions
that you used to have (because they are no longer the 'latest'
version on CPAN).
I know this sucks, but it is definitely worth the upgrade. This
version of Pinto is faster, more reliable, and packed with new
features. And going forward, I'll be able to maintain backward
compatibility or at least provide an automated migration path.
================================================================
* New Features:
Pinto now uses a SQLite database to store information. This
improves performance, reduces memory consumption, and ensures
data integrity. Pinto is single threaded and permits only one
database connection at a time, so it is safe for NFS (or so I've
been told by SQLite experts).
Pinto now behaves more like PAUSE, and will accept distributions
with overlapping packages. As always, only the 'latest' version
of a package appears in the index file. And just like PAUSE,
Pinto tries to figure out the lineage of packages (i.e. which
version came first, second, third, etc.) by looking at version
numbers and file timestamps. So you can throw a pile of archives
at it without having to think about putting them in a certain
order (See POD for details). You can also remove a distribution,
and the "prior" versions of its packages will automatically become
the latest.
A Pinto repository can now be used with the cpan[1] utility. It
should also work with cpanp[1], but I haven't tried it. And of
course it still works with cpanm[1]. However, Pinto does not
provide a full 01mailrc.txt.gz or 03modlist.data.gz file. So
cpan[1] features that rely on those files may not work.
Pinto can now pull foreign distributions from multiple
repositories. You can use this to fall back to another
repository if one of them is offline (which sometimes happens
with CPAN mirrors). Or you can use this to create a network of
repositories that may each have different sets of distributions.
I'm not sure if this is actually a good idea, but we'll see.
Pinto does the-right-thing with development distributions (See
POD for details). And each Pinto repository now has a 'devel'
configuration parameter. Setting this to a true value instructs
Pinto to include development releases in the index. The default
is false.
The 'create' command for pinto-admin now accepts options that set
the parameters in the config file that is generated for the new
repository.
The 'list' command for pinto-admin now accepts a --format option
that can be used to customize what/how information is displayed.
The 'remove' command for pinto-admin now works for both foreign
and local distributions. However, there is a caveat when
removing foreign distributions (See POD for details).
The 'rebuild' command for pinto-admin now has a --recompute
option that causes Pinto to recompute the 'latest' version
of all the packages (See POD for details).
pinto-admin now has a 'manual' command for displaying the full
manual for a particular command.
pinto-admin now has a 'version' command for displaying version
information.
pinto-admin now has a 'purge' command that removes everything
from your repository. You'll be prompted for confirmation.
pinto-admin now has an experimental 'import' command that fetches
a remote package or distribution (and its dependencies,
recursively) and puts all of them in your local repository.
Most of the pinto-admin commands now have aliases. Thanks to the
awesomeness of App::Cmd, you can say 'pinto-admin rm' instead of
'pinto-admin remove'. The aliases are listed in the manual for
each command.
* Other Changes:
The config files for each Pinto repsoitory are now located in
$REPOS/.pinto/config.
The 'list' command for pinto-admin has been neutered. You can no
longer specify the --type or --indexed options. However, the
output does show whether the package is local/foreign and
indexed/unindexed, so you can grep on that to narrow the results.
I'm thinking of developing a query interface to let you select
which packages/distributions you want to list.
The VCS tagging mechanism has changed. Instead of making a tag for
every commit, a tag is made only when you specify the --tag option.
You can still put date/time placeholders in your tag name.
The 'noclobber' configuration setting has been removed, since it
was never implemented anyway.
The 'nocleanup' configuration setting is gone, and we no longer
support automatic cleanup. Instead, you have to run the 'clean'
action separately. You might want to setup a cron job for this.
The 'update' command is now called 'mirror'. I know, I keep
flip-flopping on that. But I think I've finally settled now.
The --force option on the 'mirror' (formerly 'update') command is
no longer supported. I'm thinking of changing the meaning of
"force" and might bring it back in a future release.
pinto-admin is less noisy. You won't see any output on the
command line unless you set the --verbose switch or there is some
kind of error or warning. Setting the --quiet switch will still
suppress any non-fatal warnings.
* Bug Fixes:
Fixed bug where Pinto might blow up with 'too many args' error
the first time you update from a CPAN mirror.
0.024 2011-09-01 15:23:48 America/Los_Angeles
Added a "version" command to pinto-admin
General code refactoring
No interface changes
0.023 2011-08-31 14:18:49 America/Los_Angeles
* Interface Changes:
The "remove" operation now works on distribution names, rather
than package names. You must specify the full name of the
distribution, including version number and extension.
* Other Good Stuff:
Wrote the manuals for each of the pinto-admin commands.
Say `pinto-admin COMMAND --man` to see them.
0.022 2011-08-31 01:31:04 America/Los_Angeles
* Interface Changes:
You no longer need to specify the Subversion trunk in your
pinto.ini (if you were using Pinto::Store::VCS::Svn). The
location of your Pinto repository in subversion is implicit in
the `svn info` of the working copy. Secondly, the "create"
action no longer takes care of making a location in Subversion
for you. So you now have to do a little more work to setup Pinto
with Subversion. See the POD in Pinto::Store::VCS::Svn for
step-by-step instructions.
You can no longer specify a VCS tag in your pinto.ini. Making
a tag after every commit doesn't make sense. So now, a tag
is only made if you explicitly set a --tag on the command line.
Likewise, the --notag command line switch has been removed,
since the absence of a --tag is equivalent to --notag.
* Bug Fixes:
The "update" command was broken, following rename from "mirror".
Doh!
0.021 2011-08-30 01:16:55 America/Los_Angeles
* Interface Changes:
The "mirror" command is now called "update". I feel this more
accurately reflects what is going on, since a Pinto repository
isn't really a "mirror" of anything.
* Bug Fixes:
Fixed some bugs in the VCS tagging logic.
Fixed behavior when running under cron.
0.020 2011-08-28 20:40:43 America/Los_Angeles
* Enhancements:
Added the "rebuild" command, which reconstructs the master index
from the current local and mirrored indexes. This is useful if
your master index somehow gets screwed. Note this is not the
same as actually re-indexing the distributions (that's a feature
I might add later).
All commands for pinto-admin[1] now support a --man option, which
shows you the full documentation for a commmand. But at this
point, I haven't written the documentation for all the commands.
Several of the commands for pinto-admin[1] now support a --tag
option that allows you to specify an alternative tag. The
semantics of the tag will depend on which type of VCS you are
using. Likewise, you can now specify --notag to disable tagging
completely.
0.019 2011-08-24 04:09:41 America/Los_Angeles
* Bug Fixes:
The 'add' and 'remove' commands for pinto-admin were not reading
arguments from STDIN properly.
All svn commands would fail when running under pinto-server.
This was due to some strage behavior in IPC::Run that I can't
explain.
0.018 2011-08-24 01:45:21 America/Los_Angeles
Now using IPC::Run to handle external commands (like svn).
IPC::Run seems to behave better when running in a server
environment like pinto-server (via Dancer).
0.017 2011-08-24 00:50:09 America/Los_Angeles
* Interface Changes:
pinto-admin[1] is now zero-conf (at least, by default). However,
you must now specify the --repos for every command. Also, some of
the options for pinto-admin have been removed for safety, and are
now in the repository-specific configuration file (see below).
This helps to deter you from doing things that contradict the
usual behavior of your repository.
Each Pinto repository now has its own configuration file, which
governs its basic behavior. The configuration file is generated
with default values when you run the "create" command. This
allows you set up multiple repositories, each with a different
behavior and VCS store.
* Enhancements:
The "add" and "remove" commands for pinto-admin[1] can now read
arguments from STDIN. When doing so, it filters out things that
look like comments and blank lines. This makes it easy to pipe in
the output from a find[1] or dzil[1] command.
You can also specify arguments to the "add" command as URLs,
and Pinto will fetch them for you. (Suggested by Tim Bunce).
The "list" command now accepts a --type option, which will show
you either all packages, only local packages, only foreign
packages, or only local packages that block a foreign package.
(suggested by George Hartzell and Meg Green).
The "add", "remove", and "mirror" actions now accept a --message
option, which will be prepended to the VCS commit log that Pinto
generates (suggested by Jan Vogel).
Added "nocolor" command line option.
0.016 2011-08-18 02:00:12 America/Los_Angeles
Removed bin/pinto-client. That wasn't supposed to be in there,
damnit! Look for the Pinto-Remote distribution instead.
0.015 2011-08-18 01:54:39 America/Los_Angeles
* No interface changes or bug fixes.
* Internal Changes:
Improved exception handling.
Pinto now uses a lock file to synchronize concurrent actions in
the repository. Only one actor is allowed to operate in a given
repository at a time. Others have to wait until they can get the
lock, or timeout after about 60 seconds.
0.014 2011-08-17 16:09:48 America/Los_Angeles
* No interface changes or bug fixes.
* Internal Changes:
Several modules have been moved out to the Pinto-Common
distribution. This is to allow sharing between Pinto,
Pinto::Server, and Pinto::Remote without requiring direct
dependency on all of Pinto (including it's dependencies).
0.012 2011-08-17 09:10:25 America/Los_Angeles
* Bug Fixes:
Pinto::TestLogger didn't end with a true value. Thank you, CPAN
Testers!
* Internal Changes:
Switched from IPC::Cmd to Proc::Reliable for running shell
commands. IPC::Cmd seems to do funky things with STDIN
and STDOUT that don't set well with CGI.
You can specify an output filehandle or a buffer (as a scalar
reference) where you want the output from Pinto::list() to
go.
The output from the List action contains the name, version,
and location in each package, rather than just the name. This
was a regression in the last version.
* Other Changes:
pinto-server[1], pinto-client[1], and all the Pinto::Server::*
modules have been pulled out into a separate distribtuion,
which will be released to CPAN shortly.
0.011 2011-08-14 21:11:47 America/Los_Angeles
* Bug Fixes:
Fixed our call to File::Copy::copy() to accommodate older versions
which did not handle Path::Class objects properly. Thank you,
CPAN Testers!
0.010 2011-08-14 13:29:23 America/Los_Angeles
* Bug Fixes:
Fixed test failures that I introduced by renaming some classes in
the last release.
0.009 2011-08-12 17:50:28 America/Los_Angeles
* Interface changes:
pinto[1] is now called pinto-admin[1]. It still has all the same
options and arguments. Likewise, App::Pinto is now
App::Pinto::Admin.
With pinto-admin, the "mirror" parameter is now called "source".
This reflects the fact that your dists don't necessarily have to
come from a CPAN mirror. They just have to come from some place
that conforms to the CPAN structure. Do not confuse this with
the "mirror" command, which still does actually mirror the
aforementioned "source".
* Other changes:
Revised documentation.
Added some basic functional tests.
Created pinto-server and pinto-client, for using Pinto across a
nework. These are still very experimental.
Once again, a lot of the internals have been rewritten. But the
guts of Pinto are all private (for now), so you shouldn't really
care.
0.008 2011-08-09 14:47:02 America/Los_Angeles
* Interface changes:
The 'author' parameter is now entirely optional. It defaults to
your shell username, if we can figure that out. If not, then an
exception is thrown, and you'll have to set the 'author' parameter
explicitly.
pinto[1] now has --notag, --nocommit, and --noinit options. All
these can also be set in your configuration file. See the
pinto[1] documentation for details.
* Other changes:
The internals of Pinto have been substantially rewritten to
improve performance and readability of the code. The Pinto API is
still considered alpha, and subject to change.
0.007 2011-08-04 08:04:27 America/Los_Angeles
* Interface Changes:
A config file for pinto[1] is no longer mandatory. If you do not
have one, then you'll have to specify all required parameters on
the command line (this is usually just the '--local' and sometimes
the '--author' options). If you don't specify these, you'll get a
really ugly stack trace from Moose. I'll look into making these
error messages prettier in a future release. Thanks to b.jakubski
for suggesting this change.
* Bug Fixes:
RT #70015: Can't create repository. The 'create' command failed
because the 02packages file could not be read. This has now been
remedied.
* Other Changes:
Edited documenation for pinto[1]
0.006 2011-08-04 00:52:22 America/Los_Angeles
More documentation edits. No code changes.
0.005 2011-08-04 00:43:34 America/Los_Angeles
Brought the documentation for pinto[1] up to date with the
actual API.
0.004 2011-08-04 00:23:23 America/Los_Angeles
Default log level is now 1 (info).
pinto[1] now exits with status 0 if successful.
Improved some log messages.
0.003 2011-08-03 22:59:10 America/Los_Angeles
Major overhaul of internals. But the pinto[1] command line
interface is mostly the same.
0.002 2011-07-26 17:20:46 America/Los_Angeles
Corrected default path to the Pinto configuration file.
Expanded POD for pinto[1]
0.001 2011-07-26 14:17:06 America/Los_Angeles
Initial release.