Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Dist::CheckConflicts(3User Contributed Perl DocumentatiDist::CheckConflicts(3)

NAME
       Dist::CheckConflicts - declare version conflicts	for your dist

VERSION
       version 0.11

SYNOPSIS
	   use Dist::CheckConflicts
	       -dist =>	'Class-MOP',
	       -conflicts => {
		   'Moose'		  => '1.14',
		   'namespace::autoclean' => '0.08',
	       },
	       -also =>	[
		   'Package::Stash::Conflicts',
	       ];

	   __PACKAGE__->check_conflicts;

DESCRIPTION
       One shortcoming of the CPAN clients that	currently exist	is that	they
       have no way of specifying conflicting downstream	dependencies of
       modules.	This module attempts to	work around this issue by allowing you
       to specify conflicting versions of modules separately, and deal with
       them after the module is	done installing.

       For instance, say you have a module "Foo", and some other module	"Bar"
       uses "Foo". If "Foo" were to change its API in a	non-backwards-
       compatible way, this would cause	"Bar" to break until it	is updated to
       use the new API.	"Foo" can't just depend	on the fixed version of	"Bar",
       because this will cause a circular dependency (because "Bar" is already
       depending on "Foo"), and	this doesn't express intent properly anyway -
       "Foo" doesn't use "Bar" at all. The ideal solution would	be for there
       to be a way to specify conflicting versions of modules in a way that
       would let CPAN clients update conflicting modules automatically after
       an existing module is upgraded, but until that happens, this module
       will allow users	to do this manually.

       This module accepts a hash of options passed to its "use" statement,
       with these keys being valid:

       -conflicts
	   A hashref of	conflict specifications, where keys are	module names,
	   and values are the last broken version - any	version	greater	than
	   the specified version should	work.

       -also
	   Additional modules to get conflicts from (potentially recursively).
	   This	should generally be a list of modules which use
	   Dist::CheckConflicts, which correspond to the dists that your dist
	   depends on. (In an ideal world, this	would be intuited directly
	   from	your dependency	list, but the dependency list isn't available
	   outside of build time).

       -dist
	   The name of the distribution, to make the error message from
	   check_conflicts more	user-friendly.

       The methods listed below	are exported by	this module into the module
       that uses it, so	you should call	these methods on your module, not
       Dist::CheckConflicts.

       As an example, this command line	can be used to update your modules,
       after installing	the "Foo" dist (assuming that "Foo::Conflicts" is the
       module in the "Foo" dist	which uses Dist::CheckConflicts):

	   perl	-MFoo::Conflicts -e'print "$_\n"
	       for map { $_->{package} } Foo::Conflicts->calculate_conflicts' |	cpanm

       As an added bonus, loading your conflicts module	will provide warnings
       at runtime if conflicting modules are detected (regardless of whether
       they are	loaded before or afterwards).

METHODS
   conflicts
       Returns the conflict specification (the "-conflicts" parameter to
       "import()"), as a hash.

   dist
       Returns the dist	name (either as	specified by the "-dist" parameter to
       "import()", or the package name which "use"d this module).

   check_conflicts
       Examine the modules that	are currently installed, and throw an
       exception with useful information if any	modules	are at versions	which
       conflict	with the dist.

   calculate_conflicts
       Examine the modules that	are currently installed, and return a list of
       modules which conflict with the dist. The modules will be returned as a
       list of hashrefs, each containing "package", "installed", and
       "required" keys.

BUGS
       No known	bugs.

       Please report any bugs to GitHub	Issues at
       <https://github.com/doy/dist-checkconflicts/issues>.

SEE ALSO
       Module::Install::CheckConflicts

       Dist::Zilla::Plugin::Conflicts

SUPPORT
       You can find this documentation for this	module with the	perldoc
       command.

	   perldoc Dist::CheckConflicts

       You can also look for information at:

       o   MetaCPAN

	   <https://metacpan.org/release/Dist-CheckConflicts>

       o   Github

	   <https://github.com/doy/dist-checkconflicts>

       o   RT: CPAN's request tracker

	   <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Dist-CheckConflicts>

       o   CPAN	Ratings

	   <http://cpanratings.perl.org/d/Dist-CheckConflicts>

AUTHOR
       Jesse Luehrs <doy@tozt.net>

COPYRIGHT AND LICENSE
       This software is	copyright (c) 2014 by Jesse Luehrs.

       This is free software; you can redistribute it and/or modify it under
       the same	terms as the Perl 5 programming	language system	itself.

perl v5.32.0			  2014-04-03	       Dist::CheckConflicts(3)

NAME | VERSION | SYNOPSIS | DESCRIPTION | METHODS | BUGS | SEE ALSO | SUPPORT | AUTHOR | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Dist::CheckConflicts&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help