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.