0.068 2013-04-04 22:41:55 America/Los_Angeles * Now using Module::Build::CleanInstall, which removes files from the last installation before installing. This should help prevent build failures for those coming from versions prior to 0.066. Thanks to Joel Berger for creating the wonderful M::B::CleanInstall! * Worked around bizzare bug that caused DateTime::TimZone to blow up with a "locate object method" exception on perl 5.14. Root cause has not been determined. 0.067 2013-03-30 00:23:36 America/Los_Angeles * Only minor refactoring. No functional or interface changes. * Explicitly requires Term::ANSIColor 2.02 or later. Thanks CPAN Testers! * Requires Pinto::Common 0.068, so you'll have better documentation. 0.066 2013-03-26 16:18:06 America/Los_Angeles HEADLINES: * Your MUST uninstall both Pinto and App::Pinto before installing this. * For local repositories, you'll need to have App::Pinto 0.066 or later. * This release is not (yet) compatible with any Pinto::Server. IMPORTANT: Bad news: This version of Pinto is not compatible with *existing* repositories. To migrate, you'll need to create a new repository (using this version of Pinto) and then "pull" all the distributons from your old repository into the new one. Repeat this process for each stack. Unfortunatley, you will loose your revision history. If you bug me about it, I'll write a script to automate this for you. I am thaljef@cpan.org. Good news: This version of Pinto has hooks to do future migrations automatically. So any repository you create with *this version* of Pinto can be easily migrated to any future versions. I'm also pretty confident that the schema is now stable, so a migration will not be required for a while. CHANGES: * Switched from using Archive::Tar to Archive::Extract. The latter will attempt to use tar(1) to unpack the archive, which works much better with older archives. This is a bit slower however. If you don't have tar(1), it falls back to using Archive::Tar internally. * Switched from using HTTP::UserAgent to HTTP::Tiny. This cuts out one non-core dependency. But some of Pinto's upstream dependencies probably still use HTTP::UserAgent, so the net effect is moot. * The version control subsystem has been completely redesigned. Pinto now stores full snaphots of the stack at each revision and organizes them in a directed graph, much like Git does. Each revision is now identified by a unique non-sequential identifier. * The interface with the terminal has been completely redesigned. You'll see fewer (but hopefully better) diagnostic messages when running in verbose mode. And if not verbose, then you'll see a progress meter. If you still want to see all the gory details, then set the PINTO_DEBUG environment variable. * The logger has been completely removed, so Pinto no longer records diagnostic messages. Recording them never proved to be useful anyway. All the important changes to the stacks are still recorded in the revision log though. * Several Action classes have been added, removed, renamed, or repurposed. The specifics are not described here because the Pinto API is still private. See the change log for App::Pinto for a description of all the public interface changes. 0.065_06 2013-03-23 00:22:57 America/Los_Angeles 0.065_05 2013-03-20 16:21:57 America/Los_Angeles 0.065_04 2013-03-20 16:06:15 America/Los_Angeles 0.065_03 2013-03-19 15:52:24 America/Los_Angeles 0.065_02 2013-03-15 23:39:27 America/Los_Angeles 0.065_01 2013-03-15 16:19:38 America/Los_Angeles !! DEVELOPER RELEASES !! Changes consolidated above under version 0.066. 0.065 2012-11-14 09:55:54 America/Los_Angeles Interface Changes: * In commit messages, all lines starting with '#' are discarded. Previously, we figured out the start and end of the message based on other landmarks, but that isn't very reliable. * Commit timestamps are now reported in the format that is right for your locale. However, they are reported in UTC, not the local timezone. I will fix this in the next release. New Features: * Commit messages are now parsed into separate title and body sections. The message prompt will advise you to put the title on the first line, followed by one blank line, followed by the body (just like with Git). We make some attempt to be lenient with the parsing, in case you don't follow the suggetion. 0.064 2012-11-12 13:29:50 America/Los_Angeles New Features: * If running in an interactive environment and the PINTO_PAGER or PAGER environment variable is set, then Action output will be sent to it. Log messages still go to STDERR and will not be sent to the pager. 0.063 2012-11-12 11:58:29 America/Los_Angeles Important: This version of Pinto is not compatible with repositories that were created with prior versions. Please contact thaljef@cpan.org if you need to migrate an old repository. New Features: * Now has a Rename action, to change the name of an existing stack. You'll need a newer App::Pinto to utilize this action (Schwern). Bug Fixes: * The Delete action actually works now (Schwern, Holybit). 0.062 2012-11-08 10:52:02 America/Los_Angeles Interface Changes: * If the commit message for a Committable action is empty (but defined) then we automatically fall back to using the default message. Interal API Changes: * Actions that take a stack name argument can now accept a stack object as well. * Pinto::Util has been moved from this distribution to Pinto-Common. 0.061 2012-10-30 17:19:10 America/Los_Angeles Interface Changes: NONE Interal API Changes: * Some query optimizations, to benefit alpha.stratopan.com * Stack and Revision objects are now sortable. In string context, Stacks sort by name. In numeric context, they sort by Revision. Revisions sort chronologically. 0.060 2012-10-23 10:57:41 America/Los_Angeles New Features: * You can now set the default stack at the same time that you create or copy a stack. Other Changes: * The output of the Blame action now has the familiar format of the List action, and records are sorted by package name. 0.059 2012-10-20 00:52:34 America/Los_Angeles Important: This version of Pinto is not compatible with repositories that were created with prior versions. Please contact thaljef@cpan.org if you need to migrate an old repository. Interface Changes: * Stack names and property names are no longer forced to lowercase. Instead, we preserve the original case when they are created. But subsequent comparisons or lookups are done irrespective of case. * Author IDs are no longer forced to uppercase. However, the author ID in the canonical path for any distribution that you add will always be uppercase, which is consistent with PAUSE. When listing distributions/packages for a certain author, the comparison is done irrespective of case. Other Changes: * Made several schema optimizations to help support Stratopan, the upcoming cloud-based service built on Pinto. For a preview, check out http://alpha.stratopan.com 0.058 2012-10-11 22:47:23 America/Los_Angeles New Features: * Added the Blame action, which reports who last modified each package in the stack. You'll need App::Pinto-0.052 to utilize this action. Bug Fixes: * When pulling prereqs, Pinto would pull the latest version of the package across the entire repository, rather than taking the version that is already on the stack. If the package that is on the stack does not exist or is too old, *then* you get the latest version in the repository. And if that does not exist or is too old, *then* we get the latest version from an upstream repository. 0.057 2012-10-07 12:28:37 America/Los_Angeles * The Pull action will ignore requests for packages that are in the Perl core, unless you explicitly request a version of the package that is newer than the core. * Removed stray dependency on Pinto::Store::File. That module has been deprecated and no longer ships with Pinto (holybit). 0.056 2012-09-27 13:40:56 America/Los_Angeles Important: This version of Pinto is not compatible with repositories that were created with prior versions. Please contact thaljef@cpan.org if you need to migrate an old repository. New Features: * Added the Replace action, which substitues one dist for another on all stacks. You'll need to upgrade App::Pinto to get the corresponding 'replace' command. Other Changes: * Significantly improved performance, especially for large repositories. Pinto can now hold the *entire* CPAN (not just the tip) and still perform reasonably well. * Changed the way prereqs are discovered. We now trust the dist's own META to tell us the prereqs, rather than configuring the dist directly. This is much faster and usually just as accurate. The only casualties are old dists that don't have a META file, or ones that compute prereqs dynamically during configuration. So it ain't perfect, but it is probably good enough. Bug Fixes: * Pinto can now cope with distributions that contain no packages. These are relatively rare but they do exist on CPAN, usualy in the form of distributions that contain only scripts. 0.055 2012-09-20 13:33:57 America/Los_Angeles Interface Changes: * For the List action, the magic stack name is now '%' instead of '@'. This was changed to distinguish it from revision strings that look like stack@1234. * The username attribute is now attached to the Config, not the Action. This makes it available to any object that needs it (particularly when creating a Revision). 0.054 2012-09-19 22:02:57 America/Los_Angeles * Added a workaround so Pinto can cope with the nonsensical common::sense module. 0.053 2012-09-19 20:58:46 America/Los_Angeles Bug Fixes: * For all committable actions, a commit message is required only if the action actually changed the state of the repository. A commit message is never required for a dryrun action. Other Changes: * Requires DBIx::Class-0.08200 or newer. In certain earlier versions, prefetching was broken. * The Install action is now committable, but it only matters when it is also pulling packages. 0.052 2012-09-18 16:15:38 America/Los_Angeles Important: This version of Pinto is not compatible with repositories that were created with prior versions. The way that archives and indexes are stored on the filesystem has been made simpler and faster. If using Pinto::Server, you'll need to upgrade that too. Contact thaljef@cpan.org if you need a migration path for an existing repository. New Features: * Now supports a Revert action, which restores the stack to a prior revision. This is light-weight form of version control. * Now supports a Log action, which displays the history of changes to a stack. * Each action that changes the state of the repository now requires a commit message. You can pass this into the API, or it will prompt for one via your editor. Other Changes: * The Index action is no longer supported. Now that each stack has its own index file, I see no need to have this Action. * Orphaned archives are now automatically cleaned whenever you do an Add or Pull action with dryrun enabled. * Now requires Dist-Requires-0.008, which fixes some test failures on some platforms. 0.051 2012-08-15 18:27:34 America/Los_Angeles * More hacking to workaround the broken prefetch feature in DBIx::Class. May result is slightly slower performance now that we have to make more trips to the database. * Added the Clean action to remove orphaned archives from the filesystem. The Pull and Add actions now automatically clean up if doing a dryrun. 0.050 2012-08-15 14:26:13 America/Los_Angeles * I've worked around the bug that required you to use a development version of DBIx::Class (see previous release notes below). So now you don't have to manually install anything. 0.048 2012-08-15 09:05:19 America/Los_Angeles Prefetch is broken in DBIx::Class-0.08198 (see RT #78456) so Pinto now requires DBIx::Class-0.08198_01 or later. At the moment, this is only available as a dev release, so you may have to install it manually before building Pinto. For example: $ cpan JROBINSON/DBIx-Class-0.08198_01.tar.gz 0.047 2012-08-13 17:21:03 America/Los_Angeles Added a hook for controling the lockfile timeout via an environment variable. This makes testing for Pinto::Server and Pinto::Remote faster. 0.046 2012-08-13 15:17:18 America/Los_Angeles Important: Removed workaround for bug that appeared in DBIx::Class-0.08198. We now require DBIx-Class-0.08198_01, which is only a developer release at the moment. So you may have to fetch that dependency manually. Bug Fixes: Partially resolved #14, where Pinto would blow up if you asked it to pull a core-only package. In this case, it really should give you a warning. But for now, it just silently skips it. Other Changes: Pinto::Tester now constructs the repository on disk immediately upon constructing the object. Before, you had to access the pinto attribute to trigger it to write anything to disk. 0.045 2012-07-23 23:14:42 America/Los_Angeles Bug Fixes: Tests were failing with the latest version of DBIx::Class. I think the root cause is in DBIx::Class itself (see RT #78456) but until that is resolved, I've done a workaround. 0.044 2012-07-15 01:39:18 America/Los_Angeles Bug Fixes: The magic stack named '@' (meaning all stacks) did not work. 0.043 2012-06-19 10:47:15 America/Los_Angeles Bug Fixes: Prevent writing to closed handle, when running the install action via pinto remotely. Now requires Dist::Metadata 0.923 or newer, which indexes more like PAUSE does it. Other Stuff: Some minor performance optimizations, to reduce the number of trips to the database. 0.042 2012-05-17 21:55:19 America/Los_Angeles finally{...} doesn't seem to work properly on older perls, and this caused several test failures. According to the perldelta, 5.14 introduced several changes to exception handling. So I've moved the exception handling into the catch{...} block. I don't know why, but this seems to work better. 0.041 2012-05-15 11:13:27 America/Los_Angeles Important: There have been major changes to the interface and behavior of Pinto (read more below). Beware this version of Pinto is NOT compatible with repositories created with any previous version of Pinto. If you have an existing repository and you really, really need to preserve it, then contact me and I can work with you to develop a migration plan. Also, many of the internal modules have been moved around, so I strongly suggest that you remove existing versions of all the Pinto libraries and scripts before installing a new one on top of it. New/Changed/Removed Features: Pinto now supports multiple indexes called "stacks". So you could have one stack of dependencies for application X and a different stack for application Y (or one for development, one for production, etc). Each stack can contain different modules and/or different versions of those modules. It's like having several repositories in one. Stacks can be copied and merged, much like a version control system. This allows you to experiment with new dependencies without impacting other stacks. If you have multiple applications with different dependencies (or just different versions of them), this also gives you a way to gradually converge dependencies. Likewise, it allows you to fork dependencies if two applications need to diverge in some way. The VCS integration has been removed. Most of the people I've talked with did not find this feature particularly useful, since you can't really branch & merge a repository (the database is binary). This was also the most rickety part of the system. The "pinto-admin" and "pinto-remote" applications have been consolidated into one application called "pinto". It will use the appropriate backend (either Pinto or Pinto::Remote) depending on whether the repository root is a local directory or a remote URL. However the backends ship separately from the application, so you must choose which to install (or you can choose both). The pinto application also has an "install" command, which functions as a stand-in for cpanm. It is wired to pull distributions only from your repository, using the stack of your choice. Pinto no longer supports mirroring CPAN. I've found that it is difficult to manage application dependencies in the context of an entire mirror of CPAN. Most people only care about the stuff their application needs, so they don't really need a snapshot of the entire CPAN. If you really want that, then CPAN::Mini does a fine job. Pinto no longer allows you to remove archives from the repository, so the "clean", "purge", and "remove" commands are gone. Eventually, my goal is to make Pinto behave just like a VCS, where nothing is really deleted and you can always revert back to a previous version. So you'll be able to take a distribution off of a stack, but the .tar.gz file never really goes away. Pinto no longer enforces any sort of permissions on package namespaces. Previously, Pinto only allowed the original author to update a package (just as PAUSE does). But the restriction was only advisory -- you could just bypass it by changing your author identity. Now, Pinto doesn't even bother with that -- any user can upgrade any package. All the activity is logged to a file so you can see who changed what, but Pinto expects you to be accountable for your actions. Pinto now tracks dependencies between the distributions within the repository. So it can potentially tell you which distributions need to be tested after upgrading a module, or whether the stack actually contains sufficient modules to satisfy all the prerequisites for all the distributions in the stack. I haven't yet written those commands, but the data is in there. 0.040_003 2012-05-04 21:38:07 America/Los_Angeles Fixed bug in 35-install.t that would cause the test to fail (instead of skipping) if cpanm was not installed. Thanks Andreas! Switched to using File::NFSLock instead of Lockfile::Simple. The latter uses some deprecated syntax that causes lots of ugly warnings on newer perls. Still alpha testing. 0.040_002 2012-05-04 16:19:11 America/Los_Angeles Added Action::Install. Still alpha testing. 0.040_001 2012-05-01 13:12:34 America/Los_Angeles This is a developer release for alpha testing the stacks feature. 0.038 2012-04-16 18:14:57 America/Los_Angeles New Features: The "import" command will now import a particular distribution if you specify it using the right notation. See POD for details (Steven Leung). Bug Fixes: The Git store would fail if you specified the --root as a relative path that contained any "../" updirs (William Wolf). 0.037 2012-04-10 19:57:09 America/Los_Angeles No code changes. Just fixed dependency declarations. Thanks CPAN Testers! 0.036 2012-04-09 00:14:50 America/Los_Angeles New Features: Pinto now logs activity to $root_dir/.pinto/logs/pinto.log (Karen Etheridge). You can set the logging level in the repository's config file. Other Stuff: A lot of files have been moved around in this release (and the last couple releases). I suggest removing your current Pinto before installing this one, to avoid accumulating cruft. 0.035 2012-04-04 19:00:35 America/Los_Angeles New Features: The value for the --author option now defaults to the 'user' specified in your ~/.pause file. If that file does not exist, then it still defaults to your current login username. Other Changes: All diagnostic messages from pinto-admin now go to STDERR rather than STDOUT. So you can cleanly directy the output into a file (like with the `list` command). Refactored a lot of redundant code into roles that are shared with Pinto::Remote. But if you're not looking at the Pinto internals, you won't notice it. 0.033 2012-03-15 06:55:39 America/Los_Angeles Bug Fixes: Corrected documentation about the environment variable controlling the default location of the repository. Thanks fibo. The index file is now properly updated after doing an import operation. Thanks throughnothing. 0.032 2012-03-01 10:36:25 America/Los_Angeles Bug Fixes: Worked around a problem that caused the PAUSE indexer to reject the last release. Added an accurate line-count to the 02packages file so that cpan(1) doesn't complain about it. 0.031 2012-02-28 05:19:58 America/Los_Angeles Bug Fixes: Fixed bug in the create command. Not sure how this ever worked before. New Features: The "add" command now recursively imports all the dependencies by default. To disable this behavior use the --norecurse option. 0.030 2012-01-26 22:00:32 America/Los_Angeles The --repos option for pinto-admin has been officially renamed to --root. This was done to create a symmetrical API between Pinto and Pinto::Admin. The old --repos option will *not* be supported for backward compatibility. 0.029 2011-12-15 00:24:11 America/Los_Angeles The 'list' command now has --index and --noindex options to filter the output to packages that are in the index, or not in the index, respectively. The 'list' command now has --pinned and --nopinned options to filter the output to packages that are pinned, or not pinned, respectively. The default output format for the 'list' command now includes a '+' character to indicate whether a package is pinned. Some improvements to Pinto::Store::VCS::Git, which allow you to place your Pinto repository anywhere inside a Git repository. 0.028 2011-12-12 01:22:02 America/Los_Angeles I discovered that Subversion 1.7 changed the working copy layout in a way that caused Pinto to run exponentially slower as the repository got bigger (like when mirroring the CPAN). I've fixed this now. pinto-admin now has a 'statistics' command that will report some basic stats about your repository. I plan to add more stats in the future. You can now store your repository with Git using either Pinto::Store::VCS::Git or Pinto::Store::VCS::Git::Remote. These are both experimental, so use with caution. Mirror actions are now a bit faster, espeically when you already have most of the distributions in the source repository. The VCS log message used for the commit is now also used as the message for the tag operation. Pinning a devel package is only allowed if this repository is configured to index devel packages. 0.027 2011-12-08 15:23:00 America/Los_Angeles The 'list' command now has options to filter the output to either packages or distributions that contain some substring. This is not as powerful as a regex, and you can only filter on the package name or dist path. But this will make things go much faster. Fixed numerous bugs in the VCS integration. This was totally broken. That's what I get for not writing regression tests in that area. Fixed compatibility issue with Pinto::Remote. Added or improved some log messages. Revised some documentation. 0.026 2011-12-07 11:47:27 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. 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. pinto-admin now has the 'pin' and 'unpin' commands, which can be used to tie the index file to a specific version of a package. This lets you evolve your repository while keeping certain packages fixed. Very cool! See POD for details. 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 a little less noisy by default. You can increase the verbosity by repeating the '-v' option up to three times. Now needs newer versions of Dist::Requires and Dist::Metadata. Thanks CPAN Testers for shaking that out. Pinto->new() will now blow up if you specify a root_dir that doesn't actually look like a repository directory. To be valid, it must have a database file, a modules directory, and an authors directory. Changed some log messages to be more helpful and/or less noisy. * Bug Fixes: Fixed bug where Pinto might blow up with 'too many args' error the first time you update from a CPAN mirror using the Svn store. Fixed broken code (e.g. calling undefined methods) in several places. Added more regression testing to catch this stuff. Prevent uninitialized warning when using the 'list' command. 0.025_004 2011-12-06 21:11:00 America/Los_Angeles 0.025_003 2011-12-03 04:12:56 America/Los_Angeles 0.025_002 2011-12-02 04:39:19 America/Los_Angeles 0.025_001 2011-12-02 03:18:26 America/Los_Angeles Net changes aggregated above in 0.026 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.