\HeaderA{resolve.depends}{A function to check for dependency breakages}{resolve.depends}
\aliasA{findInstallDepends}{resolve.depends}{findInstallDepends}
\aliasA{solveForwardDepends}{resolve.depends}{solveForwardDepends}
\keyword{utilities}{resolve.depends}
\begin{Description}\relax
Given a particular package, will check to insure that no dependencies
are being broken if this package were to be changed (newer version
installed, package removed, etc).
\end{Description}
\begin{Usage}
\begin{verbatim}
resolve.depends(pkg, repEntry, force = FALSE, forward = TRUE, lib =
                 reposToolsLibPaths()[1], remove = FALSE, depends = TRUE,
                 suggests = TRUE, imports = TRUE, searchOptions = TRUE,
                 getAllDeps = FALSE, versForce = TRUE, method =
                 "auto", getNewest = FALSE, develOK=FALSE, curRepList=NULL)
\end{verbatim}
\end{Usage}
\begin{Arguments}
\begin{ldescription}
\item[\code{pkg}] A pkgInfo object describing the package
\item[\code{repEntry}] The \code{ReposEntry} object the package is coming from
\item[\code{force}] Logical, if force==TRUE, will only \code{warn} the user
of dependencies, instead of \code{stop}ing
\item[\code{forward}] Whether to check for and attempt to aquire any
dependencies this package might have that are not already installed
\item[\code{lib}] Library that the original package is in
\item[\code{remove}] Logical to flag if the user is seeking to remove \code{pkg}
\item[\code{depends}] Whether to \code{stop} on unresolved \code{depends}
level dependencies
\item[\code{suggests}] Whether to \code{stop} on unresolved \code{suggests}
level dependencies
\item[\code{imports}] Whether to \code{stop} on unresolved \code{imports} level dependencies
\item[\code{searchOptions}] Corresponds with the \code{searchOptions}
argument to \code{update.packages2} - used if downloading a package
due to forward=TRUE
\item[\code{getAllDeps}] Will automatically download all dependencies if
TRUE, otherwise will prompt the user
\item[\code{versForce}] Whether or not to override R version checking on
binary packages
\item[\code{method}] What download method to use if any packages are
downloaded and installed.  See the same parameter for \code{install.packages2}
\item[\code{getNewest}] Passed down to any install.packages2() call internally
\item[\code{develOK}] If any packages are needed to be downloaded, if it is
okay to get packages of \code{devel} release level
\item[\code{curRepList}] The current list of repositories being used by the
installation functions, used to search for any dependencies.
\end{ldescription}
\end{Arguments}
\begin{Details}\relax
Will look for a local library listing file in every library specified
by \code{libs}.  If one exists, will check packages in that R library
to see if the desired action would break any dependency links.  For
instance, if package X depends on package Y version 2, and the user is
looking to upgrade package Y to version 3 - or if the user wants to
remove package Y altogether.

By default, the system will \code{stop} for any unresolved
\code{depends} and \code{suggests} level dependencies, but only throw
a \code{warning} on any \code{imports} level dependencies.  These can be
toggled by the user.

If \code{force == TRUE}, only \code{warnings} will be given.
\end{Details}
\begin{Author}\relax
Jeff Gentry
\end{Author}
\begin{SeeAlso}\relax
\code{\LinkA{pkgInfo}{pkgInfo}},\code{\LinkA{depends}{depends}},\code{\LinkA{syncLocalLibList}{syncLocalLibList}}
\end{SeeAlso}
\begin{Examples}
\begin{ExampleCode}
\end{ExampleCode}
\end{Examples}


