Changes for version 0.097_04 - 2014-01-25

  • IMPORTANT
    • This release contains a lot of new features. I strongly recommend reading the manual pages for the "pull", "add", "log", and "diff" commands as well as "pinto" itself for further explanation of the enhancements mentioned below.
    • Many of the new features in this release were financed by the Perl community through a crowdfunding campaign. Thank you for your support. Go to http://tinyurl.com/gopinto to see how it all happened.
  • ENHANCEMENTS
    • Pinto can now use a web service provided by stratopan.com to locate upstream packages and distributions. This can reduce memory consumption during the "pull" and "add" commands by about 50%. And for distributions with few dependencies, it can increase the speed of those commands by as much as 300%. This feature will be enabled by default for new repositories. For existing repositories it must be enabled manually by adding "http://cpan.stratopan.com" as the (usually first) upstream source in your repository configuration file.
    • The "pull" command can now fetch a precise version of a package using a version specification string such as "Moose==1.34" or "Plack>=2,!=4". This means you can quickly build a repository with your current depedencies and you only need to know the package name and version. This feature will be enabled by default for new repositories. For existing repositories it must be enabled manually by adding "http://cpan.stratopan.com" as the (usually first) upstream source in your repository configuration file.
    • The "pull" and "add" commands now have a --skip-prerequisite flag that causes it to skip (but warn about) any prerequisite packages that it cannot satisfy. You can use it to specify precisely which packages to skip, or to skip all unsatisfiable packages. This option only has effect when recursively pulling prerequisites.
    • When using the --dry-run option, a diff report will be displayed, showing all the changes that would have been made. If there were no changes, nothing is shown.
    • The diff reports now default to a concise format which only lists the distributions that have changed in the index rather than each package.
    • All commands that show diff reports now have a --diff-style option that controls whether to display the concise or detailed report. You can also set the default style using the PINTO_DIFF_STYLE environment variable.
    • The "log" command now has a --with-diffs (or -d) option that causes it to also display the diff from the previous revision.
    • Pinto can now handle META files that contain prerequisites with version ranges such as ">4, !=5, <=7". These are currently used by a handful of distributions on CPAN, and they are gradually becoming more common. Fixes GH #127.
  • BUG FIXES
    • The "roots" command was returning way too many distributions because it wasn't examining all the indirect dependencies.
    • Fixed when pulling a precise package target (e.g. Foo::Bar==1.0) that existed in a distribution that you already had.

Changes for version 0.097_03 - 2014-01-23

Changes for version 0.097_02 - 2014-01-23

Changes for version 0.097_01 - 2014-01-17

  • Changes consolidated above under version 0.098

Documentation

Curate a custom repository of Perl modules
Web interface to a Pinto repository
Entry point for Pinto documentation
Tips for installing Pinto
Why Pinto exists
A condensed summary of Pinto
Thanking the Pinto supporters
A narrative introduction to Pinto

Modules

Command-line driver for Pinto
Base class for pinto commands
add local archives to the repository
remove orphaned distribution archives
create a new stack by copying another
mark the default stack
permanently remove an archive
show difference between two stacks
display a command's help screen
create a new repository
install stuff from the repository
permanently delete a stack
show the packages in a stack
mark a stack as read-only
show the revision logs of a stack
show the full manual for a command
migrate repository to a new version
create a new empty stack
force a package to stay in a stack
show or set stack properties
pull archives from upstream repositories
put existing packages on a stack
change the name of a stack
show the roots of a stack
show available stacks
report statistics about the repository
show some gratitude
mark a stack as writable
free packages that have been pinned
remove packages from a stack
report archives that are missing
Curate a repository of Perl modules
Base class for all Actions
Add a local distribution into the repository
Remove orphaned archives
Create a new stack by copying another
Set the default stack
Delete archives from the repository
Show the difference between stacks or revisions
Install packages from the repository
Permanently delete a stack
List the contents of a stack
Lock a stack to prevent future changes
Show revision log for a stack
Create a new empty stack
A no-op action
Force a package to stay in a stack
Show or change stack properties
Pull upstream distributions into the repository
Register packages from existing archives on a stack
Change the name of a stack
Show the roots of a stack
List known stacks in the repository
Report statistics about the repository
Unlock a stack to allow future changes
Loosen a package that has been pinned
Unregister packages from a stack
Report distributions that are missing
Unpack an archive into a temporary directory
Base class for interactive interfaces
Interface for network-based interaction
Interface for terminal-based interaction
Internal configuration for a Pinto repository
Constants used across the Pinto utilities
Interface to the Pinto database
Compute difference between two revisions
Represents one addition or deletion in a diff
Base class for Pinto exceptions
Global variables used across the Pinto utilities
The package index of a repository
Write records to an 02packages.details.txt file
Initializes a new Pinto repository
Base class for Locators
The package index of a repository
Find a package/distribution target among CPAN-like repositories
Locate targets using Stratopan services
Manage locks to synchronize concurrent operations
Migrate an existing repository to a new version
Generates a stub 03modlist.data.gz file
Extract packages provided/required by a distribution archive
Iterates through distribution prerequisites
Interact with a remote Pinto repository
Base class for remote Actions
Add a distribution to a the repository
Install packages from the repository
The result from running a remote Action
Coordinates the database, files, and indexes
The result from running an Action
Iterates through revision history
Role for actions that commit changes to the repository
Something that installs packages
Something that has a pause config attribute
Something that has chrome plating
Something pulls packages to a stack
Attributes and methods for all Schema::Result objects
Role for actions that are transactional
Something that makes network requests
The DBIx::Class::Schema for Pinto
Represents the relationship between revisions
Represents a distribution archive
Represents a Package provided by a Distribution
Represents a Distribution -> Package dependency
Represents the relationship between a Package and a Stack
Represents a set of changes to a stack
Represents a named set of Packages
Common queries for Distributions
Common queries for Packages
Common queries for Registrations
Web interface to a Pinto repository
Base class for responders
Responder for action requests
Responder for static files
Routes server requests
Report statistics about a Pinto repository
Storage for distribution archives
Create Spec objects from strings
Specifies a distribution by author and archive
Specifies a package by name and version
Moose types used within Pinto
Static utility functions for Pinto